Датчик тока с беспроводным каналом связи на базе ARDUINO
Датчик тока с беспроводным каналом связи на базе ARDUINO- Главная
- Статьи
- Датчик тока с беспроводным каналом связи на базе ARDUINO
Баймухаметов З. Р.
Абдуллов А.А.
Потанин А.А.
Арсланов А.Д.
Ключевые слова: датчик тока, беспроводной модуль, АТ-команды, Arduino, Bluetooth
Достоверное измерение токов и напряжений в энергетическом и управляющем оборудовании является важным аспектом обеспечения высокой надежности и безопасности промышленных систем и электронных приборов. Специализированные датчики также применяются для определения разбаланса токов, мониторинга и диагностики цепей, запуска схем защиты, обнаружения отказов электрооборудования и аварийных состояний различных типов нагрузки.
Литература:
1. Григорьев М., Вавилова Г. Исследование методов измерения токов с повышенной точностью. — М., 2015. — 354 c.
2. Блум Д. Изучаем Arduino. Инструменты и методы технического волшебства. — СПб.: БХВПетербург, 2015. — 336 с.
3. Описание микроконтроллера Arduino Uno [Электронный ресурс]. URL: http://arduino. ru/Hardware/ArduinoBoardUno (дата обращения: 27.02.2021).
При работе с электрооборудованием и электрическими сетями часто возникает необходимость в измерении силы тока и нередко бывают ситуации, когда нет возможности провести измерения контактным способом. Существуют два основных метода бесконтактного измерения тока, первый — преобразование тока, протекающего в проводнике, с помощью датчика Холла, названного в честь первооткрывателя эффекта возникновения поперечного электрического поля в полупроводнике или проводнике, помещенном в магнитное поле, и второй — с использованием трансформатора тока. Основа такого датчика — трансформатор, по первичной обмотке которого протекает ток нагрузки, а во вторичной — наводится напряжение, пропорциональное этому току.
Целью исследования является получение численных значений тока бесконтактным методом с помощью микроконтроллера и датчика тока по беспроводному каналу связи.
Существует целый класс устройств под названием токоизмерительные клещи, которые позволяют измерить значение тока без разрыва цепи и без электрического контакта с ней [1]. Большинство из них достаточно дорогие и малофункциональные, заведомо уступают по цене и по гибкости настройки связки, скажем, датчику тока, микроконтроллеру и беспроводному модулю. В качестве датчика можно взять недорогой TA12–100, в качестве головного устройства, например, Arduino Uno, а для передачи полученных данных по беспроводной сети будем использовать модуль HC-06.
Принцип работы датчика TA12–100 заключается в следующем. Модуль измеряет напряжение, падающее на транзисторе в 200 Ом, который находится на выходе трансформатора. Датчик TA12–100 преобразует напряжение на резисторе в аналоговый сигнал, применяя закон Ома. Коэффициент трансформатора составляет 1000:1 и, чтобы получить значение тока, следует полученные данные умножить на 1000. Данный датчик используется только для измерения переменного тока и является аналоговым. Для подключения к плате потребуется два провода — один провод подключается к заземлению, а второй — к аналоговому входу. Провод, где необходимо измерить силу тока, должен проходить через катушку модуля (рис. 1).
Для Цитирования:
Баймухаметов З. Р., Абдуллов А.А., Потанин А.А., Арсланов А.Д., Датчик тока с беспроводным каналом связи на базе ARDUINO. КИП и автоматика: обслуживание и ремонт. 2021;11.
Полная версия статьи доступна подписчикам журнала
Для Цитирования:
Баймухаметов З. Р., Абдуллов А.А., Потанин А.А., Арсланов А.Д., Датчик тока с беспроводным каналом связи на базе ARDUINO. КИП и автоматика: обслуживание и ремонт. 2021;11.
ФИО
Ваш e-mail
Ваш телефон
Нажимая кнопку «Получить доступ» вы даёте своё согласие обработку своих персональных данных
Ваше имя
Ваша фамилия
Ваш телефон
Придумайте пароль
Пароль еще раз
Запомнить меня
Информируйте меня обо всех новостях и спецпредложениях по почте
На указанный Вами номер телефона был отправлен код подтверждения.![](/800/600/http/images.squarespace-cdn.com/content/v1/59b037304c0dbfb092fbe894/1547521690073-HTW28PX2UML8WJ2QYUWD/thermistor_wiring_no_dht22_fire_source.png?format=500w)
Повторно запросить код можно будет через секунд.
Код подтверждения
На указанный Вами номер телефона был отправлен код подтверждения.Повторно запросить код можно будет через секунд.
Код подтверждения
На указанный Вами номер телефона был отправлен код подтверждения.Повторно запросить код можно будет через секунд.
Код подтверждения
Логин
Пароль
Ваше имя:
Ваш e-mail:
Ваш телефон:
Сообщение:
На сайте используется защита от спама reCAPTCHA и применяются Условия использования и Конфиденциальность Google
Использовать это устройство?
Одновременно использовать один аккаунт разрешено только с одного устройства.
Повторно запросить код можно будет через секунд.
Код подтверждения
×
Мы перевели вас на Русскую версию сайта
You have been redirected to the Russian version
Мы используем куки
Датчик тока MAX471, подключение к Arduino
Модуль датчика GY-471 на микросхеме MAX471, аналоговый датчик тока, позволяет измерять ток до 3А при напряжении от 3 до 36 В .
Особенности модуля:
- Аналоговый датчик тока, усилитель сигнала встроенного шунта.
- Изменение тока на положительной шине.
- Возможно параллельное подключение нескольких датчиков для увеличения измеряемого тока
- Напряжение питания: 3 В — 36 В (Датчик не измеряет напряжение, питается от измеряемой шины)
- Максимальный ток: 3 А.
- Разрешение на аналоговом выходе: 1А/1В
Распиновка модуля:
- RS- — К выходу подключается нагрузка.
- RS+ — К выходу подключается источник питания.
- SIGN — Логический выход с открытым коллектором, состояние выхода указывает в какую сторону течет ток, низкий уровень означает что ток течет от RS- к RS+.
- OUT — Аналоговый выход, на выходе формируется напряжение в зависимости от величины протираемого тока, 1 вольт на выходе соответствует 1 амперу через шунт.
- GND — Масса.
Подключение к Arduino:
Для модуля GY-471 Похожий модуль с делителем напряжения и возможностью измерения напряжения.Датчик подключается на любой аналоговый вход ардуино.
Софт:
Для модуля не требуется сторонних библиотек, принцип работы аналогичен измерению напряжения на аналоговом входе. Можно воспользоваться стандартным примером, который не дает точных измерений.
/* ReadAnalogVoltage Reads an analog input on pin 0, converts it to voltage, and prints the result to the Serial Monitor. Graphical representation is available using Serial Plotter (Tools > Serial Plotter menu). Attach the center pin of a potentiometer to pin A0, and the outside pins to +5V and ground. This example code is in the public domain. http://www.arduino.cc/en/Tutorial/ReadAnalogVoltage */ // the setup routine runs once when you press reset: void setup() { // initialize serial communication at 9600 bits per second: Serial.begin(9600); } // the loop routine runs over and over again forever: void loop() { // read the input on analog pin 0: int sensorValue = analogRead(A0); // Convert the analog reading (which goes from 0 - 1023) to a voltage (0 - 5V): float current = sensorValue * (5.0 / 1024.0); // print out the value you read: Serial.println(current); }
Проблема в том, что в качестве источника опорного напряжения для АЦП используется напряжение питания, которое практически не когда не является стабильным и равным 5,0 вольт.
void setup() { Serial.begin(9600); analogReference(INTERNAL); } void loop() { float current = (analogRead(A0) * 1.1) / 1024.0; Serial.println(current); }
Если это не подходит, можно воспользоваться внешним источником опорного, например MAX6125 на 2,5 В.
Видео
Узнать | OpenEnergyMonitor
Edit
Датчики ТТ — Взаимодействие с Arduino
Чтобы подключить датчик ТТ к Arduino, выходной сигнал от датчика ТТ должен быть преобразован, чтобы он соответствовал входным требованиям аналоговых входов Arduino.
Примечание: На этой странице приведен пример платы Arduino, работающей от 5 В, и платы EmonTx, работающей от 3,3 В. Убедитесь, что вы используете правильное напряжение питания и напряжение смещения в своих расчетах, которые соответствуют вашей настройке.
Этого можно добиться с помощью следующей схемы, состоящей из двух основных частей:
-
Датчик ТТ и нагрузочный резистор
- Делитель напряжения смещения ( R1 и R2 )
Расчет подходящего размера нагрузочного резистора
Если датчик ТТ представляет собой тип «токового выхода», такой как YHDC SCT-013-000 , сигнал тока необходимо преобразовать в сигнал напряжения с помощью нагрузочного резистора . Если это ТТ с выходом напряжения, вы можете пропустить этот шаг и исключить нагрузочный резистор, так как нагрузочный резистор встроен в ТТ.
а) Выберите диапазон тока, который вы хотите измерить
ТТ YHDC SCT-013-000 имеет диапазон тока от 0 до 100 А. В этом примере давайте выберем 100 А в качестве максимального тока.
b) Преобразуйте максимальный среднеквадратический ток в пиковый, умножив его на √2.
Первичный пиковый ток = среднеквадратичное значение тока × √2 = 100 А × 1,414 = 141,4 А
c) Разделите пиковый ток на число витков трансформатора тока, чтобы получить пиковый ток во вторичной обмотке.
ТТ YHDC SCT-013-000 имеет 2000 витков, поэтому вторичный пиковый ток будет равен:
Вторичный пиковый ток = Первичный пиковый ток / №. витков = 141,4 А / 2000 = 0,0707 А
d) Для максимального разрешения измерения напряжение на нагрузочном резисторе при пиковом токе должно быть равно половине аналогового опорного напряжения Arduino. (AREF / 2)
Если вы используете Arduino, работающую от 5 В: AREF / 2 будет 2,5 В. Таким образом, идеальное сопротивление нагрузки будет:
Идеальное сопротивление нагрузки = (AREF/2) / Вторичный пиковый ток = 2,5 В / 0,0707 А = 35,4 Ом
35 Ом не является общепринятым номиналом резистора. Ближайшие значения по обе стороны от 35 Ом составляют 39 и 33 Ом. Всегда выбирайте меньшее значение, иначе максимальный ток нагрузки создаст напряжение выше, чем AREF. Мы рекомендуем нагрузку 33 Ом ±1%. В некоторых случаях использование двух последовательных резисторов будет ближе к идеальному значению нагрузки. Чем дальше от идеального значение, тем ниже будет точность.
Вот те же расчеты, что и выше, в более компактной форме:
Нагрузочный резистор (Ом) = (AREF * CT TURNS) / (2√2 * макс. первичный ток)
Расчет нагрузочного резистора для оборудования мониторинга энергии OpenEnergyMonitor.
emonTx V3 (см. руководство)
В emonTx V3 используется стабилизатор на 3,3 В, поэтому он V CC и, следовательно, AREF всегда будет 3,3 В независимо от напряжения батареи. Стандартный emonTx V3 использует нагрузочные резисторы 22 Ом для CT 1, 2 и 3 и резистор 120 Ом для CT4, канала высокой чувствительности. См. техническую вики-страницу emonTx V3 по адресу:
https://wiki.openenergymonitor.org/index.php?title=EmonTx_V3#Burden_Resistor_Calculations.
emonPi (см. руководство)
EmonPi имеет два канала ТТ, оба с нагрузочными резисторами 22 Ом.
emonTx V2
Если вы используете emonTx V2 с питанием от батареи, AREF будет начинаться с 3,3 В и медленно уменьшаться по мере падения напряжения батареи до 2,7 В. Таким образом, идеальное сопротивление нагрузки для минимального напряжения будет:
Идеальное сопротивление нагрузки = (AREF/2) / Вторичный пиковый ток = 1,35 В / 0,0707 А = 19,1 Ом
19 Ом не является общепринятым значением. У нас есть выбор 18 или 22 Ом. Мы рекомендуем использовать нагрузку 18 Ом ±1%.
Инструмент для расчета размера нагрузочного резистора, витков трансформатора тока и максимальных Irms (спасибо Тайлеру Адкиссону за его создание и распространение).
( Примечание : этот инструмент не учитывает максимальную выходную мощность ТТ. При превышении максимальной выходной мощности возникают насыщение и искажения. Он также не принимает во внимание допуски компонентов, поэтому значение нагрузочного резистора следует уменьшить на несколько (~5) процентов допускают некоторый «запас». Дополнительную информацию о допусках компонентов можно найти по адресу: Допуски компонентов ACAC.)
Добавление смещения постоянного тока
Если вы соедините один из проводов трансформатора тока с землей и измерите напряжение второго провода относительно земли, напряжение изменится от положительного до отрицательного относительно земли. Однако для аналоговых входов Arduino требуется положительное напряжение . Подключив провод ТТ, который мы подключили к земле, вместо этого к источнику с половиной напряжения питания, выходное напряжение ТТ теперь будет колебаться выше и ниже 2,5 В, таким образом, оставаясь положительным.
Резисторы R1 и R2 на принципиальной схеме выше представляют собой делитель напряжения, обеспечивающий источник 2,5 В (1,65 В для emonTx). Конденсатор С1 имеет низкую реактивное сопротивление — несколько сотен Ом — и обеспечивает путь для переменного тока в обход резистора. Подойдет значение 10 мкФ.
Выбор подходящего номинала резисторов R1 и R2
Более высокое сопротивление снижает потребление энергии в состоянии покоя.
Мы используем резисторы 10 кОм для мониторов с питанием от сети. В emonTx используются резисторы 470 кОм, чтобы свести энергопотребление к минимуму, так как он рассчитан на работу от батарей в течение нескольких месяцев.
Эскиз Arduino
Чтобы использовать приведенную выше схему для измерения среднеквадратичного значения тока с предполагаемым фиксированным среднеквадратичным значением напряжения (например, 240 В) для указания приблизительной кажущейся мощности, используйте этот эскиз Arduino: Эскиз Arduino — только ток
В этой главе:
Измерение тока | Arduino-FOC
Arduino SimpleFOClibrary имеет своей целью поддержку реализации FOC с (как минимум) тремя наиболее стандартными типами измерения тока:
- Датчик тока в линии
- Измерение тока на стороне низкого напряжения
- Измерение тока на стороне высокого напряжения — Пока не поддерживается определение бокового тока на платах ESP32, stm32 (семейства f1, f4 и g4 — один двигатель), samd21 (один двигатель) и на платах B_G431B_ESC1 на базе stm32 (один двигатель).
Каждый из текущих классов датчиков будет реализовывать все необходимые функции для простой и надежной реализации алгоритма FOC:
- Аппаратная конфигурация
- АДК резолютон и частота
- Автоматическое смещение ноль. векторная величина
- Расчет токов d и q ВОК
Каждый из реализованных классов может использоваться как автономные классы, и их можно использовать для считывания текущих значений на выходах драйвера BLDC за пределами библиотеки Arduino SimpleFOClibrary , см. примеры кодов в
утилиты > current_sense_test
. Чтобы алгоритм FOC работал, классы измерения тока связаны с классомBLDCMotor
, который использует драйвер для считывания токов FOC.🎯 Цели реализации
Текущий код sense будет написан таким образом, чтобы поддерживать как можно больше различных драйверов и быть полностью взаимозаменяемым. Из-за очень специфичных аппаратных реализаций сбора данных АЦП для различных архитектур микроконтроллеров и из-за очень разных требований к синхронизации драйвера/АЦП для различных подходов к измерению тока эта задача, вероятно, является одной из самых сложных задач для библиотеки SimpleFOC.
Поэтому работа будет выполняться итерациями, и каждый релиз будет все лучше и лучше поддерживаться. Пожалуйста, следите за github и проверяйте выпуски .
Также не забудьте подписаться на наш форум сообщества, где ведется много дискуссий о текущем зондировании и его применении!
. Осуществление тока на какую архитектуру MCU
MCU 2-BIT. ❌ Arduino DUE ✔️ ❌ ❌ stm32 (in general) ✔️ ❌ ❌ stm32f1 family ✔️ ✔️ (one motor) ❌ stm32f4 family ✔️ ✔️ ( one motor) ❌ stm32g4 family ✔️ ✔️ (one motor) ❌ stm32 B_G431B_ESC1 ❌ ✔️ (one motor) ❌ esp32/esp32s3 ✔️ ✔️ ❌ esp32s2/esp32c3 ✔️ ❌ ❌ esp8266 ❌ ❌ ❌ samd21 ✔️ ✔️ (one motor) ❌ samd51 ✔️ ❌ ❌ teensy ✔️ ❌ ❌ Raspberry Pi Pico ✔️ ❌ ❌ Portenta H7 ✔️ ❌ ❌ nRF52 ✔️ ❌ ❌ Копаем глубже
Для получения дополнительных теоретических объяснений и реализации исходного кода для текущего измерения и его интеграции в FOC и движения, ознакомьтесь с разделом углубления копания.
- Аппаратная конфигурация