Делаем USB тестер с функцией самокалибровки
Tirdad Sadri Nejad
Hackster.io
Миниатюрный модуль на микроконтроллере ATtiny13A позволяет измерять напряжение до 22 В и ток до 5 А
Существует много разновидностей так называемых USB тестеров, которые используются для контроля напряжения и тока, протекающего через USB устройство. Они могут использоваться для проверки кабеля, зарядного устройства, быстрого измерения потребляемого тока, тока заряда. Подобного рода измерители пользуются популярностью из-за их функциональности и низкой стоимости. Кстати, по второй причине теряется всякий смысл самостоятельной сборке подобного устройства. Но конструкция прибора, о котором пойдет речь в статье, заслуживает внимания из-за интересной аппаратной и программной реализации (Рисунок 1).
Рисунок 1. | USB тестер позволяет измерять напряжение до 22 В и ток до 5 А. |
В статье мы рассмотрим конструкцию подобного модуля USB тестера, который выполнен на микроконтроллере (МК) и драйвере семисегментного индикатора и обладает рядом преимуществ:
| |||
| |||
| |||
Рисунок 2. | USB тестер на ATtiny13A: одновременная индикация напряжения и тока (а), индикация напряжения (б), индикация потребляемого тока (в). |
В основе схемы МК Microchip семейства AVR ATtiny13A, драйвер семисегментного индикатора TM1637, резистивный шунт сопротивлением 0.033 Ом и 4-разрядный семисегментный индикатор с общим анодом. Внутреннего источника опорного напряжения МК с выходным напряжением 1.1 В вполне достаточно для приемлемой точности прибора.
Принципиальная схема прибора изображена на Рисунке 3. Обратите внимание, напряжение питания МК и драйвера семисегментного индикатора 3.3 В: установлен линейный регулятор напряжения серии LM1117MP-3.3. Датчик тока – резистивный шунт R1 установлен в разрыв «минуса» питания USB разъема P2. Делитель напряжения образуют резисторы R2 и R3. Для данных номиналов резисторов делителя (3.9 кОм и 1 кОм) диапазон измерения напряжения составляет 0-5 В.
Рисунок 3. | Принципиальная схема USB тестера на МК ATtiny13A. |
Микросхема драйвера 4-разрядного семисегментного индикатора TM1637 считается достаточно распространенной и надежной, применяется в платах расширения Arduino. Подключается к микроконтроллеру по двухпроводному последовательному интерфейсу (CLK, DIO). Помимо реализации динамической индикации, драйвер поддерживает управление яркостью индикатора.
В режиме одновременной индикации напряжения и потребляемого тока следует учитывать, что индикатор четырехразрядный, и такой режим не очень хорошо подходит для значений выше 9 В.
Принципиальная схема и проект печатной платы разрабатывались в Proteus; проект доступен для скачивания в разделе загрузок. Печатная плата двухсторонняя, что позволяет минимизировать размеры прибора. Вид печатной платы со стороны установки МК и микросхемы драйвера индикатора показан на Рисунке 4.
Рисунок 4. | USB тестера на МК ATtiny13A: вид печатной платы со стороны установки МК. |
С целью уменьшения объема программного кода пришлось избавиться от вычислений с плавающей точкой. Несмотря на то, что значение резистивного делителя напряжения и значения, отображаемые на дисплее, с десятичной точкой, в программном коде значения рассчитываются как мА и мВ, затем десятичная точка отображается в нужном месте на индикаторе.
Исходный код программы микроконтроллера понятен и снабжен комментариями. Библиотека драйвера семисегментного индикатора была оптимизирована по причине ограниченного объема Flash-памяти МК. В частности, в исходном коде библиотеки отключены (закомментированы) многие дополнительные символы, которые могут отображаться на семисегментном индикаторе. Если вы планируете использовать библиотеку для других проектов, то просто раскомментируйте нужные строки. Также в библиотеке можно задать уровень яркости индикатора (перед компиляцией проекта). Также и заголовочный файл библиотеки драйвера индикатора может быть адаптирован под другие микроконтроллеры. Для разработки программного кода использовалась среда разработки Atmel Studio 7.
ООО «Мегател», ИНН 3666086782, ОГРН 1033600037020
Добавить свое объявление
* заполните обязательные данные
Статистика eFaster: