ArduTester

ТехнарьКто

★★★★★✩✩
13 Янв 2020
273
435
Транзистортестер на Arduino Nano и I2C LCD1602 дисплее. В скетче любой может подставить адрес своего I2C дисплея и легко собрать ArduTester. Схема простая, только надо отпаять резистор идущий к светодиоду на 13-м пине, иначе при пустых щупах будет показывать емкость в несколько микрофарад.

скетч здесь

sxema ardutester.jpg

Возможности ArduTester:

Определение элемента с указанием порядка подключенных выводов.

NPN транзисторы
PNP транзисторы
N-канальные-обогащенные MOSFET - N-E-MOS
P-канальные-обогащенные MOSFET- P-E-MOS
N-канальные-обедненные MOSFET - N-D-MOS
P-канальные-обедненные MOSFET - P-D-MOS
N-канальные JFET
P-канальные JFET
Тиристоры маломощьные
Симисторы маломощьные
Диоды
Стабилитроны низковольтные
Двухкатодные сборки диодов
Двуханодные сборки диодов
Два последовательно соединенных диода
Диоды симметричные
Резисторы
Переменные резисторы
Конденсаторы (емкость, ESR ЭПС, Vloss утечки)
Индуктивности

полупроводники.jpg
конденсатор.jpg
индуктивность.jpg

Авторы изначального проекта : Markus Frejek,Karl-Heinz Kubbeler,Markus Reschke. Все продаваемые китайцами транзистортестеры - это копии проекта немецких радиолюбителей. Автор с сайта pighixxx.com на основании ассемблерного кода от Markus-а разработал скетч для Arduino UNO. Автор скетча arduinec с сайта arduino.ru воодушевившись этим тоже сделал скетч одной из версий транзистор тестера, и как водиться, оба автора забросили поддержку ардуино скетчей. Автор plouc68000 с сайта arduino.cc сделал скетч на практически самую новую версию ардуино тестера. В общем, все скетчи хороши, выбирай на вкус. Скетч под новую версию транзистортестера очень сложный, а прибор слишком хорош для макетной платы. А если делать все по правильному, то теряется смысл скетча для Arduino. Проще сделать прошивку из исходников немецких радиолюбителей написанных на асемблере и прибор сделать по их же схеме. Почему хороший скетч хуже более старого, в случае макетирования и ардуино? Да потому, что на С++ код будет больше и функций в приборе будет меньше, а те функции которые поместятся, обладают избыточным качеством при повторении на макетной плате. Новый прибор может измерять доли пикофарад и доли ома, а соединения на макетной плате дают изменяющиеся величины сопротивления в пределах пары Ом, что сводит на нет все достоинства нового прибора изготовленного на макетной плате. Длинные провода дают изменяющуюся величину емкости в десяток пикофарад, следовательно диапазон измерения единиц пикофарадов, теряет весь смысл. Длинные провода - это удобно. Измерение от десятков пикофарад и от единиц ом обеспечивает и старый скетч. Зато перечисленные выше недостатки для сборки на макетной плате, уже не так важны. Единственное, что авторы скетчей для arduino так и не разобрались с появляющимися ошибками у некоторых пользователей, которые пытались повторять проекты. Старый скетч "устал" от изменений в новых версиях Arduino IDE и перестал компилироваться. Изучив работу прибора от Karl-Heinz Kubbeler, посмотрев скетчи от plouc68000, остановился на наработках автора arduinec. Привинтил к самому простому скетчу LCD1602 I2C дисплей и заствил скетч компилироваться в новых версиях Arduino IDE. В скетче мной добавлена возможность подставить адрес имеющегося у Вас I2C дисплея в первой строке кода. Разбирая ошибки при повторении проектов с показаниями в несколько микрофарад при пустом щупе, решение найдено еще arduinec. Надо удалить цепочку на ноге микропроцессора участвующей в измерении. Это резистор и светодиод на 13-м пине. Вторая и последняя из замеченых мной ошибок, завышение емкости электролитов, ровно в два раза. Мной из документации от "Markus.." вычитана причина. Необходимые изменения, мной внесены в схему ardutestera. В итоге получился работоспособный транзистортестер на Arduino Nano с I2C LCD1602 дисплеем который легко собрать даже на макетной плате.

Информация от arduinec переделавшего код транзистортестера в скетч для ардуино.
"Исходные файлы объединены в один скетч, границы файлов можно увидеть по разделителям типа /* -=- -=- -=-*/.
Функция main() разделена на setup() и loop(). Отключено энергосбережение, автоотключение и Watchdog.
Функции для дисплея переделаны для использования через стандартные библиотеки LiquidCrystal.
Функции для задержек заменены на ардуиновские. Немецкие слова к коде заменены на английские.
Из языков только английский и язык авторов программы - немецкий.
Для функции GetESR() использована функция us500delay(), которая равносильна delayMicroseconds().
Ошибки:
При получении результатов через Serial monitor после "testing..." в порт попадает какой-то мусор, но дальнейшему выводу он не мешает, поэтому все на это забили. В функции uart_putc() добавлена задержка на 2 мс, так как при скорости 9600 серийный порт не успевал выталкивать данные.

Что ещё есть:
у Arduino Nano остались свободные аналоговые пины A6 и A7. В начале loop() кнопка сначала проверяется на нажатие - после этого на дисплей можно вывести полезную информацию (например о напряжении внешнего питания), затем идёт проверка на отпускание кнопки и запускается тестирование."


Скетчей два с окончанием old и new. По функционалу оба скетча идентичны. Old - старый, условно для более старых Arduino IDE под WindowsXP проверял на "arduinoIDE-v1.6.9-windows_32bit". New - условно для новых Arduino IDE (новый на момент написания этого текста, март 2021 года). Проверял на "arduinoIDE-v1.8.12-windows7_64bit" и "arduinoIDE-v1.8.13-windows7_64bit".

Успехов.
 

Вложения

Изменено:

ТехнарьКто

★★★★★✩✩
13 Янв 2020
273
435
Переделывал несколько LCR-T4 для друзей и возник вопрос, будет в конце текста.

tranzistortester.jpg

Из клонов на мой взгляд LCR-T4 самый дешевый и самый просто переделываемый ТранзисторТестер. После переделки из китайского клона, появляется дополнительный функционал и возрастает точность. Начинает измерять конденсаторы от 0.01 pf, правда врать перестает только после 10pf. Зато потом весьма точно измерят, вплоть до сотни тысяч микрофарад. Индуктивности конечно тоже измеряет, но точности в этих измерениях увы, никакой. И естественно все, что должен измерять и показывать китайский клон, переделанный вариант тоже умеет. Из не совсем явной информации о переделках LCR-T4 на просторах интернета трудно понять как обойти гашение экрана при нажатии на кнопку тест и почему ТранзисторТестер самопроизвольно перегружается при измерении емкости. В не явном и трудно находимом виде обход багов описан на всем известном vrtp.ru, а много информации есть на mikrocontroller.net на английском языке.

Вопрос. Интересно ли, кому нибудь, как сделать из китайского г-на LCR-T4 вполне удобный, русифицированный прибор, работающий без проблем (экран не гаснет, самопроизвольно не перегружается). Просто тратить время на описание и получить в ответ, так это же есть на vtr.ru иди читай mikrocontroller.net, желание отсутствует. Но если интерес будет, тогда опишу прямо здесь, чтобы не плодить лишних тем.

PS Пишите, надо это или и так все все знают.
 

PiratFox

★★★★★✩✩
13 Фев 2020
1,724
481
@ТехнарьКто, Вы не перестаёте удивлять меня, да и не только меня, своими устройствами, детальной проработкой мелочей, что есть признаком профессионала высочайшего класса. Дьявол, как известно, он в деталях. Из китайского говна LCR-T4 Вам удалось сделать конфетку, причём шоколадную. Это не лесть, просто констатация факта. Если будете развивать эту тему далее, буду с интересом за этим следить. Мой младший сын начал познавать основы микропроцессорной электроники, вот будет ему задание собрать это устройство. Хороший пример для практики. 🙂 🙂 🙂 Надеюсь, ответил на Ваш вопрос.
P.S.
Начинает измерять конденсаторы от 0.01 pf
Не знаю, насколько вообще нужен диапазон ниже 10 pf в большинстве применений, лично я не могу припомнить, чтобы у меня была потребность в измерении на этом пределе. Впрочем, никому ничего не навязываю. ;)
 
Изменено:

PiratFox

★★★★★✩✩
13 Фев 2020
1,724
481
@ТехнарьКто, тут с сыном недавно ремонтировали микроволновку, так у него возникла мысль добавить в сей прибор режим проверки высоковольтных диодов. Направление я ему подсказал, пусть дерзает.:giggle::giggle::giggle: Заодно и напряжение стабилизации у стабилитронов можно будет мерять, вольт до 20-ти.:D:D:D
 
Изменено:

ТехнарьКто

★★★★★✩✩
13 Янв 2020
273
435
На всякий случай. А то документацию обычно читать забывают.

LC-metod.jpg

Транзистор тестер от Karl-Heinz Kubbeler v1.13k переделанный из китайского клона LCR-T4. Измерение индуктивности основано на измерении постоянной времени при росте тока. Радиолюбитель Pieter-Tjerk (PA3FWM) реализовал дополнительный метод (есть в прошивке v1.13k), чтобы получить значение малой индуктивности. Параллельным подключением конденсатора к индуктивности создается резонансный контур. С помощью короткого импульса тока эта схема возбуждается и начинает колебаться. Используя метод дискретизации, измеряется частота этого колебания. Если значение ёмкости известно и можно измерить резонансную частоту, то индуктивность может быть вычислена. По этой причине программа калибровки нуждается в конденсаторе фиксированной ёмкости для дальнейшего использования при измерении малых значений индуктивности. Во время само теста было предложено подключить конденсатор 10−30nF, который используется для резонансного метода. Конденсатор высокого качества должен быть выбран потому, что дополнительно измеряется добротность резонансного контура путем мониторинга уменьшение амплитуды. При использовании конденсатора высокого качества общая добротность резонансного контура будет определятся добротностью катушки. Никаких дополнительных действий не требуется. Резонансный контур определяется автоматически. При обнаружении резонансного контура, отображается текст «if» и значение параллельной ёмкости отображается за значением индуктивности в строке 2. В этом случае величина сопротивления катушки отображается в конце строки 1. В дополнительной строке отображается измеренное значение резонансной частоты и добротность контура.

И для емкости на всякий случай, кто документацию не читает. Особенностью метода испытаний конденсаторов большой ёмкости является то, что электролитический конденсатор с низким качеством будет измерен с завышенным результатом значения ёмкости. Конденсатор с низким качеством можно обнаружить по более высокому значению параметра VLOSS. В конденсаторах высокого качества, при тестировании, отсутствует VLOSS или его значение не более 0,1%.

PS Всем успехов.
 

Wintezor

✩✩✩✩✩✩✩
20 Авг 2021
1
0
записал скетч на ардуино Уно. И получил такие ошибки. Я начинающий и не понимаю что надо сделать. на дисплее надпись TransistorTester forArduino 1.08a и на кнопку не реагирует


C:\Users\1\Downloads\Ardutester\ArduinoTester-new\ArduinoTester-new.ino:41:0: warning: "F_CPU" redefined
#define F_CPU 16000000UL

<command-line>:0:0: note: this is the location of the previous definition
C:\Users\1\Downloads\Ardutester\ArduinoTester-new\ArduinoTester-new.ino:4967:0: warning: "StartADCwait" redefined
#define StartADCwait() ADCSRA = StartADCmsk; /* Start conversion */\

C:\Users\1\Downloads\Ardutester\ArduinoTester-new\ArduinoTester-new.ino:3948:0: note: this is the location of the previous definition
#define StartADCwait() ADCSRA = (1<<ADEN) | (1<<ADIF) | (1<<ADIE) | AUTO_CLOCK_DIV; /* enable ADC and Interrupt */\

C:\Users\1\Downloads\Ardutester\ArduinoTester-new\ArduinoTester-new.ino: In function 'void setup()':
C:\Users\1\Downloads\Ardutester\ArduinoTester-new\ArduinoTester-new.ino:1245:32: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
lcd_string("TransistorTester");
^
C:\Users\1\Downloads\Ardutester\ArduinoTester-new\ArduinoTester-new.ino:1247:32: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
lcd_string("forArduino 1.08a");
^
C:\Users\1\Downloads\Ardutester\ArduinoTester-new\ArduinoTester-new.ino: In function 'void loop()':
C:\Users\1\Downloads\Ardutester\ArduinoTester-new\ArduinoTester-new.ino:248:19: warning: left shift count >= width of type [-Wshift-count-overflow]
#define RST_PIN 17 // Pin, is switched to low, if push button is pressed
^
C:\Users\1\Downloads\Ardutester\ArduinoTester-new\ArduinoTester-new.ino:1960:28: note: in expansion of macro 'RST_PIN'
while(!(ON_PIN_REG & (1<<RST_PIN))); // wait ,until button is released
^~~~~~~
C:\Users\1\Downloads\Ardutester\ArduinoTester-new\ArduinoTester-new.ino:248:19: warning: left shift count >= width of type [-Wshift-count-overflow]
#define RST_PIN 17 // Pin, is switched to low, if push button is pressed
^
C:\Users\1\Downloads\Ardutester\ArduinoTester-new\ArduinoTester-new.ino:1965:27: note: in expansion of macro 'RST_PIN'
if(!(ON_PIN_REG & (1<<RST_PIN))) {
^~~~~~~
 

Un_ka

★★✩✩✩✩✩
13 Июл 2020
241
71
других форумов.
Избыточное цитирование
У меня есть несколько вопросов:
  1. Если питать схему от одного АКБ с повышающим преобразователем, то будут помехи, мешающее точным измерениям
  2. Резисторы с каким допуском лучше брать? В китайских тесторах они там случаем не 10%?
 

ТехнарьКто

★★★★★✩✩
13 Янв 2020
273
435
записал скетч на ардуино Уно. И получил такие ошибки. Я начинающий и не понимаю что надо сделать. на дисплее надпись TransistorTester forArduino 1.08a и на кнопку не реагирует
Если надпись на дисплее есть то ошибки не имеют значения. У Вас все получилось. На кнопку не реагирует вероятно потому, что Вы скорее всего упустили из текста первого сообщения "Надо удалить цепочку на ноге микропроцессора участвующей в измерении. Это резистор и светодиод на 13-м пине." Возможно написал весьма криво и не понятно. Другими словами на ногах atmega к которым цепляют проверяемые детали, лишнее должно отсутствовать от слова совсем. А там у Вас резистор со светодиодом приводящие к разнообразным глюкам в работе TransistorTester-а. Можно выпаять все лишнее. Можно перерезать дорожку этой цепочки. Самое простое выпаять резистор, тогда цепь разомкнется и встроенный светодиод L на 13-й ноге ардуино перестанет мешать работе схемы. Или если UNO будет использована только для этой схемы, то просто отверткой отковырять светодиод. Метод жестокий, но пояснять проще всего. Хотя самое простое не самое правильное с точки зрения восстановления UNO как было до переделки.

L.jpg

У меня есть несколько вопросов:
  1. Если питать схему от одного АКБ с повышающим преобразователем, то будут помехи, мешающее точным измерениям
  2. Резисторы с каким допуском лучше брать? В китайских тесторах они там случаем не 10%?
1) Есть даже изначально сделанные транзистортестеры с таким питанием. Все нормально работает.
tt.jpg
2 Даже на самых дешманских и самого китайского изготовления транзистортестерах отклонение для резисторов менее 1%. Китайцы отбирают 0,5% из однопроцентных. Создатель транзистортестера рекомендует 0,1%. А по факту какие есть, те и используете. Хотя бы однопроцентные.

PS Картинки в ответе, из открытых источников интернета. А текст, полностью мой.
 
Изменено:
  • Лойс +1
Реакции: KeyM и kostyamat

Vokovl

✩✩✩✩✩✩✩
30 Ноя 2021
7
0


собрал всё это дело на макетной плате, работает нормально, активировал в скетче селф тест, не понял только как работает проверка батареи, поэтому добавил в loop



вопрос как правильно использовать встроенный в скетч функционал проверки батареи кроме того что надо убрать комменты с дефайнов?
 

bkn58

✩✩✩✩✩✩✩
1 Янв 2022
1
0
Необходимо включить следующие опции:

// Option BAT_CHECK enables the Battery Voltage Check, otherwise the SW Version is displayed instead of Bat.
// BAT_CHECK should be set for battery powered tester version.
#define BAT_CHECK

// The BAT_OUT option enables Battery Voltage Output on LCD (if BAT_CHECK is selected).
// If your 9V supply has a diode installed, use the BAT_OUT=600 form to specify the
// threshold voltage of your diode to adjust the output value.
// This threshold level is added to LCD-output and does not affect the voltage checking levels.
//#define BAT_OUT 150
#define BAT_OUT 0
BAT-OUT=0 при условии, что крона напрямую подключена к Vin

// Port pin for Battery voltage measuring
// в оригинале был TPBAT 5.
//#define TPBAT 5
#define TPBAT 6
Подключен к делителю: земля - 3.3Ком - порт - 10Ком - Vin

Раскомментировать формулу для вычисления значения напряжения:
#ifdef BAT_OUT
// display Battery voltage
// The divisor to get the voltage in 0.01V units is ((10*33)/133) witch is about 2.4812
// A good result can be get with multiply by 4 and divide by 10 (about 0.75%).
cap.cval = (trans.uBE[0]*4)/10+((BAT_OUT+5)/10); // usually output only 2 digits
DisplayValue(cap.cval,-2,'V',2); // Display 2 Digits of this 10mV units

//cap.cval = (trans.uBE[0]*4)+BAT_OUT; // usually output only 2 digits
//DisplayValue(cap.cval,-3,'V',2); // Display 2 Digits of this 10mV units
lcd_space();
#endif

Напряжение батареи выводится всякий раз при нажатии кнопки тест:
BAT_CHECK.jpg
 

Hurt_88

✩✩✩✩✩✩✩
19 Янв 2022
1
1
Здравствуйте, а можно дисплей от нокии 1202 как то прикрутить ?
 
  • Лойс +1
Реакции: kolobog

shinji2009

✩✩✩✩✩✩✩
1 Авг 2020
16
2
привет. так этот ардутестер никак нельзя откалибровать? типа как повезло так и показывает?
 
  • Лойс +1
Реакции: GooD22

Геннадий П

★★★★★★✩
14 Апр 2021
1,838
592
44
@shinji2009, Такие приборы не для точного измерения, а для оценочного, т.е. посмотреть примерные измеряемые данные.
 

Vokovl

✩✩✩✩✩✩✩
30 Ноя 2021
7
0
так как прошивка для ардуины а не хекс, то в принципе можно очень даже точно откалибровать под себя, имея точные сопротивления и конденсаторы
 

Uranhay

✩✩✩✩✩✩✩
1 Янв 2022
2
1
Может у кого есть скетч транзистортестера на Arduino Nano и на дисплей 1.44 TFT SPI 128x128. Помогите.
 

shinji2009

✩✩✩✩✩✩✩
1 Авг 2020
16
2
на всякий случай для тех кто хочет повторить но не очень соображает:
с форума arduino.ru можно взять скетч с простым выбором какой дисплей тебе нужен, на данный момент в посте #298 последний вариант. по функционалу никакого отличия от этого.
чтобы задействовать калибровку надо раскомментировать строки #define WITH_SELFTEST и #define AUTO_CAL, но на самом деле если взять точные резисторы то калибровка почти не влияет на точность. которая и так очень высока для подобной самоделки. я купил по 100 штук с 1%в каждой сотне нашлось ровно 3 штуки которые точно совпали с требуемым номиналом.
для самокалибровки замкнуть на собранном устройстве три измерительных входа между собой и зажать кнопку тест на несколько секунд. понадобится конденсатор >100нФ для одного из тестов. "Конденсатор при калибровке должен быть высокодобротным с малым тангенсом угла потерь , малой адсорбцией и естественно низким ESR.Это конденсаторы в порядке убывания качества диэлектрика - полистирольные,слюдяные,пленочные,бумажные". (с сайта vrtp.ru. кстати на этом сайте огромные треды по подобным тестерам)
что означают значения при калибровке www.youtube.com/watch?v=PS2xatlTWB8
при необходимости надо указать адрес экрана по i2c в скетче. с завода китайские экраны идут с адресом 0x27, а в скетчах по умолчанию стоит 0x3f.
и кроме светодиода (я лично все светодиоды с платы скалываю нафиг сразу чтобы не мешались) надо отпаять ещё конденсатор, который висит на контакте aref, так как он будет сильно завышать показания ёмкости начиная с ~50мкф.
 

Uranhay

✩✩✩✩✩✩✩
1 Янв 2022
2
1
Собрал по этой схеме Транзистортестер на Arduino Nano и I2C LCD1602 дисплее на макетной плате. Скетч тоже отсюда. После сборки тестер заработал сразу. Спасибо Вам огромное. Транзисторы и особенно конденсаторы проверять одно удовольствие. Желаю дальнейших успехов.
 

Вложения

  • Лойс +1
Реакции: Green34

R998

✩✩✩✩✩✩✩
12 Фев 2022
1
0
Собрал по схеме с ардуино ру в 298 сообщении схема и скетч , отличается лишь тем что кнопка сделана попроще с 100к резистором который стоит так же на А3 , прошилось вроде норм скетчем оттуда же и кажет надпись на экран , но почему то при нажатии на кнопку тестер сам выключается , а точнее на экране на долю секунды появляется надпись тестинг и пропадают все символы что горят черные квадраты с слегка пониженной яркостью чем обычно , сделал по той схеме ибо там использовался дисплей LCD 1602 а не I2C как тут . куда стоит копать ? Резистор и диод выпаян если что , дисплей висит на аналоговых пинах 2-6 а рс и энейбл на 7 и 8 , может в этом проблема ? (По этой же причине собрал лишь 2 входа а не 3 ибо нужные контакты заняты
 

ssibn

✩✩✩✩✩✩✩
25 Фев 2022
1
0
Добрый день. Собрал по Вашей схеме на Arduino pro mini (ATmega328, 3.3V 8 MHz), светодиод и резистор L выпаял, но сборка не работает, чтобы не поставил измеряет мА (если правильно понял емкость аккумулятора). Из этого вопрос - эта сборка ормально работает только на Нано или что-то не правильно сделал
 

Resha2

✩✩✩✩✩✩✩
10 Июл 2019
2
0
Здравствуйте , можно ли добавить в скетче 4 пина для измерений , что бы тестировать витую пару?
 

Resha2

✩✩✩✩✩✩✩
10 Июл 2019
2
0
Не выпаивая конденсаторы, может проверять , на этой прошивке ?
 

ТехнарьКто

★★★★★✩✩
13 Янв 2020
273
435
@Resha2, Для витой пары надо использовать другие приборы.
Не выпаивая конденсаторы могут быть ошибки измерения обусловленные множеством паралельных конденсатору деталей. Прибор не читает мысли и не знает хотите вы измерить переход транзистора который как диод, резистор или конденсатор. Прибор просто измеряет, а разработчик создавал прибор для измерения одного компонента в один момент времени. Есть специальные приборы измеряющие только конденсаторы впаянные в схему. Такими и пользуйтесь.
 

GooD22

✩✩✩✩✩✩✩
26 Авг 2022
1
0
у меня не работает, загрузил скетч собрал, транзистор не верно определяет, мосфет вообще не видит или пишет что он поврежден хотя проверял 10 шт, и текст не такой как на фото, подскажите пожалуйста что делать?