Как создать точный цифровой амперметр на базе Arduino Uno. Какие компоненты потребуются для сборки устройства. Как правильно настроить и откалибровать амперметр. Где можно применять самодельный амперметр на Arduino.
Принцип работы цифрового амперметра на Arduino
Цифровой амперметр на базе Arduino представляет собой устройство для измерения силы тока в электрической цепи. Его основными компонентами являются:
- Плата Arduino Uno
- Датчик тока (например, ACS712 или INA219)
- LCD-дисплей для отображения показаний
- Резисторы и провода для подключения
Как работает такой амперметр? Датчик тока измеряет падение напряжения на шунтирующем резисторе, которое пропорционально протекающему току. Arduino считывает это значение через аналоговый вход, преобразует его в цифровой сигнал и вычисляет силу тока. Результат выводится на дисплей.
Схема подключения компонентов амперметра
Чтобы собрать цифровой амперметр на Arduino, необходимо правильно подключить все компоненты. Типичная схема выглядит следующим образом:
- Датчик тока подключается к аналоговому входу A0 Arduino
- LCD-дисплей подключается к цифровым пинам 2-7
- Питание датчика и дисплея берется с 5V и GND Arduino
- Шунтирующий резистор (0.1 Ом) включается в разрыв измеряемой цепи
Важно соблюдать полярность при подключении и использовать резисторы нужного номинала. Это обеспечит корректную работу и точность измерений амперметра.
Программный код для Arduino-амперметра
Для работы цифрового амперметра на Arduino необходимо загрузить в микроконтроллер соответствующую программу. Базовый код может выглядеть так:
«`cpp #includeКалибровка и настройка точности измерений
Для обеспечения высокой точности измерений цифровой амперметр на Arduino необходимо правильно откалибровать. Как это сделать?
- Измерьте фактический ток в цепи эталонным амперметром
- Сравните показания самодельного и эталонного приборов
- Скорректируйте коэффициент чувствительности в коде
- Повторяйте процесс, пока не добьетесь минимальной погрешности
Важно проводить калибровку при разных значениях тока для обеспечения точности во всем диапазоне измерений. Регулярная перекалибровка поможет поддерживать высокую точность амперметра.
Расширение функциональности амперметра
Базовая версия цифрового амперметра на Arduino может быть дополнена различными полезными функциями. Какие возможности можно добавить?
- Измерение напряжения (превращение в мультиметр)
- Запись максимального значения тока
- Звуковая сигнализация при превышении заданного порога
- Передача данных на компьютер через Serial-порт
- Построение графиков изменения тока во времени
Расширение функциональности потребует доработки схемы и программного кода, но значительно повысит практическую ценность устройства.
Практическое применение Arduino-амперметра
Самодельный цифровой амперметр на базе Arduino может найти широкое применение в различных областях. Где можно использовать такое устройство?
- Диагностика электрооборудования
- Измерение энергопотребления бытовых приборов
- Контроль заряда и разряда аккумуляторов
- Образовательные цели при изучении электротехники
- Мониторинг солнечных панелей и ветрогенераторов
Благодаря низкой стоимости и возможности кастомизации, Arduino-амперметр становится удобным инструментом для любителей электроники и профессионалов.
Преимущества и недостатки самодельного амперметра
Цифровой амперметр на Arduino имеет ряд преимуществ и недостатков по сравнению с готовыми коммерческими решениями. Каковы основные плюсы и минусы?
Преимущества:
- Низкая стоимость изготовления
- Возможность модификации под конкретные задачи
- Образовательная ценность в процессе сборки
- Расширяемость функционала
Недостатки:
- Меньшая точность по сравнению с профессиональными приборами
- Необходимость калибровки
- Ограниченный диапазон измерений
- Отсутствие сертификации для коммерческого использования
Несмотря на недостатки, самодельный амперметр на Arduino остается отличным выбором для хобби, обучения и некоммерческого использования.
Альтернативные датчики тока для Arduino-амперметра
Помимо популярного ACS712, существуют и другие датчики тока, которые можно использовать в цифровом амперметре на Arduino. Какие альтернативы доступны?
- INA219 — высокоточный датчик с I2C интерфейсом
- MAX471 — специализированный датчик для измерения больших токов
- ACS758 — датчик с улучшенной линейностью и температурной стабильностью
- CSLA2CD — бесконтактный датчик на эффекте Холла
Выбор датчика зависит от требуемого диапазона измерений, желаемой точности и специфики применения амперметра. Каждый тип имеет свои преимущества и особенности использования.
Схема представляет собой цифровой монитор тока и напряжения с вычислением мощности и заряда в Ампер-часах.
Устройством измерения выступает микросхема 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. Он, конечно, не может являться эталонным измерителем т.к. не поверяется, но тем не менее крупными мазками показать результат работы может. Для любительских приложений этого достаточно с головой.
Датчик: амперметр переменного тока; 3,3÷5,5ВDC; ARDUINO
Интерфейс | аналоговый |
Информация | а лишь его компонентом Товар не являтся готовым устройством |
Кол-во каналов | 1 |
Назначение | ARDUINO |
Напряжение питания | 3. 3…5.5В DC |
Обозначение производителя | SEN0211 |
Порог срабатывания | 0…20А AC |
Производитель | DFROBOT |
Серия | Gravity |
Тип датчика | амперметр переменного тока |
Состав набора | модуль провода |
Масса брутто | 0. 08 kg |
Срок поставки | 10-15 рабочих дней |
Условия поставки уточняйте: [email protected]
Количество:
Контакты
- (495) 544-73-50, (925) 502-42-73
- [email protected]
Проекты
Конфиденциальность и файлы cookie
Файлы cookie — это крошечные файлы данных, которые сохраняются в вашем веб-браузере при посещении веб-сайта. На www.electromaker.io мы используем файлы cookie, чтобы персонализировать ваш опыт и помочь нам выявлять и устранять ошибки.
Использование файлов cookie и аналогичных технологий в течение некоторого времени было обычным явлением, и файлы cookie, в частности, важны для предоставления многих онлайн-услуг. Таким образом, использование таких технологий не запрещено Правилами, но они требуют, чтобы людям сообщали о файлах cookie и предоставляли выбор в отношении того, какие из их действий в Интернете отслеживаются таким образом. (Управление уполномоченных по информации)
Наша политика в отношении файлов cookie
Чтобы в полной мере использовать www.electromaker.io, пользоваться персонализированными функциями и гарантировать, что веб-сайты работают в полную силу, ваш компьютер, планшет или мобильный телефон должны принимать файлы cookie.
Наши файлы cookie не хранят конфиденциальную информацию, такую как ваше имя, адрес или платежные реквизиты: они просто хранят информацию о том, как вы используете наш сайт, чтобы мы могли улучшить ваш опыт и устранить любые ошибки.
Если вы предпочитаете ограничить, заблокировать или удалить файлы cookie с www.electromaker.io или любого другого веб-сайта, вы можете сделать это с помощью своего браузера. Каждый браузер уникален, поэтому проверьте меню «Справка» вашего конкретного браузера (или руководство вашего мобильного телефона), чтобы узнать, как изменить настройки файлов cookie.
Вот список основных файлов cookie, которые мы используем, и для чего мы их используем:
- Электромейкер — сеанс входа в систему
- Google Analytics – Аналитика
- Твиттер – Лента Твиттера
Управление файлами cookie
Каждый веб-браузер обрабатывает файлы cookie по-своему, следуйте инструкциям для выбранного вами браузера:
- Chrome
- Фаерфокс
- ИЭ
- Опера
- Сафари
Применить фильтр
Категория
Сложность
Платформа
Категория
Сложность
Платформа
Загрузите свои проекты
Робот следящего за линией — Король лабиринта
Автоматизированная доставка предметов по кратчайшему доступному пути — полезно в промышленности для самовывоза — не требует ROS.
Кубок НХП 2023
Проект по конструированию и изготовлению автомобиля для NXP CUP 2023, квалификационный этап в Брно. Он использует плату NXP fmuk66v3 для управления, Pixycam v2.1 для обнаружения гоночной трассы и ультразвуковой датчик для обнаружения препятствий.
Светодиодный фейдер с таймером 555 Ic
В этом уроке я покажу вам, ребята, как создать настоящий эффект выцветания светодиодов с помощью микросхемы таймера 555.
Робот следящего за линией — Король лабиринта
Автоматизированная доставка предметов по кратчайшему доступному пути — полезно в промышленности для самовывоза — не требует ROS.
RGB-светодиод Xbox 2.0
Обновление моего предыдущего проекта Xbox RGB LED, а также документирование некоторых других модификаций, которые я внес в свой Xbox, которому уже более 20 лет!
Чернильный рисунок
Забавный проект приложения для рисования для Raspberry Pi и Inky pHAT с использованием Python Flask и React. Сейчас это самые основы, и забавный проект, который можно добавить, например. добавление кистей, небольшое обновление пользовательского интерфейса, адаптация для большего количества дисплеев и т. д.!
Arcar1: открывая будущее автономных гонок
Встречайте ARCar1, современный автономный автомобиль, сочетающий в себе невероятную скорость и непревзойденную точность. Благодаря передовому искусственному интеллекту, инновационным датчикам и элегантной аэродинамике этот автомобиль превосходит конкурентов и переопределяет границы Кубка NXP. Приготовьтесь удивиться ARCar1!
Автоматические жалюзи своими руками
Я разработал и изготовил свои собственные «умные» жалюзи, чтобы обеспечить максимальное уединение и максимальное проникновение света.
Chatgpt не художник
Вот мои 50 центов за использование ChatGPT с Arduino и его недостатки для электронного прототипирования
Щит Хэллоуина
В ночь перед вечеринкой в честь Хэллоуина я подумал — а не было бы здорово добавить к моему костюму элемент, реагирующий на звук?
Диспенсер для диско-шаров
Слишком много раз в моем доме устраивалась спонтанная дискотека, но без дискотеки это не дискотека, пора меняться I
Управление жестами Bluetooth-динамик Arduino
Колонки Bluetoothв наши дни являются наиболее широко используемыми колонками. Их компактный размер в сочетании с портативностью и длительным временем автономной работы сделали их центром притяжения
Esp8266 Плата разработки Интернета вещей Метеостанция
В этом уроке вы узнаете, как сделать простую метеостанцию, используя макетную плату ESP8266 IoT с датчиком DHT11 и OLED-дисплеем.
Проекты
Конфиденциальность и файлы cookie
Файлы cookie — это крошечные файлы данных, которые сохраняются в вашем веб-браузере при посещении веб-сайта. На www.electromaker.io мы используем файлы cookie, чтобы персонализировать ваш опыт и помочь нам выявлять и устранять ошибки.
Использование файлов cookie и аналогичных технологий в течение некоторого времени было обычным явлением, и файлы cookie, в частности, важны для предоставления многих онлайн-услуг. Таким образом, использование таких технологий не запрещено Правилами, но они требуют, чтобы людям сообщали о файлах cookie и предоставляли выбор в отношении того, какие из их действий в Интернете отслеживаются таким образом. (Управление уполномоченных по информации)
Наша политика в отношении файлов cookie
Чтобы в полной мере использовать www.electromaker.io, пользоваться персонализированными функциями и гарантировать, что веб-сайты работают в полную силу, ваш компьютер, планшет или мобильный телефон должны принимать файлы cookie.
Наши файлы cookie не хранят конфиденциальную информацию, такую как ваше имя, адрес или платежные реквизиты: они просто хранят информацию о том, как вы используете наш сайт, чтобы мы могли улучшить ваш опыт и устранить любые ошибки.
Если вы предпочитаете ограничить, заблокировать или удалить файлы cookie с www.electromaker.io или любого другого веб-сайта, вы можете сделать это с помощью своего браузера. Каждый браузер уникален, поэтому проверьте меню «Справка» вашего конкретного браузера (или руководство вашего мобильного телефона), чтобы узнать, как изменить настройки файлов cookie.
Вот список основных файлов cookie, которые мы используем, и для чего мы их используем:
- Электромейкер — сеанс входа в систему
- Google Analytics – Аналитика
- Твиттер – Лента Твиттера
Управление файлами cookie
Каждый веб-браузер обрабатывает файлы cookie по-своему, следуйте инструкциям для выбранного вами браузера:
- Chrome
- Фаерфокс
- ИЭ
- Опера
- Сафари
Применить фильтр
Категория
Сложность
Платформа
Категория
Сложность
Платформа
Загрузите свои проекты
Робот следящего за линией — Король лабиринта
Автоматизированная доставка предметов по кратчайшему доступному пути — полезно в промышленности для самовывоза — не требует ROS.
Кубок НХП 2023
Проект по конструированию и изготовлению автомобиля для NXP CUP 2023, квалификационный этап в Брно. Он использует плату NXP fmuk66v3 для управления, Pixycam v2.1 для обнаружения гоночной трассы и ультразвуковой датчик для обнаружения препятствий.
Светодиодный фейдер с таймером 555 Ic
В этом уроке я покажу вам, ребята, как создать настоящий эффект выцветания светодиодов с помощью микросхемы таймера 555.
Робот следящего за линией — Король лабиринта
Автоматизированная доставка предметов по кратчайшему доступному пути — полезно в промышленности для самовывоза — не требует ROS.
RGB-светодиод Xbox 2.0
Обновление моего предыдущего проекта Xbox RGB LED, а также документирование некоторых других модификаций, которые я внес в свой Xbox, которому уже более 20 лет!
Чернильный рисунок
Забавный проект приложения для рисования для Raspberry Pi и Inky pHAT с использованием Python Flask и React.