Как собрать цифровой амперметр на Arduino. Какие компоненты потребуются для проекта. Как правильно подключить датчик тока к Arduino. Как написать скетч для измерения тока и вывода показаний на дисплей. Какие преимущества у самодельного амперметра на Arduino.
Принцип работы цифрового амперметра на Arduino
Цифровой амперметр на Arduino позволяет измерять силу тока в электрической цепи и отображать результаты на ЖК-дисплее. Принцип работы такого устройства основан на использовании датчика тока, который преобразует измеряемый ток в напряжение, считываемое аналоговым входом Arduino.
Основные компоненты цифрового амперметра на Arduino:
- Плата Arduino (Uno, Nano или другая)
- Датчик тока (например, ACS712)
- ЖК-дисплей
- Соединительные провода
- Макетная плата
Датчик тока ACS712 использует эффект Холла для измерения силы тока. Когда через датчик протекает ток, он создает магнитное поле, которое преобразуется в пропорциональное напряжение на выходе датчика. Arduino считывает это напряжение через аналоговый вход и преобразует его в значение тока с помощью калибровки.
Схема подключения компонентов амперметра
Схема подключения компонентов цифрового амперметра на Arduino выглядит следующим образом:
- Подключите датчик тока ACS712 к Arduino:
- VCC датчика к 5V Arduino
- GND датчика к GND Arduino
- OUT датчика к аналоговому входу A0 Arduino
- Подключите ЖК-дисплей к Arduino:
- VSS к GND
- VDD к 5V
- V0 к среднему выводу потенциометра
- RS к цифровому пину 12
- RW к GND
- E к цифровому пину 11
- D4-D7 к цифровым пинам 5-2 соответственно
Для измерения тока в цепи необходимо разорвать её и пропустить измеряемый ток через датчик ACS712.
Программный код для Arduino
Вот пример скетча для Arduino, реализующего функции цифрового амперметра:
«`cpp #includeЭтот код инициализирует ЖК-дисплей, считывает значения с датчика тока, преобразует их в амперы и выводит результат на экран. Обратите внимание на параметры sensitivity и offsetVoltage — их может потребоваться подстроить в зависимости от используемого датчика.
Калибровка амперметра
Для повышения точности измерений необходимо выполнить калибровку амперметра. Как откалибровать самодельный амперметр на Arduino?
- Подключите к датчику тока известную нагрузку (например, резистор с точно известным сопротивлением)
- Измерьте фактический ток с помощью эталонного амперметра
- Сравните показания вашего амперметра на Arduino с эталонным
- Скорректируйте параметры sensitivity и offsetVoltage в коде, чтобы показания совпадали
- Повторите процесс для нескольких значений тока в рабочем диапазоне
Точная калибровка позволит добиться высокой точности измерений вашего самодельного цифрового амперметра.
Расширение функциональности амперметра
Базовую версию цифрового амперметра на 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 | Поиск в магазине Отрон | В блокнот | |
P1 | LCD Дисплей | OLED 2.42″ 128×64 SSD1309 | 1 | Поиск в магазине Отрон | В блокнот | |
P2 | Плата расширения Arduino | INA233 Модуль | 1 | Поиск в магазине Отрон | В блокнот | |
KEY1 | Кнопка | 12/12/10 | 1 | Поиск в магазине Отрон | В блокнот | |
P3, P4 | Разъем | 2P 5мм под винт | 2 | Поиск в магазине Отрон | В блокнот | |
Q1 | MOSFET-транзистор | BSS84 | 1 | Поиск в магазине Отрон | В блокнот | |
USB1 | Разъем | USB Micro Female | 1 | Поиск в магазине Отрон | В блокнот | |
USB2 | Разъем | USB Type A Female | 1 | Поиск в магазине Отрон | В блокнот | |
DC1 | Разъем | DS-210 | 1 | Поиск в магазине Отрон | В блокнот | |
D1 | Диод | M7 SMD | 1 | Поиск в магазине Отрон | В блокнот | |
PWR | Переключатель | DS1040-01RN | 1 | Поиск в магазине Отрон | В блокнот | |
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 NamePlease 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/200Go to my Favorite Items
Continue Shopping
Цифровой амперметр на базе Arduino—
Воскресенье, 27 мая 2018 г. / Ибрар Айюб
Амперметриспользуется для измерения тока, протекающего через любую нагрузку или устройство. Здесь, в этом амперметре Arduino , мы расскажем об измерении тока с использованием закона Ома. Это будет довольно интересно, а также хорошим применением фундаментальной науки, которую мы изучали в школьные годы.
Всем нам хорошо известен закон Ома , В нем говорится, что « разность потенциалов между двумя полюсами или клеммами проводника прямо пропорциональна количеству тока, проходящего через тот же проводник » в качестве константы пропорциональности мы используем сопротивление, поэтому здесь возникает уравнение закона Ома. .
В = IR
- В = напряжение на проводнике в вольтах (В).
- I = ток, проходящий через проводник, в амперах (А).
- R = константа пропорциональности сопротивления в Ом (Ом).
Чтобы найти ток, проходящий через устройство, мы просто переформулируем уравнение, как показано ниже, или мы можем вычислить его с помощью калькулятора закона Ома.
I = V / R
Итак, чтобы узнать ток, нам нужны некоторые данные:
- Напряжение
- Сопротивление
Мы собираемся построить последовательное сопротивление вместе с устройством. Так как нам нужно найти падение напряжения на устройстве, для этого нам нужны показания напряжения до и после падения напряжения, что возможно в сопротивлении из-за отсутствия полярности.
Как и на приведенной выше диаграмме, мы должны найти два напряжения, протекающих через резистор. Разница между напряжениями (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
Небрендированные/универсальные
-
Цена за единицу за
- Флюс Артикул:
BDAA100004 - Длина (мм):
31 - Ширина (мм):
13 - Высота (мм):
15 - Марка:
безымянный/универсальный - Основной цвет:
Синий - Страна производитель:
Китай - MPN:
ACS712ELC-05B - UPC:
Не применяется - Минимальная рабочая температура:
-40°C - Максимальная рабочая температура:
85°C - Количество позиций:
1 - Шаг контактов:
2,54 мм - MPN набора микросхем:
ACS712ELC-05B - Свойство датчика:
Ток - Минимум обнаружения поля:
- Максимальное обнаружение поля:
- Минимум обнаружения угловой скорости:
- Максимальное определение угловой скорости:
- Минимум обнаружения ускорения:
- Обнаружение ускорения Максимум:
- Минимум обнаружения расстояния:
- Максимальная дальность обнаружения:
- Пиковое рабочее расстояние:
- Минимум обнаружения относительной влажности:
- Максимальное определение относительной влажности:
- Минимум обнаружения температуры:
- Максимальная температура обнаружения:
- Минимум обнаружения интенсивности света:
- Максимальное определение интенсивности света:
- Минимум обнаружения длины волны:
- Максимальная длина волны:
- Минимум обнаружения напряжения:
- Обнаружение напряжения Максимум:
- Минимум обнаружения тока:
-5A - Обнаружение тока Максимум:
5А - Минимум обнаружения частоты:
- Максимальная частота обнаружения:
- Минимум определения веса:
- Максимальное определение веса:
Этот модуль идеально подходит для точного измерения силы тока в диапазоне от -5 до +5 ампер.