В предыдущей части статьи рассматривались схемы приборов на логических элементах и транзисторах, в заключительной части рассмотрим простые схемы автоматизированных приборов на основе микроконтроллеров. Принцип работы примерно одинаков для данного типа приборов - микроконтроллер формирует импульсы и в различных вариантах "опрашивает" испытуемый полупроводниковый прибор, соответственно "снимается" отклик испытуемого прибора и производится интерпретация результата измерений. Примеры таких приборов, например на PIC контроллерах, можно найти в журнале "Радио" (например №8 2005 год, стр. 31, или №11 2011 год, стр. 25).
Ещё большую популярность приборы для проверки полупроводниковых и измерения параметров RLC компонентов и определения цоколёвки получили после "популяризации" нашими китайскими друзьями разработок Маркуса Фрейека, доработанных Карлом-Хайнц Кюббелера и Маркусом Решке. Прибор продается под названием LCR-TC1, TC2, TC4 и т.д. , имеет множество "железных" реализаций - но в основе обычно контроллер от avr (чаще Atmega328, иногда Atmega644, встречаются клоны). Документацию и прошивки оригинальных решений можно глянуть на github.com, версий прошивок множество - прошивки от Маркуса имеют добавочный символ "m", от Кюббелера соответственно "k" . Для понимания принципа работы тестера, настройки программного обеспечения и вариантов "железной" реализации прибора советую прочитать руководство, составленное Карлом-Хайнц Кюббелера, и переведенное Сергеем Базыкиным (ссылка, документ pdf). В интернете достаточно описаний вариантов самодельных "транзистор тестеров" (некоторые представлены, например, на vrtp.ru), практически все используют "полную" прошивку (ПО под avr студию) микроконтроллера программатором без использования загрузчика (Arduino) . Но адепты Arduino не остались в стороне - есть несколько проектов "адаптации" оригинального кода под ArduinoIDE. Можно отметить проект адаптации авторства pighixxx (самый старый, давно не развивающийся), проект автора arduinec на форуме arduino.ru (последний вариант на основе версии 1.08k, ссылка на скетч, без развития, далее буду называть скетч версии 1.08), два варианта автора plouc68000 (arduino.cc): первый под Arduino UNO (Ardutester v1.13, ссылка на описание и скетч), второй более новый под UNO и MEGA (Ardutester Millenium, ссылка на описание и скетч). В конце статьи ссылка на архив с скетчами (автором статьи внесены некоторые правки в скетчи, например, исправление ошибки запуска selftest, скетчи компилируются в ArduinoIDE версии 1.8.16, на других версиях не проверял).
Минимальная принципиальная схема транзистор тестера с выводом информации по последовательному порту приведена на Рисунке 1.
Требования предъявляются только к номиналам сопротивлений мостов - как минимум отклонение номиналов должно быть не более 1 %.
При всей простоте схемы прибор предоставляет следующие возможности:
- измерение сопротивления, ёмкости, индуктивности.
- определение параметра ESR и Vloss для конденсаторов.
- Автоматическое определение N-P-N и P-N-P биполярных транзисторов, N- и P-канальных MOSFET транзисторов, JFET транзисторов, диодов, двойных диодов, тиристоров и симисторов. Для тиристоров и симисторов уровень открытия должен быть досягаем для тестера. Для IGBT транзисторов сигнал 5 V должен быть достаточным для открытия транзистора.
- Автоматическое определение расположения выводов элемента.
- Измерение коэффициента усиления и порогового напряжения база эмиттер биполярного транзистора.
- Транзисторы Дарлингтона идентифицируются по пороговому напряжению и коэффициенту усиления.
- Обнаружение защитного диода в биполярных и MOSFET транзисторах.
- Измерение порогового напряжения затвора, значение емкости затвора и RDSon до напряжение затвора около 5 V в транзисторах MOSFET.
- Измерение порогового напряжения затвора и величины ёмкости затвора MOSFET.
- Для версии 1.13 доступно меню (генератор, самотестирование, выбор режима работы), в версии 1.08 доступно только самотестирование.
Перед загрузкой скетча необходимо провести некоторую настройку параметров. Для версии Ardutester v1.08 нужно включить следующий параметры (должны быть включены по мнению автора):
- WITH_SELFTEST - если Вы выбираете эту опцию, программное обеспечение будет включать функцию самодиагностики. Самодиагностика будет начата, если Вы соедините все 3 испытательных порта вместе «перемычкой» и нажмете кнопку TEST.
- AUTO_CAL В процедуре самодиагностики будет дополнительно измерено смещение нуля при измерении ёмкости.
- WITH_AUTO_REF Опция позволяет автоматически считывать опорное напряжение, чтобы получить фактический коэффициент, для измерения малых величин ёмкостей (ниже 40 µF ).
- AUTOSCALE_ADC Позволяет автоматически переключать опорное смещение АЦП или к VCC или к внутреннему ИОН.
В версии скетча 1.08 параметры конфигурации в начале скетча, вывод в последовательный порт включен всегда, при появлении артефактов скорость можно изменить в строке Serial.begin (найти поиском).
Параметры конфигурации для программного обеспечения от автора plouc68000 (версия 1.13к) расположены в файле Makefile.h. Для включения вывода через последовательный порт необходимо раскомментировать соответствующие поля и закомментировать поля выбора LCD дисплея.
Так же стоит обратить внимание на параметр NO_AREF_CAP, сообщающий программному обеспечению, что у Вас нет конденсатора (100 nF ), соответственно для "не модернизированной" Arduino Uno его надо закомментировать или присвоить 0.
Более подробно по флагам конфигурации можно посмотреть в инструкции (на версию 1.13 ссылка выше, на версию 1.08 в архиве с скетчем в конце статьи).
Конечно, от "сопливого" макета не приходится ожидать достоверного измерения параметров линейных компонентов цепей с сосредоточенными постоянными (L, R, C), но с задачей проверки и определения цоколёвки полупроводниковых приборов тестер вполне справляется. На Рисунке 3 приведены результаты некоторых тестов транзисторов (скетч 1.13 ArduTester_more.ino от plouc68000).
Наличие не "развязанного" подключения по USB не слишком способствует точности измерения (отмечено в инструкции Карлом-Хайнц Кюббелером, что наличие подключения USB-UART достаточно влияют на результаты измерений тестера), да и "заряженный" конденсатор иногда приводит к печальным последствиям (я писал статью по ремонту ардуино после неудачных "опытов" с тестером транзисторов и конденсаторами, "унесло" микроконтроллер, USB-UART, и как выяснилось позже - порт USB на материнской плате....). Так, что хорошо бы иметь более или менее автономный тестер.
Скетч версии 1.08 позволяет подключать следующие дисплеи:
- LCD1602, параллельный интерфейс.
- LCD1602, интерфейс I2C.
- графический дисплей OLED 0.96" (based on SSD1306 drivers) в текстовом режиме.
- графический дисплей от Nokia 5510 (текстовый режим).
Настройка для того или иного дисплея для скетча версии 1.08:
- Для дисплея LCD1602 надо раскомментировать #define LCD1602.
- Для дисплея LCD 1602 с I2C-интерфейсом комментарий снимается с двух строк: #define LCD1602 и #define LCD_I2C.
- Для дисплея Nokia 5110 комментарий убирается с #define NOK5110.
- Для дисплея OLED 0.96" с SPI-интерфейсом раскомментируется #define OLED096.
- Для дисплея OLED 0.96" с I2C-интерфейсом комментарий снимается с двух строк: #define OLED096 и #define OLED_I2C.
- Вывод в Serial port работает, даже если закомментированы все строчки с дисплеями.
Более подробно можно посмотреть на форуме (ссылка).
Версии скетча 1.13 поддерживают следующие дисплеи:
- LCD 1602 с параллельным интерфейсом.
- LCD 1602 и интерфейсом I2C
- Графический дисплей 1306 OLED 128 X 64 с интерфейсом I2C или SPI в текстовом режиме.
Конфигурация производится в файле Makefile.h, при выборе LCD нельзя параллельно использовать вывод в последовательный интерфейс. Если закомментированы все варианты выбора дисплея и вывода в последовательный порт - считается, что подключен LCD1602 с параллельным интерфейсом в 4-х битном режиме. И, насколько я понял, что со скетчем 1.08, что и с скетчем 1.13 для UNO доступен только текстовый режим вывода (с графическими дисплеями не пробовал, не уверен).
Схема подключения дисплея LCD1602 с параллельным интерфейсом приведена на Рисунке 4.
Макет тестера транзисторов приведен на Рисунке 5.
При питании напряжением 9 вольт во время измерения ток около 30 мА (Рисунок 6).
Для измерения R, L, C необходимо провести самодиагностику и калибровку тестера (Selftest). В версии скетча 1.08 нет меню, в версии скетча 1.13 меню вызывается длинным нажатием кнопки "Тест". В версии скетча 1.08 калибровка запускается при замыкании всех измерительных щупов (разъёмов), в версии 1.13 так запускается диагностика, калибровка через меню. Для калибровки нужен конденсатор номиналом от 4 нФ до 20 нФ, в версии 1.13 - еще и конденсатор номиналом более 100 нФ.
В версии скетча 1.13 через меню - можно вызвать функции генератора (до 2 МГц, Рисунок 7) и PWM, меню позволяет также выбрать определённый режим тестирования, производить калибровку, просматривать диагностические данные.
Краткие выводы: при простоте схемы даже в таком "сопливом" макетном виде данный тестер полностью справляется с задачей определения типа и цоколёвки полупроводниковых приборов (конечно с ограничениями). Измерение параметров линейных компонентов цепей с сосредоточенными постоянными (L, R, C) в таком конструктивном решении мало достоверно и значительно проигрывает по простоте конструкции и точности прибору описанному в этой статье. На форумах обсуждается влияние цепи (резистор-светодиод) подключенной к порту PB5 на результаты измерений - опытов не проводил, цепь не удалял, но могу предположить верность утверждения. Вариант программного обеспечения в виде скетча не реализует всех функций, доступных в "полной" версии (графика, частотомер). Не берусь сказать какой скетч лучше - версия 1.08 ( tt108004.ino) более "простой", и как мне показалось более стабильный, следующим бы поставил скетч ardutester_more.ino (1.13) и наибольшее количество "глюков" - ardutester_1_13.ino (всё есть в архиве). И, конечно, решение за Вами, какое программное обеспечение использовать - скетч или "полное" (для avr студии), какое конструктивное решение применить - использовать Arduino с шилд или разработать плату под микроконтроллер и периферию, предусмотреть релейную защиту портов микроконтроллера, поставить в схему повышающий преобразователь для проверки стабилитронов и много можно ещё найти доработок на форумах и ресурсах в интернете (если буду мастерить для себя - это мой выбор). Но "пощупать", что это за тестер, с минимальными трудозатратами - вариант на базе Arduino вне сомнения самый простой (по мнению автора).
Архив с документацией и скетчами можно забрать здесь.
Спасибо, уважаемые читатели, что уделили время на мой небольшой труд.