Ампервольтметр на ардуино: Вольт-Амперметр на INA233 и Arduino как монитор для лабораторного БП

Вольтамперметр на Ардуино (ATmega8 ).

Надоело мне тестировать всевозможные стабилизаторы и блоки питания в слепую, подключая к ним различного рода резисторы и прочую чепуху и решил я собрать электронную нагрузку, а какая нагрузка без блока индикации? Правильно, фиговая! Поэтому был собран вольтамперметр, на базе имеющихся в наличие микроконтроллера ATmega8 и дисплея 16 символов на 2 строки.

В устройстве применено совсем не много деталей, пробегусь по основным узлам. Питание микроконтроллера и дисплея реализовано от отдельного источника состоящего из 2-х литиевых банок формата 18650 и линейного стабилизатора на пять вольт L7805, перед которым расположен делитель напряжения R1 — R2 необходимый для измерения напряжения на аккумуляторах.

Подстроечный резистор R3 служит для настройки контраста дисплея. При включении устройство в течении 3-х секунд выводит на дисплее напряжение на аккумуляторах.

Напряжение подключаемого источника питания измеряется на делителе R4 — R5. Коэффициент этого делителя позволит микроконтроллеру измерять напряжение до 55 вольт, что более чем достаточно для моих целей.

Силу тока микроконтроллер определяет измеряя напряжение на резисторе R6 в качестве которого я использовал 2 параллельно подключенных резистора на 3 ома, а следовательно их общее сопротивление равно 1.5 ома и это не лучший выбор так как при больших токах и малом сопротивлении нагрузки такое значение будет сильно влиять на измерения. Необходимо использовать резистор сопротивлением не более 1 ома и мощностью не менее 2 ватт. Как вариант из доступных, можно параллельно установить два 2-х ватных резистора сопротивление 1 ом каждый.

Резистор R6 включен последовательно с нагрузкой, определив напряжение получившегося делителя и зная напряжение подключенного источника питания, микроконтроллер высчитывает сопротивление нагрузки, ток и потребляемую мощность, после чего выдает получившиеся значения на дисплей.

Дисплей устанавливается на плату со стороны дорожек и крепиться к ней 18-ти миллиметровыми винтами М3. При разводки платы я допустил ошибку и промахнулся с одним из крепежный отверстий, если вы захотите собрать схему, то это легко исправить, например немного переместив входное отверстие для подключения плюса питания от аккумулятора, свободного места на плате осталось достаточно, но и на 3-х винтах дисплей держится отлично. При сборки следует обратить внимание, что на плате имеются перемычки. Проставки для винтов в моём случае распечатаны на 3д принтере и имеют высоту 11 миллиметров.

Перед заливкой прошивки в микроконтроллер, необходимо задать некоторые параметры (строки с 30 по 35):

  reference_voltage = 4.95; // Значение опорного напряжения в вольтах
  shunt_resistance = 1.50;  // Сопративление шунта (резистора R6) в омах
  float R1 = 14810.00;      // Сопративление резистора R1 делителя напряжения аккумулятора в омах
  float R2 = 12020. 00;      // Сопративление резистора R2 делителя напряжения аккумулятора в омах
  float R4 = 4625.00;       // Сопративление резистора R4 делителя напряжения вольтметра в омах
  float R5 = 470.00;        // Сопративление резистора R5 делителя напряжения вольтметра в омах

В качестве опорного напряжения использовано напряжение питания микроконтроллера, а так как стабилизатор L7805 выдает на выходе не точные 5 вольт, то необходимо измерить выходное напряжение стабилизатора мультиметром и внести его значение в прошивку. Аналогично необходимо поступить с резисторами и вписать в прошивку их точные значения.

  • Скачать архив проекта (схема, печатная плата, прошивка).

В виде бонуса! Подписчик YouTube канала Дмитрий Ягупов развел плату для дисплея с подсветкой и любезно предоставил Fuse-биты для работы ATMega8 от внутреннего генератора на 8МГц на случай если кто захочет прошивать не из под Arduino IDE. Скачать архив.

Встраиваемые амперметры, вольтметры, ампервольтметры

Встраиваемые амперметры, вольтметры, ампервольтметры

1%

242 руб

Модуль RI056. Вольтметр 2,5…30 В (Красный дисплей 7 мм)

8%

313 руб

Модуль RI030. Вольтметр в корпусе 4.5-30 В (синий).

3%

210 руб

Модуль RI007. Вольтметр 2,5…30 В (Зелёный дисплей)

459 руб

Модуль RI0105. Ампервольтметр DC 0…100 В (100 А). СИНЕ-КРАСНЫЙ

27%

315 руб

Модуль RI048. Цифровой ампервольтметр DSN-VC288

609 руб

Модуль RI092. Ампервольтметр DC 0…100 В (10 А). КРАСНЫЙ

1%

277 руб

Модуль RI008. Вольтметр 0…100 В (Зелёный дисплей)

336 руб

Модуль RI094. Ампервольтметр DC 0…100 В (10 А). ЗЕЛЁНО-КРАСНЫЙ

156 руб

Модуль RI0121. Амперметр стрелочный на 30 Ампер

14%

232 руб

Модуль RI009. Вольтметр 2,5…30 В (Синий дисплей)

17%

273 руб

Модуль RI026. Вольтметр 0…100 В (Жёлтый дисплей)

457 руб

Модуль RI0126. Вольтметр круглый AC 50…500 В. КРАСНЫЙ

Вы смотрели

Бренд, изготовитель

  • Радио КИТ (1)
  • VDG (2)
  • DIY (61)
  • Мробот (1)

Быстрый заказ

Фамилия:

Телефон:

E-mail:

Подписаться на новости магазина

Комментарий:

Reddit — Погрузитесь во что угодно

У меня есть проектная идея, которую я крутил в голове, но есть одна ее часть, на которой я застрял. По сути, я хочу построить вольт/амперметр (который также будет вычислять ватт-часы) для использования с системой 24 В постоянного тока. Максимальный потребляемый ток составляет около 45А мгновенно, непрерывный максимум может быть 30А. Желаемое разрешение составляет 10 мА (0,01 А). Максимальное ожидаемое напряжение составляет 30 В (абсолютно высокое, почти никогда не будет, поскольку полностью заряженный = 29,4 В), а минимальное напряжение составляет 21 В (низкое напряжение отсечки батареи).

У меня уже есть в системе очень простой дешевый измеритель на основе шунтирующего резистора, но все, что он делает, это отображает немедленные значения. Никакой регистрации, никаких расчетов Втч и т. д. Я думаю, что могу повторно использовать шунтирующий резистор, но создать свой собственный счетчик с гораздо большими возможностями. Шунтирующий резистор подключается к счетчику четырехжильным кабелем; два провода обеспечивают прямое считывание напряжения батареи, два других подключаются через шунт, чтобы можно было измерить падение напряжения. Предполагая, что я могу собрать аппаратное обеспечение, его можно будет легко использовать повторно.

Итак, вот что я уже понял:

  • Аналоговые контакты Arduino никогда не должны подавать напряжение выше опорного напряжения — в большинстве случаев 5 В. 12-битный АЦП может считывать от 0 до 5 В. Таким образом, делитель напряжения будет необходим, чтобы снизить напряжение до безопасного уровня для Arduino.

  • Шунтирующий резистор рассчитан на «100А 750мВ», что, я уверен, означает, что ток 100А приведет к падению напряжения на шунте на 750мВ. Также должна быть линейная зависимость между падением напряжения и силой тока, т. е. 10 А = падение 75 мВ, 0,1 А = падение 750 мкВ. Следовательно, для измерения ампер вы должны измерить напряжение непосредственно от батареи, а также напряжение на шунте, и разница в милливольтах/микровольтах позволит вам рассчитать ампер.

  • Чтобы рассчитать мощность в ваттах, просто умножьте измеренный ток на вольт батареи. Чтобы вычислить ватт-часы, вы можете просто регулярно замерять и накапливать. Если вы производите выборку количества ватт один раз в секунду, вы теперь можете накапливать ватт-секунды и просто делить на 3600, чтобы получить ватт-часы.

Таким образом, я полагаю, что мне понадобятся два делителя напряжения, чтобы довести напряжения как от источника напряжения, так и от шунта до безопасного уровня. Уменьшение напряжения также будет означать, что наблюдаемое падение напряжения будет меньше — если мы предположили, что 30 В — это наше максимальное напряжение, и мы хотим разделить его до 5 В, мы получим 125 мВ для 100 А.

Вот в чем проблема. Ключевым измерением является разница в напряжении. Если я рисую, скажем, 1А, то я наблюдаю только разницу в напряжении 1,25 мВ. Если АЦП Arduino 12-битный (4096 значений), то это означает, что наилучшее разрешение, которое мы можем получить при максимальном токе 5 В, составляет 1,2 мВ на деление. Это означает, что теперь моя установка может измерять ток только с точностью примерно 1 А. Даже 16-битный АЦП не даст мне детализации 10 мА, в лучшем случае он даст 62,5 мА детализации. Я думаю, что существуют 24-битные АЦП, которые, вероятно, дадут мне желаемую степень детализации, но мне кажется, что мы тратим впустую большую часть диапазона АЦП. Измерение от 0 до 45 А с разрешением 0,01 А дает 4500 возможных значений; 4096 значений 12-разрядного АЦП, вероятно, были бы достаточно разумным компромиссом (и действительно, 45 А — это абсолютный жесткий максимум, на практике я никогда не видел, чтобы он превышал 40 А).

Я не думаю, что это можно сделать в аналоговой области, но теория того, что я хотел бы, состоит в том, чтобы измеренное напряжение от батареи было верхним пределом шкалы, а падение напряжения предполагалось 40 А. ток будет нижним пределом. Так что, если мы пойдем с уменьшением 6/1, 50 А даст падение на 62,5 мВ. Итак, если бы батарея была на 26 В, то 26 В равнялись бы 5 В, а 25,9375В будет равняться примерно 0В. Это должно двигаться вместе с напряжением, когда батарея разряжается. Следовательно, это, очевидно, невозможно, но это идея того, что я ищу. По сути, я хочу максимально увеличить разрешение, при котором я могу прочитать разницу и в двух напряжениях.

Возможно, мне не хватает какой-то фундаментальной теории, так что может ли кто-нибудь помочь мне объяснить, как это можно сделать?

микроконтроллер — Где я должен разместить амперметр для измерения тока между A0 и GND Arduino здесь

спросил

Изменено 1 год, 1 месяц назад

Просмотрено 157 раз

\$\начало группы\$

Я пытался построить в tinkercad схему, отображающую напряжение/ток на контактах A0 и GND Ardunio. Чтобы убедиться, что графики, отображаемые на экране, верны, я решил также добавить в схему вольтметр/амперметр.

Схема, которая пришла мне в голову:

имитация этой схемы – схема создана с помощью CircuitLab

Моя реализация в tinkercad показана ниже переменное напряжение):

Дважды щелкните изображение, чтобы увеличить его, если оно нечеткое.

Вроде нормально работает при построении показаний вольтметра, но Я вообще не могу заставить амперметр измерять токи. Его показания всегда выходят на ноль, при всех значениях напряжения. Насколько я вижу, он соединен последовательно, как и должно быть. В чем здесь проблема?

Принципиальная схема, созданная для вышеуказанной схемы:

Редактировать: внесены изменения, предложенные @Javier Gonzalez Cuervos

  • микроконтроллер
  • arduino
  • макет

\$\конечная группа\$

11

\$\начало группы\$

Где я должен разместить амперметр для измерения тока между A0 и GND Arduino здесь

Вы разместили его правильно, и этот ток равен нулю.

Если вместо этого вы и измеряете ток, протекающий в цепи, см. ниже:

Провода с синими крестиками имеют практически нулевой ток.

Циркуляционный ток фиксирован:

\$\frac{3}{50+501} = 5,4 мА\$

Напряжение, которое вы измеряете на A0, варьируется от 0 В до:

\$ \frac{3\times500}{500+51} = 2,72 В\$

, что является выходом делителя напряжения.

Обратите внимание: если вы измерите ток там, где он есть, tinkercad покажет это (два положения потенциометра):

Но в этом проводе тока нет:

\$\конечная группа\$

4

\$\начало группы\$

Проверьте свою схему tinkercad и сравните ее со своей схемой. Вы заметите, что на схеме у вас есть источник напряжения параллельно с вашим амперметром, и, следовательно, через него не проходит ток. Отсюда и чтение.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *