Этот прибор можно купить за несколько евро, но я захотел собрать его сам используя небольшой OLED-дисплей, микроконтроллер ATtiny85 и несколько пассивных компонентов.

Благодаря этим библиотекам, TinySSD1306 и TinyWireM, для управления функциями дисплея через интерфейс I2C и эффективную процедуру сглаживания (все это было найдено в сети) я не получил очень точные показания, но результатом остался доволен.

Основная идея состоит в том, чтобы считывать падение напряжения на резисторе низкого сопротивления, подключенного последовательно с нагрузкой, с помощью АЦП Attiny85 настроенного в режим дифференциального измерения с 20-кратным усилением и опорным напряжением Vref 1,1 В.

С шунтом сопротивлением 0,1 Ом можно измерить максимальный ток около 500 мА с разрешением 10 мА, прежде чем вход АЦП будет перегружен. Для более высоких токов АЦП настроен на однократное усиление, своего рода автоматический диапазон.

Максимальное значение тока может составлять 10 А, но следует учитывать рассеиваемую мощность шунта и текущую емкость разъемов USB, поэтому я считаю, что 1 А достаточный для этого устройства.

Для считывания напряжения АЦП устанавливается в режим однократного преобразования, делитель входного напряжения подключается к сигналу Vbus, а выход с делителя поступает на вход ADC3, который остается заземленным во время измерения тока.

Считывание тока и напряжения происходит последовательно в цикле с задержкой, определяющей количество показаний, которое в основном зависит от процедуры отображения. Функция усреднения помогает обеспечить более стабильную индикацию данных. Точность также зависит от фактических значений Vref и делителя напряжения, которые можно экспериментально изменить для точности показаний.

Схема устройства

USB тестер напряжения и тока - схема

ОБНОВЛЕНИЕ 13-02-2016

- Добавлен регулятор напряжения 3,3 В, чтобы изолировать микроконтроллер от источника питания шины Vbus, улучшая внутреннюю стабильность опорного напряжения и таким образом, точность измерения.

- Добавлен Mosfet BS170 для управления делителем напряжения и снова рассчитал его, чтобы получить полезный диапазон измерений от 4,00 до 6,00 Вольт (скриншот прилагается, чтобы лучше объяснить работу).

- Добавлено измерение мгновенной мощности (Вт) и емкости электрического заряда (мАч).

- Некоторые незначительные исправления кода.

Более подробная информация в комментариях к коду и в таблице данных Attiny85.

Код был написан с использованием Arduino IDE 1.6.6, ATtiny Boards Manager и загружен через USBasp.

Биты конфигурации микроконтроллера: ATtiny85 внутренний генератор на 8MHz, L:0xE2, H:0xDF, E:0xFF.

USB тестер напряжения и тока USB тестер напряжения и тока USB тестер напряжения и тока USB тестер напряжения и тока USB тестер напряжения и тока USB тестер напряжения и тока USB тестер напряжения и тока USB тестер напряжения и тока

Автор: anto


Файлы к статье "USB тестер напряжения и тока"
Описание:

Исходный код программы(Си), библиотеки TinySSD1306 и TinyWireM, файл прошивки микроконтроллера

Размер файла: 25.31 KB Количество загрузок: 1 381 Скачать