В данной статье мы рассмотрим создание автоматического тестера транзисторов на основе платы Arduino Uno, предназначенный для определения распиновки и характеристик различных дискретных полупроводников (транзисторов NPN, PNP, МОП-транзисторов и т.д.). С его помощью можно также тестировать резисторы, конденсаторы, катушки индуктивности и многое другое. Изначально программный код данного тестера был написан на смеси ассемблерного кода C и AVR в программе AVR Studio.
Но автор проекта (ссылка на оригинал приведена в конце статьи) перенес его в веб-редактор Arduino, что значительно упростило работу с ним и теперь каждый, кто хотя бы немного знаком с платформой Arduino, может самостоятельно редактировать данный код программы и загружать его в плату Arduino Uno, не используя какие либо специализированные программы для работы с микроконтроллерами AVR и ОС Linux.
И одним из важных достоинств данного проекта является то, что текущая его версия (Arduino Ardutester V1.13) практически не теряет производительности или точности по сравнению с оригинальным транзисторным тестером, написанным на смеси ассемблерного кода C и AVR.
Необходимые компоненты
- Плата Arduino Uno (купить на AliExpress).
- ЖК дисплей 16х2 (купить на AliExpress).
- Кнопка.
- Резисторы 1 кОм, 10 кОм (купить на AliExpress).
- Резисторы с допуском 1%: 470 кОм (3 шт.), 680 Ом (3 шт.).
- Макетная плата.
- Соединительные провода.
Схема проекта
Схема тестера транзисторов на основе платы Arduino Uno представлена на следующем рисунке.
Тестирование работы проекта
Подключите компонент для тестирования к любому из контактов TP1, TP2, TP3 (компонентом для тестирования могут быть транзисторы NPN, PNP, FET, резисторы, конденсаторы, диоды, светодиоды и многое другое).
После этого нажмите на кнопку "ТЕСТ" и посмотрите результаты тестирования на экране ЖК дисплея 16х2.
Нажмите кнопку "ТЕСТ" еще раз, чтобы считать дополнительные параметры или произвести новый тест.
Длительное нажатие на кнопку "ТЕСТ" после завершения теста открывает меню проекта: нажмите "ТЕСТ" еще раз, чтобы прокрутить выбор меню, и длительно нажмите кнопку "ТЕСТ", чтобы выбрать определенную функцию.
Предупреждение: если будете тестировать конденсатор, то убедитесь в том, что вы разрядили его перед этим.
Полезные “фишки” меню проекта
f-Generator (выход прямоугольной волны с выбираемой частотой на TP2) ( Test Pin 2 )
10-bit PWM (10-разрядный ШИМ) (частота с выбираемым коэффициентом заполнения/скважностью на TP 2) ( Test Pin 2 )
Если вы заблудились в меню, нажмите клавишу сброса платы Arduino UNO.
Исходный код программы (скетча)
Код программы просто огромный (он содержит 2431 строку) поэтому здесь не стал его приводить, можете посмотреть его на источнике (ссылка в конце статьи) или скачать его по этой ссылке. В скачанном по этой ссылке архиве вам необходим будет файл ArduTester_1_13.ino. Также в этом архиве находится много других файлов программ, можете попробовать их работу если интересно.
Лично я этот проект не собирал, но решил перевести его для нашего сайта как один из самых популярных аналогичных проектов (тестеров) на источнике.
4 375 просмотров
Попробовал скомпилировать файле "ArduTester_1_13.ino" для Ардуино Уно Р3
- не компилируется, т.к. нарушена архитектура построения программы в файле "ArduTester_1_13.ino", в функцию setup() вставлены определения других функций да ещё всё сдобрено изрядно директивами условной компиляции...
Т.е. там сборная солянка, которую невозможно съесть 🙂
Добавлю, что не фэншуй использовать циклы по меткам begin_selftest; no_zero_resistance и другим.
В итоге скетч "ArduTester_1_13.ino" не рабочий и если возникнет интерес создать такой же тестер, то придётся заново всё собирать из отдельных файлов C++
Да, возможно, проект не идеален и требует некоторых доработок, но, тем не менее, он пользовался достаточно большой популярностью на источнике, иначе я не стал бы переводить его для нашего сайта. И, я думаю, надергать из этой сборной "солянки" кода нужные себе блоки (под конкретно свои задачи) все таки гораздо проще чем написать их с нуля самому. Тем более всегда можно модифицировать готовые фрагменты кода
Можете описать принципиальную схему и структурную (блоки узлов)?
А в схеме здесь особо ничего интересного нет ведь, вся логика работы этого проекта зашита в его достаточно большой программе