Transistor Tester for Arduino
- Войдите на сайт для отправки комментариев
Transistor Tester for Arduino
Как-то знакомый электронщик показал мне прибор под названием "транзистор тестер", который измеряет параметры радиоэлектронных компонентов. На данном форуме он обсуждался здесь:
http://arduino.ru/forum/proekty/tester-radiodetalei-na-arduino
Меня же заинтересовало, что данный прибор сделан на чипе ATmega328p, то есть почти на Arduino. Так и появился данный проект.
Ссылки в Интернете быстро привели к разработчикам данного прибора:
http://www.mikrocontroller.net/articles/AVR_Transistortester
http://www.mikrocontroller.net/svnbrowser/transistortester/
Язык программирования у них Си, что тоже подходит для Arduino. Глобальное же отличие заключается в том, что их код рассчитан на полную прошивку чипов, а в Arduino используется загрузчик и скетчи.
Автор сайта pighixxx.com на основании кода от Markus разрабатывал Arduino-версию прибора (под названием Ardutester), но почему-то её забросил.
Рассмотрение схемы прибора привело к выводу, что для измерений к Arduino нужно добавить лишь 6 резисторов (что и было реализовано).
Так как нулевой пост нельзя править, то ссылки и описания будут выложены в следующих постах, чтобы можно было поправить в случае ошибок.
https://yadi.sk/d/OzvzMutbruUss
В комплекте к скетчу прилагаются:
- документация к прибору от авторов на английском и русском языках;
- исходные коды от авторов (папка source);
- картинки схемы подключения и фото макетной платы (папка images);
- последняя версия скетча от Pighixxx.
Для переработки в скетч была взята версия 1.08k от Karl-Heinz Kubbeler. По аналогии с авторами она получила общий номер 1.08a, а номер версии соответственно 1.08.001.
Версия 1.08.002 в посте #18
Версия 1.08.003 в посте #265
Версия 1.08.004 в посте #298
Схема получившегося тестера транзисторов практически совпадает с картинкой Pighixxx (поэтому не стал рисовать свою):
Есть только маленькие отличия:
- не припаян конденсатор на AREF, так как по описанию разработчиков он иногда мешает при переключении на внутренний источник опорного напряжения Arduino 1,1 вольт;
- добавлен к кнопке подтягивающий резистор к питанию на 100 кОм, так как в коде может применяться команда, отключающая внутреннюю подтяжку к питанию всех пинов.
Дисплей подключен по стандартной схеме:
Дисплей подключается к пинам D2-D7, пины D0 и D1 свободны для Serial port, пины A4 и A5 свободны для I2C.
На макетной плате собрал разборную конструкцию на основе Arduino Nano 328 и LCD 1602:
На фотографии видны 6 резисторов, необходимых для измерений. Справа распаян разъём для подключения по I2C, и ещё маленький разъём для подключения внешнего питания (от Кроны например).
Провода специально проложил сверху, чтобы было видно к каким пинам они идут. Снизу макетку не стал фотографировать, чтобы не позориться из-за напаянных там комков (программирую я лучше чем паяю).
На Arduino Nano пришлось удалить светодиод на 13-м пине (точнее был удален токоограничительный резистор).
Схему можно собрать и без дисплея, так как результаты через Serial port могут передаваться в Serial monitor Arduino IDE.
Как в коде реализован процесс измерения сильно не вникал, лишь преобразовал код авторов в скетч для Arduino. Компилировал на Arduino IDE версии 1.0.5.
Основные изменения в коде (из того что вспомнил):
- все исходные файлы объединены в один скетч, границы файлов можно увидеть по разделителям типа /* -=- -=- -=- */;
- программный код приведён к "читабельному виду" (у авторов в коде часто не хватает отступов);
- разумеется функция main() была разделена на setup() и loop();
- отключено энергосбережение, автоотключение и Watchdog;
- функции для дисплея переделаны для использования через стандартные библиотеки LiquidCrystal - так лучше для смены дисплея;
- обмен через серийный порт у авторов планировался через пин A3, поэтому их UART в скетче отключен, но маска TXD_MSK (задаваемая там) используется для отделения других аналоговых портов от измерительных A0-A2;
- функции для задержек от авторов через макросы заменены на стандартные ардуиновские;
- немецкие слова к коде заменены на английские (например: Ausgabe на Output);
- из языков оставил только английский и немецкий;
- некоторые куски кода закомментировал, но оставил - могут кому-нибудь пригодится при модификации кода;
- в функции GetESR() для задержек требовалась точность в 0,5 мкс, поэтому написал функцию us500delay(), которая равносильна delayMicroseconds(), но на 500 нс работает дольше.
Замеченные ошибки:
- при получении результатов через Serial monitor после "testing..." в порт попадает какой-то мусор, но дальнейшему выводу он не мешает, поэтому не стал разбираться;
- в функции uart_putc() пришлось добавить задержку на 2 мс, так как при скорости 9600 серийный порт не успевал выталкивать данные.
Что можно ещё сделать:
- у Arduino Nano остались свободные аналоговые пины A6 и A7 - можно на них завести дополнительные проверки (например для внешнего питания);
- в начале loop() кнопка сначала проверяется на нажатие - после этого на дисплей можно вывести какую-нибудь полезную информацию (например о напряжении внешнего питания), затем идёт проверка на отпускание кнопки и запускается тестирование;
- вместо кнопки можно сделать запуск тестирования через серийный порт.
Для подключения дисплея LCD 1602 по I2C нужно поменять лишь несколько строк кода (старый код закомментирован):
Удалось поиграться с тестером транзисторов LCD-T4 с графическим экраном и сравнить показания. Цифровые результаты получились похожие, но графический дисплей красивее выводит картинки транзисторов и других элементов.
сдесь данный тестер разобран по косточкам и на ардуино тоже
http://vrtp.ru/index.php?showtopic=26668
http://vrtp.ru/index.php?showtopic=25020
http://vrtp.ru/index.php?showtopic=16451
http://vrtp.ru/index.php?showtopic=26994
и практически если не с каждодневным но каждую неделю обновляются релизы прошивок с улучшениями
сдесь данный тестер разобран по косточкам и на ардуино тоже
Версия для Arduino Uno сейчас есть и у самих разработчиков, но она предназначена для полной перепрошивки Arduino (с затиранием загрузчика). Скетчи для Arduino у них (и на указанных форумах) мне пока не попадались.
дело в том что вес прошивки с рускоязычной версией отображения результатов измерений и включенными дополнительными измерениями и опциями приближается почти к 100% обьема памяти контролера атмега328 потому загрузчик нужно затирать,если отключить меню дополнительных измерений тогда наверное можно будет использовать внутренний загрузчик,я правда в таком варианте еще не компилировал прошивку и не могу сказать какого обьема получается прошивка без дополнительного меню,но как бы все вкусняшки практически именно в этом меню а именно для тестера полупроводников достаточно атмега8,на атмега 168 добавляется измерения Rds мосфетов и кажется еще измерение ESR конденсаторов
вот сайт где авторы обновляют последние релизы прошивок,недавно были включены поддержки arduino uno и arduino 2560
http://www.mikrocontroller.net/svnbrowser/transistortester/Software/trunk/
В том-то и вся прелесть, что в скетч можно самому добавить всё что нравиться и не брать лишнее - и при этом сразу смотреть на получаемый объем.
вот сайт где авторы обновляют последние релизы прошивок,недавно были включены поддержки arduino uno и arduino 2560
Вообще-то ссылка на данный ресурс указана в нулевом посту данной темы, а про Arduino Uno написано в предыдущем посту. Неужели сложно прочитать тему до написания ответов в неё?
[quote=arduinec]
В том-то и вся прелесть, что в скетч можно самому добавить всё что нравиться и не брать лишнее - и при этом сразу смотреть на получаемый объем.
[quote=apeks1]
все тоже самое делается при сборке и компиляции прошивки под свои интересы,разница только в варианте прошивки контролера и обьеме памяти контролера (с бутлоадером или без него) и оконечной функциональности прибора
вам тоже посоветую прочитать полностью форум хотябы просто по тестеру полупроводников и много вопросов сразу отпадут что лучше полноценный прибор или куцое его подобие ну а потом можете вникнуть в тему китайских клонов и подключении нестандартных дисплеев
ну это чисто мое мнение,прошу не обижатся
что лучше полноценный прибор или куцое его подобие
Транзистор тот же самый в обоих случаях:
Из вышенаписанного следует, что я отключил в скетче лишь второстепенные функции, а основной код разработчиков не менял, поэтому мой макетный экземпляр работает не хуже "полноценных приборов".
arduinec, отлиная работа!
в 1.6.8 для нано 328 компилируется.
Буду собирать.
Что за графический дисплей используете? у меня есть Nokia 5110.
Тоже без дела валяется 1602 думаю сделаю себе такой
Что за графический дисплей используете? у меня есть Nokia 5110.
У меня пока используется только текстовый диплей LCD 1602. На фото с графическим дисплеем - готовый транзистор-тестер от китайцев.
Что за графический дисплей используете? у меня есть Nokia 5110.
У меня пока используется только текстовый диплей LCD 1602. На фото с графическим дисплеем - готовый транзистор-тестер от китайцев.
А китаец на ардуине ? Или просто атмега прошитая?
Там прошитая Mega328p с обвязкой:
Добавил в скетч поддержку дисплея Nokia 5110 в текстовом режиме, номер версии при этом поменялся на 1.08.002.
https://yadi.sk/d/u-jCgnZJsTpgv
Для выбора дисплея теперь нужно лишь раскомментировать (остальные закомментировать) требуемые #define:
Для дисплея LCD 1602 раскомментируется #define LCD1602.
Для дисплея LCD 1602 с I2C-интерфейсом комментарий снимается с двух строк: #define LCD1602 и #define LCD_I2C.
Для дисплея Nokia 5110 комментарий убирается с #define NOK5110.
Вывод в Serial port работает, даже если закомментированы все строчки с дисплеями.
Для отображения символов диода, конденсатора, резистора на дисплее Nokia 5110 в библиотеке Adafruit-GFX нужно заменить шрифт. Как это сделать описано здесь: http://arduino.ru/forum/programmirovanie/rusifikatsiya-biblioteki-adafru... (новый шрифт в посте 80).
этот проект нельзя реализовать на макетке в принципе.
и замерные резисторы для него нужны не те кетайские с 5% допуском, а прецизионные, <1%
иначе будет привирать непредсказуемо.
ну и экранчик тоже, разумеется, лучше графический, всё ж приятно видеть сразу схему элемента, особенно для начинающих
в жизни не видел такого большого кода))) и столько дефайнов) а ктонить не пробовал сделать такой тестер под дисплей тфт 1.44?
в библиотеке adafruit уже встроена поддержка кучи TFT-дисплеев, нужно только закомментировать лишние дефайны и оставить нужный.
другое дело, что нужно подбирать проект, который предусматривает подключение такого дисплея, или самому допиливать плату
вот, имхо, хороший компромиссный вариант - проект под DIP-вариант атмеги и с возможностью подключения графических димплеев
http://vrtp.ru/index.php?showtopic=26994&view=findpost&p=686236
в жизни не видел такого большого кода))) и столько дефайнов) а ктонить не пробовал сделать такой тестер под дисплей тфт 1.44?
да ладно. тут для игрушки тоже не мало потребовалось))
а ктонить не пробовал сделать такой тестер под дисплей тфт 1.44?
Собирал ранее Мультитестер ЭРЭ - Transistortester из Arduino AtMega328 16Мгц ProMini и Nano по упрощенной схеме с питанием от кроны.
TFT128x160 1.8 ST7735 SPI
TFT128x128 1.44 ILI9163 SPI
TFT128x128 1.44 ST7735 SPI
OLED 128x64 SSD1306 I2C
LCD 16x02
В архиве схемы прошивки (R530---677) фото... T tester иz Ardu-ino
Реализуется не только на макетке а на самой ардуино, замерные резисторы подбираем из того что есть близкие по номиналу но лучше конечно 1%, после пайки не забываем все платы, макетки помыть от остатков флюса.
а ктонить не пробовал сделать такой тестер под дисплей тфт 1.44?
Собирал ранее Мультитестер ЭРЭ - Transistortester из Arduino AtMega328 16Мгц ProMini и Nano по упрощенной схеме с питанием от кроны.
TFT128x160 1.8 ST7735 SPI
TFT128x128 1.44 ILI9163 SPI
TFT128x128 1.44 ST7735 SPI
OLED 128x64 SSD1306 I2C
LCD 16x02
В архиве схемы прошивки (R530---677) фото... T tester иz Ardu-ino
Реализуется не только на макетке а на самой ардуино, замерные резисторы подбираем из того что есть близкие по номиналу но лучше конечно 1%, после пайки не забываем все платы, макетки помыть от остатков флюса.
Что то не нашел скетча для ардуины по Вашей ссылке.
в библиотеке adafruit уже встроена поддержка кучи TFT-дисплеев, нужно только закомментировать лишние дефайны и оставить нужный.
другое дело, что нужно подбирать проект, который предусматривает подключение такого дисплея, или самому допиливать плату
вот, имхо, хороший компромиссный вариант - проект под DIP-вариант атмеги и с возможностью подключения графических димплеев
http://vrtp.ru/index.php?showtopic=26994&view=findpost&p=686236
Это к ардуино никакого отношения не иимеет там нет скетча.
Добавил в скетч поддержку дисплея Nokia 5110 в текстовом режиме, номер версии при этом поменялся на 1.08.002.
https://yadi.sk/d/u-jCgnZJsTpgv
Для выбора дисплея теперь нужно лишь раскомментировать (остальные закомментировать) требуемые #define:
Для дисплея LCD 1602 раскомментируется #define LCD1602.
Для дисплея LCD 1602 с I2C-интерфейсом комментарий снимается с двух строк: #define LCD1602 и #define LCD_I2C.
Для дисплея Nokia 5110 комментарий убирается с #define NOK5110.
Вывод в Serial port работает, даже если закомментированы все строчки с дисплеями.
Для отображения символов диода, конденсатора, резистора на дисплее Nokia 5110 в библиотеке Adafruit-GFX нужно заменить шрифт. Как это сделать описано здесь: http://arduino.ru/forum/programmirovanie/rusifikatsiya-biblioteki-adafru... (новый шрифт в посте 80).
Не компилируется, ошибка:
tt108002:1318: error: 'class Adafruit_PCD8544' has no member named 'cp437'
exit status 1
'class Adafruit_PCD8544' has no member named 'cp437'
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
Да, извиняюсь по моей ссылке T tester иz Ardu-ino скетчей нет, только прошивки в HEX скомпилированные из авторских исходников. А чтобы делать скетчи для какого то варианта тестера, а их очень много, все равно придется обращаться к проекту автора «Transistortester AVR Markus Reschke и Karl-Heinz K» и его. исходникам, документации.
ну хексы эт не наши кексы ))
мы копаем и заливаем скетчи это жжжжж форум для ардуино ☝
А в ардуино ISP что делают просто так? Ардуино без хекса не ардуино, и IDE тоже прекрасно шьет HEX через программатор, да кто к чему привык кто к хексам кто к кексам. =)
Вот готовый вариант для примера Транзистор тестер из китайских модулей, Ардуино про-мини + Nokia 5110 + MT3608 Сообщение: # 683071 . Скетча нет, автор не я. Nokia_5110.zip
Для отображения символов диода, конденсатора, резистора на дисплее Nokia 5110 в библиотеке Adafruit-GFX нужно заменить шрифт. Как это сделать описано здесь: http://arduino.ru/forum/programmirovanie/rusifikatsiya-biblioteki-adafru... (новый шрифт в посте 80).
Не компилируется, ошибка:
tt108002:1318: error: 'class Adafruit_PCD8544' has no member named 'cp437'
exit status 1
'class Adafruit_PCD8544' has no member named 'cp437'
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
У вас похоже старая библиотека Adafruit-GFX, в которой нет cp437. Для решения проблемы нужно в скетче закомментировать (или удалить) строку lcd.cp437(true); или обновить библиотеку. Более подробно это излагается в теме http://arduino.ru/forum/programmirovanie/rusifikatsiya-biblioteki-adafru...
http://vrtp.ru/index.php?showtopic=16451&st=10410&#entry687375
Для отображения символов диода, конденсатора, резистора на дисплее Nokia 5110 в библиотеке Adafruit-GFX нужно заменить шрифт. Как это сделать описано здесь: http://arduino.ru/forum/programmirovanie/rusifikatsiya-biblioteki-adafruit-gfx-i-vyvod-russkikh-bukv-na-displei-v-kodi (новый шрифт в посте 80).
Не компилируется, ошибка:
tt108002:1318: error: 'class Adafruit_PCD8544' has no member named 'cp437'
exit status 1
'class Adafruit_PCD8544' has no member named 'cp437'
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
У вас похоже старая библиотека Adafruit-GFX, в которой нет cp437. Для решения проблемы нужно в скетче закомментировать (или удалить) строку lcd.cp437(true); или обновить библиотеку. Более подробно это излагается в теме http://arduino.ru/forum/programmirovanie/rusifikatsiya-biblioteki-adafruit-gfx-i-vyvod-russkikh-bukv-na-displei-v-kodi
Сопротивлений не окзалось 680 ом +-1%, пытаюсь сгородить огород из тогочто есть. Чую придется в Чайна пилить на велике.
http://vrtp.ru/index.php?showtopic=16451&st=10410&#entry687375
Mining, в приборе есть меню.
Можно еще 2 кнопки поставить, или пользоваться одной кнопкой (короткое/долгое нажатие), или энкодер. Мне показалось так удобнее.
Добавил в скетч поддержку дисплея Nokia 5110 в текстовом режиме, номер версии при этом поменялся на 1.08.002.
https://yadi.sk/d/u-jCgnZJsTpgv
Пробую компилировать ваш проект, вылезает ошибка:
Arduino: 1.6.9 (Windows XP), Плата:"Arduino Nano, ATmega328"
sketch\source\Calibrate_UR.c: In function 'Calibrate_UR':
sketch\source\Calibrate_UR.c:80:23: error: 'ANZ_MESS' undeclared (first use in this function)
ADCconfig.Samples = ANZ_MESS; // set to configured number of ADC samples
^
sketch\source\Calibrate_UR.c:80:23: note: each undeclared identifier is reported only once for each function it appears in
exit status 1
Ошибка компиляции для платы Arduino Nano.
Подскажите
Добавил в скетч поддержку дисплея Nokia 5110 в текстовом режиме, номер версии при этом поменялся на 1.08.002.
https://yadi.sk/d/u-jCgnZJsTpgv
Пробую компилировать ваш проект, вылезает ошибка:
Arduino: 1.6.9 (Windows XP), Плата:"Arduino Nano, ATmega328"
sketch\source\Calibrate_UR.c: In function 'Calibrate_UR':
sketch\source\Calibrate_UR.c:80:23: error: 'ANZ_MESS' undeclared (first use in this function)
ADCconfig.Samples = ANZ_MESS; // set to configured number of ADC samples
^
sketch\source\Calibrate_UR.c:80:23: note: each undeclared identifier is reported only once for each function it appears in
exit status 1
Ошибка компиляции для платы Arduino Nano.
Подскажите
В 1.6.9 я имел много глюков. Пок сыровата.
Пробовал и в 1.6.8. Результат тот же. Ось правда WinXp
Заработало. Скачал и установил 1.7.10
Пришлось поправить ножки дисплея
Adafruit_PCD8544 lcd = Adafruit_PCD8544(7, 6, 5, 4, 3); // CLK,DIN,DC,CE,RST
У меня к этим подключен
Вы про эту схему?
Вы про эту схему?
Да, почти - у меня нет измерения стабилитронов, и питание от LiPo аккума с зарядкой от microUSB.
arduinec,спасибо за работу и открытую тему!
Есть вопрос.Возможно ли преобразовать в скетч свежую версию исходников 1.12к?Есть ArduinoMega2560 c загрузчиком на CH340.
этот проект нельзя реализовать на макетке в принципе.
и замерные резисторы для него нужны не те кетайские с 5% допуском, а прецизионные, <1%
иначе будет привирать непредсказуемо.
ну и экранчик тоже, разумеется, лучше графический, всё ж приятно видеть сразу схему элемента, особенно для начинающих
Я взял 470к и 680 ом там по 30 штук выбрал одинаковые и вуаля фсЁ пашет
Угу.
Я тоже был немало удивлен, когда купил самые обычные резисторы по 44р. за сотню и промерил около 30 из них с целью собрать DAC R2R, рассчитывая те, что поближе к серединке, использовать как R, а те, что подальше - объединить попарно (большой с маленьким) для 2R. Так оказалось, что ни один из них не выходит за 1% погрешности.
arduinec,спасибо за работу и открытую тему!
Есть вопрос.Возможно ли преобразовать в скетч свежую версию исходников 1.12к?Есть ArduinoMega2560 c загрузчиком на CH340.
В скетч версию исходников 1.12k я уже преобразовал. Компиляцию он проходит успешно, но измерять пока отказывается. На любые компоненты пишет "No, unknown, or damaged part". Кода там стало больше и в каком месте что нужно изменить я пока не нашёл.
arduinec,я ,к сожалению, в коде не силён,было бы здорово,если бы кто то из знатоков подсказал,в чём загвоздка.
было бы здорово,если бы кто то из знатоков подсказал,в чём загвоздка.
Может быть и не самым крутым, но знатоком на данном форуме являюсь и я (на Си программирую с прошлого века). Исходный код у Kubbeler'а очень замороченный, тяжело читается. А времени, чтобы долго ковырять код, как всегда не хватает.
arduinec,никак не хотел Вас обидеть,мои извинения.
arduinec, чирканул схему для промини с дисплеем 5110.
Посмотри пож правильно исходя из твоего описания буквами ?
arduinec, чирканул схему для промини с дисплеем 5110.
Посмотри пож правильно исходя из твоего описания буквами ?
По внешним элементам вроде всё верно. Выводы для дисплея 5100 специально выбрал такие, чтобы удобнее подключались. Ещё пин 2 остаётся свободным.
На Arduino Nano удалил только резистор диода на 13 пине. Конденасатор на AREF (не смотрел есть ли он там) не трогал. В схеме Pighixxx ставится дополнительный конденсатор - вот его я и не стал припаивать.
На олед дисплейчике понравилось,подпишусь на тему:)
большой лайк за ваши труды форумчане!!!