Амперметр на ардуино. Цифровой амперметр на Arduino: схема, программа и пошаговая инструкция по сборке

Как собрать цифровой амперметр на Arduino. Какие компоненты потребуются для проекта. Как правильно подключить датчик тока к Arduino. Как написать скетч для измерения тока и вывода показаний на дисплей. Какие преимущества у самодельного амперметра на Arduino.

Содержание

Принцип работы цифрового амперметра на Arduino

Цифровой амперметр на Arduino позволяет измерять силу тока в электрической цепи и отображать результаты на ЖК-дисплее. Принцип работы такого устройства основан на использовании датчика тока, который преобразует измеряемый ток в напряжение, считываемое аналоговым входом Arduino.

Основные компоненты цифрового амперметра на Arduino:

  • Плата Arduino (Uno, Nano или другая)
  • Датчик тока (например, ACS712)
  • ЖК-дисплей
  • Соединительные провода
  • Макетная плата

Датчик тока ACS712 использует эффект Холла для измерения силы тока. Когда через датчик протекает ток, он создает магнитное поле, которое преобразуется в пропорциональное напряжение на выходе датчика. Arduino считывает это напряжение через аналоговый вход и преобразует его в значение тока с помощью калибровки.


Схема подключения компонентов амперметра

Схема подключения компонентов цифрового амперметра на Arduino выглядит следующим образом:

  1. Подключите датчик тока ACS712 к Arduino:
    • VCC датчика к 5V Arduino
    • GND датчика к GND Arduino
    • OUT датчика к аналоговому входу A0 Arduino
  2. Подключите ЖК-дисплей к Arduino:
    • VSS к GND
    • VDD к 5V
    • V0 к среднему выводу потенциометра
    • RS к цифровому пину 12
    • RW к GND
    • E к цифровому пину 11
    • D4-D7 к цифровым пинам 5-2 соответственно

Для измерения тока в цепи необходимо разорвать её и пропустить измеряемый ток через датчик ACS712.

Программный код для Arduino

Вот пример скетча для Arduino, реализующего функции цифрового амперметра:

«`cpp #include LiquidCrystal lcd(12, 11, 5, 4, 3, 2); const int sensorPin = A0; float sensitivity = 0.185; // Чувствительность датчика ACS712 5A float offsetVoltage = 2.5; // Напряжение смещения void setup() { lcd.begin(16, 2); lcd.print(«Amper Meter»); delay(2000); } void loop() { int sensorValue = analogRead(sensorPin); float voltage = (sensorValue / 1024.0) * 5.0; float current = (voltage — offsetVoltage) / sensitivity; lcd.clear(); lcd.setCursor(0, 0); lcd.print(«Current:»); lcd.setCursor(0, 1); lcd.print(current, 2); lcd.print(» A»); delay(500); } «`

Этот код инициализирует ЖК-дисплей, считывает значения с датчика тока, преобразует их в амперы и выводит результат на экран. Обратите внимание на параметры sensitivity и offsetVoltage — их может потребоваться подстроить в зависимости от используемого датчика.


Калибровка амперметра

Для повышения точности измерений необходимо выполнить калибровку амперметра. Как откалибровать самодельный амперметр на Arduino?

  1. Подключите к датчику тока известную нагрузку (например, резистор с точно известным сопротивлением)
  2. Измерьте фактический ток с помощью эталонного амперметра
  3. Сравните показания вашего амперметра на Arduino с эталонным
  4. Скорректируйте параметры sensitivity и offsetVoltage в коде, чтобы показания совпадали
  5. Повторите процесс для нескольких значений тока в рабочем диапазоне

Точная калибровка позволит добиться высокой точности измерений вашего самодельного цифрового амперметра.

Расширение функциональности амперметра

Базовую версию цифрового амперметра на Arduino можно расширить дополнительными функциями. Какие возможности можно добавить?

  • Измерение максимального и минимального значения тока
  • Расчет потребляемой энергии за период времени
  • Добавление звуковой или световой сигнализации при превышении порога тока
  • Запись данных на SD-карту для последующего анализа
  • Передача показаний по Bluetooth или Wi-Fi на смартфон

Реализация этих функций потребует доработки кода и возможно добавления дополнительных компонентов, но значительно расширит возможности устройства.


Преимущества самодельного амперметра на Arduino

Создание цифрового амперметра на базе Arduino имеет ряд преимуществ по сравнению с покупкой готового устройства:

  • Низкая стоимость компонентов
  • Возможность кастомизации под конкретные задачи
  • Образовательная ценность — изучение принципов измерения тока и программирования Arduino
  • Простота модификации и добавления новых функций
  • Возможность интеграции в более сложные проекты автоматизации

Самодельный амперметр на Arduino может стать отличным инструментом для домашней мастерской или лаборатории.

Возможные проблемы и их решение

При сборке и использовании цифрового амперметра на Arduino могут возникнуть некоторые проблемы. Рассмотрим наиболее распространенные из них и способы их решения:

Неточные показания

Если показания амперметра значительно отличаются от ожидаемых, проверьте следующее:

  • Правильность подключения датчика тока
  • Калибровку устройства
  • Соответствие выбранного датчика измеряемому диапазону токов

Нестабильные показания

Если значения на дисплее сильно «прыгают», попробуйте:


  • Добавить сглаживание измерений в код (например, усреднение по нескольким измерениям)
  • Проверить качество соединений
  • Использовать экранированные провода для подключения датчика

Ошибки на дисплее

Если на ЖК-дисплее отображаются неправильные символы или он не работает:

  • Проверьте правильность подключения дисплея
  • Настройте контрастность с помощью потенциометра
  • Убедитесь, что в коде правильно инициализирован дисплей

Большинство проблем решается проверкой соединений, калибровкой и небольшими изменениями в коде.

Области применения цифрового амперметра на Arduino

Самодельный цифровой амперметр на Arduino может найти применение во многих областях:

  • Измерение энергопотребления бытовых приборов
  • Контроль тока заряда/разряда аккумуляторов
  • Мониторинг работы солнечных панелей
  • Диагностика автомобильных электросистем
  • Образовательные цели при изучении электроники
  • Контроль нагрузки в системах умного дома

Широкие возможности настройки и модификации делают этот проект универсальным инструментом для различных задач, связанных с измерением тока.



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

Схема представляет собой цифровой монитор тока и напряжения с вычислением мощности и заряда в Ампер-часах.

Устройством измерения выступает микросхема INA233 производства Texas Instruments. На сайте производителя она позиционируется как 16-битный, ультра прецизионный монитор тока/напряжения/мощности/энергии с I2C протоколом связи, поддержкой команд управления источниками питания PMBus и с независимым выходом сигнализации аварийных ситуаций.

Технические характеристики устройства:

  • Измерение тока в диапазоне: 0÷3,2А с разрешением 1мА (при RSHUNT  = 25мОм)
  • Измерение напряжения в диапазоне: 0÷36В с разрешением 1мВ
  • Расчет мощности в диапазоне: 0÷100Вт с разрешением 1мВт
  • Расчет заряда аккумулятора в диапазоне: 0÷100А⋅ч с разрешением 1мА⋅ч

Основное назначения микросхемы — следить за параметрами некоторой пользовательской шины питания постоянного тока, по запросу отдавать измеренные параметры микроконтроллеру и при выходе величин за установленные пределы подавать сигнал «Alert».

Непосредственно измеряемые параметры — это напряжение шунта (VIN+ – VIN–) и напряжение шины (VBUS) , которые не должны превышать ±81,92мВ и 36В соответственно.

Для установки правильного диапазона измерений сопротивление шунта устанавливается как RSHUNT = 81,92 (мВ) / IMAX (мА).

Например, для моего случая: RSHUNT = 81,92 (мВ) / 3200 (мА) = 25,6мОм ≈ 25мОм

При этом рассеиваемая мощность при номинальном токе составит P = U⋅I = 81,92 (мВ) ⋅ 3200 (мА) ≈ 0,262 Вт что не превышает допустимые 1Вт для корпуса SMD 2512.

Для расширения диапазона при измерении напряжения шины (VBUS) может быть использован резистивный делитель, при этом коэффициент деления необходимо будет учесть в программе микроконтроллера.

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

В моей реализации мозгом устройства выступает плата Arduino Nano c микроконтроллером ATmega328P. Человеко-машинный интерфейс — это экран OLED 2,42″ на контроллере SSD1309 и кнопка для спроса накопленных показаний мА⋅ч.

Данные на дисплей передаются по протоколу SPI, для этого кроме стандартной библиотеки SPI.h так же подключается сторонняя для Arduino IDE библиотека U8g2lib.h, она позволяет работать с большим количеством дисплеев в том числе и с контроллером SSD1309 на 128×64 точки. У нее имеется весьма обширный репозиторий на GitHub, а также огромное количество шрифтов с возможностью дополнительной установки, в том числе кириллических. Устанавливается она через менеджер библиотек Arduino IDE «U8g2 by oliver». И хотя она занимает просто огромное количество места что в памяти программ, что в динамической памяти, для меня работа с дисплеями это один из тех случаев, когда писать свою библиотеку с набором шрифтов ну совсем не целесообразно.

Модуль INA233 представлен отдельной схемой и выполняется на миниатюрной плате, расположение выводов аналогично модулю INA226, но из-за применения протокола PMBus обмен данными у них будет немного отличаться. Главное отличие — это последовательность байт при передаче данных. Если по стандарту для I2C при передачи двухбайтового числа первым принято передавать старший байт, а затем младший, то для PMBus эта последовательность заменена на обратную. Адрес устройства установлен резисторами R4, R9 в 0x40.

Упрощенный протокол инициализации и обмена данными с INA233 выглядит так:

1. Передаем значение в регистр конфигурации АЦП (MFR_ADC_CONFIG [0xD0])

Начало передачи I2C Master Output Slave In + адрес устройства I2С + пакет данных.

Состав пакета: [адрес устройства] [адрес регистра, младший байт данных, старший байт данных]

Пакет целиком (мой вариант конфигурации): [0x40][0xD0, 0xFF, 0x45]

Расшифровка:

  • Режим усреднения по 16-ти точкам;
  • Время преобразования при измерении напряжения шины 8.244мс;
  • Время преобразования при измерении напряжения шунта 8.244мс;
  • Режим работы – непрерывное измерение тока и напряжения.  

2. Передаем значение в регистр калибровки АЦП (MFR_CALIBRATION [0xD4])

Состав пакета: [адрес устройства] [адрес регистра, младший байт данных, старший байт данных]

Пакет целиком (мой вариант калибровки): [0x40][0xD4, 0x00, 0x08]

Расшифровка:

MFR_CALIBRATION = 0,00512/(Current_LSB⋅RSHUNT), где Current_LSB = 1-LSB Shunt voltage / RSHUNT = 2,5мкВ/25мОм = 0,1мА,

тогда MFR_CALIBRATION = 0,00512/(0,1мА⋅25мОм) = 2048 (0x0800).

При таком значении регистра калибровки INA233 будет отдавать значение 32767 при IMAX = 3,2767А, значит для правильного отображения тока в мА необходимо будет разделить в МК данные с АЦП на 10.

Второй путь, это запись в MFR_CALIBRATION 2048/10 ≈ 205 (0x00CD), тогда данные будут сразу в мА.

Для обоих вариантов значение регистра калибровки может быть дополнительно уточнено пользователем с использованием прецизионного измерительного оборудования.

3. Чтение в цикле значений тока и напряжения

— Напряжение, PMBus команда 0x88

— Ток, PMBus команда 0x89

Состав запроса: [адрес устройства][команда]

Состав ответа: [адрес устройства][младший байт данных, старший байт данных].

Пример: запрос [0x40][0x88]; ответ [0x40][VoltageLowByte, VoltageHighByte]

По протоколу обмена это все, «Alert» в моем варианте не задействуется, хотя аппаратно такая возможность остается. Дополнительные пояснения можно найти в моих комментариях в исходном коде.

В особенностях схемы стоит отметить возможность измерять параметры USB устройств, источник питания подключается к разъему USB1, а приемник к USB2, при этом должен быть установлен джампер P5 (в остальных случаях измерения джампер должен быть снят).

Для защиты от обратной полярности на входе VBUS установлен MOSFET Q1. Эта схема имеет ряд недостатков из-за ограничения среднестатистических P-канальных транзисторов по напряжению Gate-Source порядка -20В. Это проблема может быть преодолена установкой стабилитрона на напряжение менее 20В и резистора в цепь затвора. Тем не менее, при напряжениях менее 1В показания вольтметра с защитой могут быть искажены из-за возрастающего сопротивления канала с учетом того, что входное сопротивление АЦП по линии VBUS составляет 830кОм.

Один из вариантов решения проблемы — это отказ от этой защиты при стационарной установке в качестве монитора параметров однополярного БП.  

Схемотехника модуля INA233 выполнена в соответствии с рекомендациями производителя. Подключение к шунту выполнено по «Кельвин» соединению см. рис. с.)

По итогам тестирования разработанный вольтамперметр показал весьма приличную точность во всем диапазоне измерений. В качестве образца при этих испытаниях выступал мультиметр UNI-T UT61E. Он, конечно, не может являться эталонным измерителем т.к. не поверяется, но тем не менее крупными мазками показать результат работы может. Для любительских приложений этого достаточно с головой.

Список радиоэлементов
ОбозначениеТипНоминалКоличествоПримечаниеМагазинМой блокнот
U1Плата Arduino

Arduino Nano 3. 0

1Поиск в магазине ОтронВ блокнот
P1LCD ДисплейOLED 2.42″ 128×64 SSD13091Поиск в магазине ОтронВ блокнот
P2Плата расширения ArduinoINA233 Модуль1Поиск в магазине ОтронВ блокнот
KEY1Кнопка12/12/101Поиск в магазине ОтронВ блокнот
P3, P4Разъем2P 5мм под винт2Поиск в магазине ОтронВ блокнот
Q1MOSFET-транзистор

BSS84

1Поиск в магазине ОтронВ блокнот
USB1РазъемUSB Micro Female1Поиск в магазине ОтронВ блокнот
USB2РазъемUSB Type A Female1Поиск в магазине ОтронВ блокнот
DC1РазъемDS-2101Поиск в магазине ОтронВ блокнот
D1ДиодM7 SMD1Поиск в магазине ОтронВ блокнот
PWRПереключательDS1040-01RN1Поиск в магазине ОтронВ блокнот
DA1Линейный регулятор

LM78M05

1Поиск в магазине ОтронВ блокнот
C1, C2Конденсатор150мкФ/16В2Поиск в магазине ОтронВ блокнот
R1Резистор

1 кОм

1Поиск в магазине ОтронВ блокнот
LED1Светодиод2. 5В. зеленый1Поиск в магазине ОтронВ блокнот
Добавить все

Скачать список элементов (PDF)

Теги:
  • Arduino
  • LCD
  • Микроконтроллер
  • AVR
  • Вольтметр
  • Амперметр

Блеск С Блестками Для Xiaomi Redmi Примечание 10 5G 9 9S 8 Pro 11S 10S 11t Mi 10t 11 Lite Poco X3 NFC M3 F3 M4 Pro 5G Мягкая Крышка От Test00a, 233 руб.

DHgate>Сотовые Телефоны И Аксессуары>Принадлежности Мобильного Телефона>Оболочка/кожух/нарукавная Повязка Для Мобильного Телефона>Блеск с блестками для Xiaomi Redmi Примечание 10 5G 9 9S 8 Pro 11S 10S 11t Mi 10t 11 Lite Poco x3 NFC M3 F3 M4 Pro 5G мягкая крышка

Покупатели, купившие этот товар, также купили

Больше выбора

Бизнес информация

Топ 3 магазина

Категории магазина

  • Описание|Перевести на английский
  • Обзор компании
Пожаловаться на товар

test00a.

  • Описание|Перевести на английский
  • Обзор компании
Добавить в корзину

Особенности

  • Поддерживаемые модели:

    для ладони

  • Функция:

    блеск, проста, прозрачный

  • Тип:

    Тип кошелька

  • Материал:

    Ишангу

  • Розничная упаковка:

    не

  • Источник:

    Материковый Китай

  • Код товара:

    537803485

  • Категория:

    Оболочка/кожух/нарукавная Повязка Для Мобильного Телефона

Описание

Если вы заказываете 2 ПК, вы получите скидку 5%! ! !

100% совершенно новый, высокий качественный, идеальная посадка. бесплатная доставка

Пожалуйста, выберите правильную модель телефона для вашего телефона

Пакет: 1 телефон (не включая телефон)

Из -за вашего различного настройки монитора и освещения, он может иметь некоторую разницу в цвете от реального элемента. Но мы гарантируем, что стиль такой же, как и изображение. Спасибо и, пожалуйста, поймите

Больше описания

Спонсируемые товары, которые могут вам понравиться, больше выбора

похожие предметы

Связанные ключевые слова

Вам также может понравиться

    Больше

    Для новых пользователей

    Присоединиться бесплатно

    Смотрите персональные рекомендации , Войти

    нет , ? Выйти

    Детали политики возврата

    • Покупатели могут вернуть товар(ы) для возврата средств в течение 7 дней с момента получения товара, и покупатель оплачивает стоимость доставки возврата. Товар(ы) должны быть возвращены в том же состоянии, в котором были получены.
    • Покупатели могут вернуть товар(ы) для возврата средств, если они не соответствуют описанию или по причинам качества товара в течение 7 дней с момента получения товара. Покупатель оплачивает стоимость доставки возврата на основе состояния полученного товара.

    Внесен в список 30/04/2023

    It’s simple!

    By ordering now, you’ll earn

    Close

    Спасибо за комментарии,

    мы свяжемся с вами в ближайшее время

    Хорошо

    Add a New List

    List Name

    Please enter a new list name.

    Public ( Anyone can search for and see this list. You can also share this list with friends )

    Private (Only you can see this list)

    Note

    This list name already exists.

    0/200

    Go to my Favorite Items

    Continue Shopping

    Цифровой амперметр на базе Arduino

    Воскресенье, 27 мая 2018 г. / Ибрар Айюб

    Амперметр

    используется для измерения тока, протекающего через любую нагрузку или устройство. Здесь, в этом амперметре Arduino , мы расскажем об измерении тока с использованием закона Ома. Это будет довольно интересно, а также хорошим применением фундаментальной науки, которую мы изучали в школьные годы.

    Всем нам хорошо известен закон Ома , В нем говорится, что « разность потенциалов между двумя полюсами или клеммами проводника прямо пропорциональна количеству тока, проходящего через тот же проводник » в качестве константы пропорциональности мы используем сопротивление, поэтому здесь возникает уравнение закона Ома. .

    В = IR

    • В = напряжение на проводнике в вольтах (В).
    • I = ток, проходящий через проводник, в амперах (А).
    • R = константа пропорциональности сопротивления в Ом (Ом).

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

    I = V / R

    Итак, чтобы узнать ток, нам нужны некоторые данные:

    1. Напряжение
    2. Сопротивление

    Мы собираемся построить последовательное сопротивление вместе с устройством. Так как нам нужно найти падение напряжения на устройстве, для этого нам нужны показания напряжения до и после падения напряжения, что возможно в сопротивлении из-за отсутствия полярности.

    Как и на приведенной выше диаграмме, мы должны найти два напряжения, протекающих через резистор. Разница между напряжениями (V1-V2) на двух концах резисторов дает нам падение напряжения на резисторе (R), и мы делим падение напряжения на значение резистора, мы получаем ток (I), протекающий через устройство. Вот как мы можем вычислить текущее значение, проходящее через него, давайте приступим к практической реализации.

    Необходимые компоненты:

    • Ардуино Уно.
    • Резистор 22 Ом.
    • ЖК-дисплей 16×2.
    • светодиод.
    • Горшок 10К.
    • Макет.
    • Мультиметр.
    • Соединительные кабели.

    Принципиальная схема и соединения:

    Принципиальная схема амперметра Arduino Project выглядит следующим образом

    На принципиальной схеме показано соединение Arduino Uno с ЖК-дисплеем, резистором и светодиодом. Arduino Uno является источником питания всех остальных компонентов.

    Arduino имеет аналоговые и цифровые контакты. Цепь датчика подключена к аналоговым входам, с которых мы получаем значение напряжения. ЖК-дисплей подключается к цифровым контактам (7,8,9,10,11,12).

    ЖК-дисплей имеет 16 контактов, первые два контакта (VSS, VDD) и последние два контакта (анод, катод) подключены к земле и 5 В. Контакты сброса (RS) и включения (E) подключены к цифровым контактам 7 и 8 Arduino. Контакты данных D4-D7 подключены к цифровым контактам Arduino (9,10,11,12). Вывод V0 подключен к среднему выводу потенциометра. Красный и черный провода — это 5В и земля.

    Цепь измерения тока:

    Эта цепь амперметра состоит из резистора и светодиода в качестве нагрузки. Резистор подключен последовательно к светодиоду, через который течет ток через нагрузку, а падение напряжения определяется на резисторе. Клеммы V1, V2 подключаются к аналоговому входу Arduino.

    В АЦП Arduino, преобразующем напряжение в 10-битные числа с разрешением от 0 до 1023. Поэтому нам нужно скрыть его значением напряжения с помощью программирования. Перед этим нам нужно знать минимальное напряжение, которое может обнаружить АЦП Arduino, это значение составляет 4,88 мВ. Мы умножаем значение от АЦП на 4,88 мВ и получаем фактическое напряжение в АЦП. Узнайте больше об АЦП Arduino здесь.

    Подробнее: Цифровой амперметр на базе Arduino

    Категории: Датчик – Преобразователь – Детектор Проекты
    Теги: амперметр, детский, клеммы, напряжение

    ACS712ELC-05B 5A Модуль датчика тока Амперметр Arduino Pi Hall – Flux Workshop

    Небрендированные/универсальные