Цифровой амперметр и вольтметр для блока питания на INA226
Амперметр и вольтметр на модулях TM1637 и INA226
В статье рассматривается простой и сравнительно не дорогой, но довольно точный цифровой вольтметр и амперметр, разработанный для применения в блоках питания, зарядных устройствах, активных нагрузках, преобразователях и т.д. Схема устройства представлена на рисунке 1.
Сердцем схемы является микроконтроллер PIC16F676. На его возложены все функции приема информации с модуля INA226, преобразования данных и вывод их значений на модуль индикации на микросхеме ТМ1637. Питаются модули и контроллер от стабилизатора напряжения DA1 +5 вольт. Данные на микросхемы можете посмотреть в документации.
Модуль INA226 можно приобрести у китайских друзей, его внешний вид ниже.
На Али есть модули с разными номиналами датчиков тока, у меня есть с шунтом на 0,1 Ом и с номиналом в 0,01Ом. И у этих модулей разная нумерация выводов питания. Будьте внимательны при подключении, можно сжечь INA226. Для разных номиналов шунтов придется рассчитывать свои калибровочные коэффициенты. Это не сложно, ниже я расскажу, как это делается.
Модуль индикаторов самодельный, о нем на сайте есть статья «Индикатор вертикальный 2×3 на TM1637». В ней есть все, что необходимо для самостоятельного изготовления данного модуля. Его внешний вид показан на фото ниже.
Расчет калибровочного коэффициента
Согласно документации на микросхему, при ее инициализации нам необходимо обязательно внести данные в калибровочный регистр (Calibration Register). При нулевом значении калибровочного регистра микросхема работать не будет. Значение калибровочного коэффициента зависит от номинала датчика тока (шунта) и выбранного нами разрешения тока — Current_LSB A/bit. При сопротивлении шунта, равном 0,01 Ом и при максимальном напряжении на нем 80 мВ (исходя из документации), максимальный измеряемый ток будет равен I = U/R = 0,08B/0,01Ом = 8,00А. Для нашего случая, при использовании трехразрядного индикатора, выбираем разрешение Current_LSB = 0,01А/bit. Хотя максимальное разрешение по тока у данной микросхемы намного больше и равно: Current_LSB = 8А/2^15 = 0,000244140625 A/bit. Величину калибровочного коэффициента можно найти по формуле: CAL = 0,00512/Rшунта • Current_LSB = 0,00512/0,01 • 0,01 = 51,2 ≈ 51. Расчет калибровочного коэффициента является приблизительным и требует обязательной корректировки при настройке устройства. А учитывая, что модуль китайский, то значение коэффициента может отличаться в разы. Вот, что получилось у меня: При CAL ≈ 51, вместо одного ампера прибор показывал 0,29А. Что надо сделать, 1А делим на 0,29А = 3,448, и это отношение умножается на CAL – 51 получает новый коэффициент =. 176 -> 0xb0. В исходник записываем новое значение калибровочного коэффициента, компилируем, заново прошиваем контроллер. Сверяем новый результат с контрольным амперметром, если не устраивает, то снова подгоняем значение калибровочного коэффициента. В моем случае хватило одного раза.
Внизу дан кусочек кода подпрограммы инициализации микросхемы INA226 с записью корректирующего коэффициента в регистр калибровки.
С разрешение тока мы разобрались, а разрешение напряжения (Bus Voltage Register) жёстко запрограммировано и составляет 1,25 mV/ bit. В связи с этим, чтобы получить разрешение напряжения 0,01В/bit в программе предусмотрено деление полученного результата преобразования АЦП на восемь.
Но так, как на индикатор будет выводить значение напряжения в виде 00,0, то сотые вольты учитываться не будут.
На этом все. Удачи К.В.Ю.
Скачать файлы проекта.
.
.
4 комментария к “Цифровой амперметр и вольтметр для блока питания на INA226”
Здравствуйте.
Подскажите пожалуйста, а можно перевести данный проект на max7219 для 8 индикаторов, чтоб добавить символы U и А на дисплей?
Есть желание использовать вакуумно люминесцентный индикатор, разрядов свободных достаточно, а с МК не особо дружу.
Привет Стас. Можно конечно, но все зависит от желания этим заниматься. В данный момент у меня его нет. Как появится — перепишу программу на 7219. А с вакуумными индикаторами и связываться не буду.
Здравствуйте!
Будет наглость с моей стороны, но стоит ли надеяться на появление версии на pic16f628 и на tm1638 (для формата U00.00, A0.000)?
Для лбп нужен будет вольтамперметр, а все проекты с ina226 на жк, на семисегментниках не найти. Сам написать программку не смогу.
Привет, даже не знаю, как и обратиться. Да наглости то нет ни какой. Просто ц меня в наличии нет не 628 не 1638. Программу написать это одно, а обкатать в железе это совершенно другое. А покупать эти деталюхи просто так... не вижу смысла. Да и цены сейчас на пики ого.