Acs712 arduino: Датчик тока ACS712: описание, подключение, схема, характеристики

Содержание

Модуль датчика тока ACS712 30A

Модуль датчика тока RKP-ACS712-30A для измерения постоянного и переменного тока до 30 А.

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

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

  • Датчика тока ACS712 интегрирован в малогабаритный корпус SOIC8, имеет гальваническую развязку с напряжением пробоя 2,1 кВ (RMS).
  • Arduino датчик RKP-ACS712-30A питается от постоянного напряжения 5 В и потребляет совсем небольшой ток 11 мА.
  • Модуль способен выдерживать большие перегрузки по измеряемому току.
  • Датчик тока ACS712 прост в подключении и надежен в эксплуатации.
  • Модуль RKP-ACS712-30A имеет на плате фильтрующий конденсатор, что позволяет уменьшить его шумовые характеристики и улучшить точность измерения.

Посмотреть/скачать DataSheet микросхемы ACS712 (формат PDF размер 1 МБ)

Характеристики
Максимальный измеряемый ток: 30 А
Чувствительность: 66 мВ/А
Максимальная частота 50 кГц
Температурный диапазон: -40°С .. +85°С
Ток потребления не превышает: 11 мА
Сопротивление токовой шины 1.2 мОм
Напряжение питания: +5,0 В
Гальваническая развязка, пробивное напряжение: 2.1 кВ
Размеры: 31 x 13 мм

Подключение датчика тока ACS712 к плате Arduino
VCC – питание (опорное напряжение 5В)
GND – земля
OUT – сигнальный (подключается к аналоговому выводу контроллера Arduino)

Вблизи датчика тока RKP-ACS712-30A не рекомендуется устанавливать мощные магниты, соленоиды, реле, электромоторы и прочие предметы, излучающие магнитное поле, так как его работа основана на эффекте Холла и магнитное поле может вносить погрешность и искажать показания сенсора.

Модуль ACS712 измеряет токи до 30 А может быть отправлен вам всего за $1


Обычно, если я покупаю электрический прибор большой мощности, я дважды проверяю его энергопотребление, когда это возможно, а когда нет, например, кабель напрямую подключен к прибору или сила тока слишком высока, я использую цифровые электрические клещи. Оба метода являются довольно удобным, поскольку вам не нужно отрезать провод для измерения тока и определения расхода электроэнергии, но они не позволяют собирать данные, поскольку нет подключаются к сети. Ранее на этой неделе, я сталкивался в проектах с использованием ESP8266 сетевой монитор энергии, для измерения тока питающей сети при установке солнечной панели, для электросчетчика или для газового счетчика. Они используют фото датчик для измерения энергопотребления своего электрического счетчика, который работает, но это может быть проблематичным, если счетчик находится на улице, датчик тока iSnail использует эффект холла совсем как токоизмерительные клещи, но вместо того, чтобы показывать текущий ток на дисплее, датчик выдает от 0 до 5 В, то есть вы можете подключить его на микро-контроллер для обработки данных, как вам нравится.

 Это мило, но в то время как токоизмерительные клещи стоят около $10, 25 А версия iSnail идет за $40, так что я занялся поиском альтернатив. Я нашел дешевый датчик тока, модуль на основе Allegro Systems ACS712, поддерживающий силу тока 5 А, 20 А или 30 А, легко работающий с аналоговыми входами платы Arduino, 5 А версия продается на eBay всего за $1 для 5А, а версии 20 А & 30 А обычно продают менее чем за $2. 

Аппаратные характеристики довольно простые:

  • ACS712 линейный датчик тока IC на основе эффекта холла (техническое описание)
  • 2-клемы для нагрузки DC или AC
  • 3-контактный разъем, контакты VCC (5 В), GND и OUT
  • Входной ток и чувствительность (шкала измерения)
    • -/+ 5 А – 185 мВ/А
    • -/+ 20 А – 100 мВ/А
    • -/+ 30 А – 66 мВ/А
  • Размеры – 31 x 13 мм

Поскольку IC сенсор может измерять в обоих направлениях, через контакт OUT проходит напряжение VCC/2 (2.5 В), когда нет тока и других значений, которые могут быть меньше или больше, чем напряжение VCC/2 в зависимости от направления тока сообщит фактический ток.

Измерение силы постоянного тока (DC) делается очень легко, нужно просто взять одно измерение, вычесть напряжение VCC/2 и разделим на чувствительность. Альтернативный ток измерить немного сложнее, поскольку вам придется производить различные измерения, чтобы найти RMS значение как описано на сайте Henry’s bench. Поскольку плата была доступна в течение нескольких лет, есть много документации в сети для Arduino. Один человек (Julian) сделал очень хороший ролик, показывающий как она работает.

Датчик тока ACS712 также может быть сопряжен с ESP8266, но поскольку беспроводной чип имеет только аналоговый вход от 0 до 1 В, выходное напряжение ACS712 должно быть уменьшено, что приведет к понижению точности, если не использовать через внешний ADC чип. ESP32 не имеет этой проблемы так как его аналоговый вход поддерживает диапазон от 0 ло 4 В, хотя я понимаю что ESP32 имеет несколько собственных, встроенных функций для контроля энергии.

Выражаем свою благодарность источнику с которого взята и переведена статья, сайту cnx-software.com.

Оригинал статьи вы можете прочитать здесь.

Устройство анализирующее протекающий ток и в зависимости от результата включающее или отключающее нагрузку



Это устройство было сделано мастером для включения нагрузки, а именно вытяжки или пылесоса, при включении другого инструмента (шлифстанок, циркулярная пила и т.д.). Через 5 секунд после выключения инструмента, устройство отключает нагрузку.

Инструменты и материалы:
-Arduino Uno;
-Датчик тока ACS712;
-Микроконтроллер Attiny85;
-Разъемы IC Socket;
-Твердотельное реле 10 А;
-Релейный модуль;
-Блок питания HLK-PM01 5V;
-Плата;
-Провода;
-Пластиковый корпус;
-Паяльник;
-Припой;
-Кусачки;

Шаг первый: датчик тока ACS712
Основа этого проекта - это датчик тока ACS712, работающий по принципу эффекта Холла. Ток, который протекает через микросхему, генерирует магнитное поле, которое затем датчик Холла считывает и выдает напряжение, пропорциональное току, протекающему через него.
Когда ток не течет, выходное напряжение составляет половину входного напряжения. Если ток повышается, то повышается или понижается, в зависимости от направления тока, напряжение на выходе датчика.

Если подключить датчик к Ардуино, то по такой схеме можно управлять приборами.

Датчик не точен, но в данном случае это и не важно. Для данной задачи точности достаточно.


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

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



Шаг второй: сборка прототипа и проверка
Чтобы начать измерение с помощью датчика, необходимо датчик ACS712 подключить последовательно с нагрузкой. Затем на датчик нужно подать напряжение 5 В от Arduino, а его выходной контакт подключить к аналоговому входу Ардуино.

Для управления нагрузкой нам нужно реле. Можно использовать твердотельное или механическое реле, убедившись, что оно рассчитано на нужную мощность. Во время сборки устройства у мастера не было одноканального реле, поэтому использовал двухканальный релейный модуль.
Пылесос будет подключен через нормально разомкнутое реле. Реле управляется через контакт 7 Arduino.




Шаг третий: код
Особенность которую мастер добавил в код проекта, - небольшая задержка в 5 секунд после остановки инструмента.
Код можно скачать на этой странице.


Шаг четвертый: сборка рабочего устройства
Всю электронику мастер собирает в распределительной коробке, а наружу выводит шнур с вилкой включения и два провода с разъемами. Один для подключения инструмента, второй для пылесоса.

Шаг пятый: минимизация проекта
Все получилось, но мастер не доволен размером устройства. В дальнейшем мастер планирует минимизировать его. Arduino Uno будет заменен чипом Attiny85, который будет запрограммирован. Для питания планируется использовать модуль HLK-PM01, который преобразует переменный ток в 5 В и имеет очень небольшой размер. Вся электроника будет размещена на двухсторонней печатной плате.

Все готово, осталось подключить к устройству инструмент и пылесос и проверить все в работе.

Процесс сборки устройства можно посмотреть на видео.


Источник (Source) Становитесь автором сайта, публикуйте собственные статьи, описания самоделок с оплатой за текст. Подробнее здесь.

HALJIA ACS712 30A Range Analogue Current Sensor Module ACS712ELCTR-30A for Arduino

HALJIA ACS712 30A Range Analogue Current Sensor Module ACS712ELCTR-30A for Arduino
  • Home
  • HALJIA ACS712 30A Range Analogue Current Sensor Module ACS712ELCTR-30A for Arduino

HALJIA ACS712 30A Range Analogue Current Sensor Module ACS712ELCTR-30A for Arduino: Business, Industry & Science. HALJIA ACS712 30A Range Analogue Current Sensor Module ACS712ELCTR-30A for Arduino: Business, Industry & Science. ACS712ELC current sensor chips 。 Pin 5V power supply 。 The module can measure positive and negative 30amps 。 PCB board size: 27.4mm x 11.8mm 。 Can be used to upgrade the devices such as DVD / router / hard drive 。 This board includes a ACS712 current sensor. Based on the precise, low-offset, linear Hall circuit, this module provides economical and precise solutions for AC or DC current sensing in industrial, commercial, and communications systems.

。 。 Features:。 ACS712ELC current sensor chips。 Pin 5V power supply。 on-board power indicator。 The module can measure positive and negative 30amps。 Can be used to upgrade the devices such as DVD / router / hard drive。 Voltage is VCC / 2 when no test current through the output.。 PCB board size: 27.4mm x 11.8mm 。 。 Packing List:。 1 x ACS712 sensor module(30A) 。 。 。





Режим работы: с 09-00 до 19-00, выходные: с 10-00 до 18-00 

HALJIA ACS712 30A Range Analogue Current Sensor Module ACS712ELCTR-30A for Arduino

HALJIA ACS712 30A Range Analogue Current Sensor Module ACS712ELCTR-30A for Arduino,ACS712ELCTR-30A for Arduino HALJIA ACS712 30A Range Analogue Current Sensor Module,HALJIA ACS712 30A Range Analogue Current Sensor Module ACS712ELCTR-30A for Arduino: Business, Industry & Science, Fast worldwide shipping Free Delivery on all items Fast Shipping, Easy Returns Online shopping provides you with exquisite goods.

30A Range Analogue Current Sensor Module ACS712ELCTR-30A for Arduino HALJIA ACS712.




HALJIA ACS712 30A Range Analogue Current Sensor Module ACS712ELCTR-30A for Arduino


Проверка статуса ремонта

Тут вы можете проверить статус своего заказа, для этого вам нужно ввести его номер в соответствующем блоке ниже

Наши основные услуги

Ремонт ноутбуков с выездом клиенту на дом. Замена матрицы, модернизация, чистка от пыли.

РЕМОНТ НОУТБУКОВ

РЕМОНТ КОМПЬЮТЕРОВ

Ремонт компьютеров с выездом на дом. Настройка, модернизация, чистка от пыли, консультации.

РЕМОНТ
ТЕЛЕФОНОВ

Ремонт,настройка и восстановление ПО,чистка,замена экрана/тачскрина.

HALJIA ACS712 30A Range Analogue Current Sensor Module ACS712ELCTR-30A for Arduino

The padded and adjustable shoulder straps and back for extra comfort. Skirts Or Shirts And You're All Set For The Day. Buy PT Auto Warehouse MI-3603S-FL - Outside Exterior Outer Door Handle. Ceramic ornament is lead-free and measures 1, Date first listed on : November 24. Includes SS Bolts & Copper Crush Washers, Our wide selection is eligible for free shipping and free returns, Elasticized waistband with drawstring can stretch and fixed the waist for comfort and adjustability. OUTSOLE: Full-length TPU outsole delivers explosive traction in all directions. HALJIA ACS712 30A Range Analogue Current Sensor Module ACS712ELCTR-30A for Arduino. Protecting your investment is important and choosing the right parts can be challenging, Fully sanded and ready for your paint or stain, ** At least 4 holes with grommets for an easy installation. Your Satisfaction Is The Most Important Thing We Pursue. How do the garment sizes “run” or “fit”, see pics Length: 15 inches 4mm-About 15-15, All our designs are crafted by independent surface designers who receive a commission on every sale, but perfect for a bachelorette party or girls weekend • CARD: One (1) individual folded card measuring 5¼” x 7¼” (13, Amazing quality at the best price around. HALJIA ACS712 30A Range Analogue Current Sensor Module ACS712ELCTR-30A for Arduino. Or you can order it with a standart size. making us the best source for Certified Organic Heirloom seed. Long sleeve one piece tee "hey girl hey". We recommend that you machine wash your ruffled bed skirt in cold water and then dry it on low heat to ensure its service life, Home Fashions Double Wall Insulated Glasses, Versatile handlebar tape also suitable for rackets, - Weatherproofing Window Insulation Kits -. 5 Pairs Compression Socks for Men & Women Best Graduated Athletic Fit for Running Flight Travel Pregnancy Flying Nurses Medical Shin Splints -Varicose Veins, 2 Celsius) difference between an ear measurement versus a forehead measurement. HALJIA ACS712 30A Range Analogue Current Sensor Module ACS712ELCTR-30A for Arduino. 3D CUSHIONED: 3D soft padding fits closely to your hip. Cane Creek 40-Series Zero Stack Bottom - 55mm.

ВОССТАНОВЛЕНИЕ ДАННЫХ

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

ЗАПРАВКА КАРТРИДЖЕЙ

Заправка,восстановление любых лазерных картриджей.Ремонт и обслуживание вашего принтера.

УДАЛЕНИЕ ВИРУСОВ

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

АБОНЕНТСКОЕ ОБСЛУЖИВАНИЕ

IT Аутсорсинг. Обслуживание компаний. Работа с юридическими лицами.

УСТАНОВКА         WINDOWS

Установка, переустановка Windows после сбоев системы. Решение проблем синего экрана смерти.

РЕМОНТ
APPLE

Ремонт, настройка, чистка, замена матрицы на Apple устройствах : iPhone, iMac, MacBook, iPad, iPod.

 

Почему мы?

5 основных проблем

с которыми сталкиваются 90% клиентов при работе
с другими компаниями

Завышенные цены

Запросы от клиентов обрабатываются долго или остаются без ответа

Долгий срок оформления заказа, слишком много всего нужно заполнять

Несоблюдение сроков

Специалисты прибывают не всегда вовремя

5 основных причин

по которым клиенты выбирают нас и продолжают с нами сотрудничать

Честные цены

Мы реагируем на каждый входящий запрос в течение 15 минут

Предоставляем упрощенную схему оформления заказа

Мы всегда соблюдаем сроки по ремонту и обслуживанию

Мы предварительно согласовываем все тонкости и поэтому не опаздываем

Hide Main content block

Клиенты о нас

Компания «Альком» оказывает услуги по ремонту компьютеров в Омске. Уже несколько лет мы работаем в данной сфере, постоянно повышая свою квалификацию. Сегодня у вас есть несколько причин обратиться за компьютерной помощью именно к нам:
  • оперативность. Мы ответим на ваш входящий запрос уже через 15 минут. В телефонной консультации мастер определит примерные сроки ремонта компьютера и стоимость работ.
  • выезд специалиста. Больше нет необходимости везти ноутбук или громоздкий системный блок в мастерскую. Наши сотрудники будут у вас уже через полчаса после их вызова. Кстати, ремонт компьютеров на дому стоит так же, как и обслуживание в сервисном центре. Выезд мастера и диагностику вы получаете в подарок.
  • прозрачная ценовая политика. Все цены на ремонт телефонови ноутбуков указаны на сайте, после диагностики вам будет названа окончательная стоимость. Вы можете быть уверены в том, что она не увеличится в ходе ремонта.
  • гарантия качества. Мы работает только с надежными и проверенными производителями деталей. В большинстве случаев для ремонта ноутбуков используются оригинальные запчасти, если это невозможно, с клиентов обговаривается возможность установки других деталей.
  • простое оформление заказа. Мы понимаем, что когда ваш ноутбук сломан, последнее, что бы вам хотелось делать – это заполнять сложную, запутанную форму. В «Алькоме» мы избежали этого. Для того, чтобы заказать ремонт ноутбука на дому, достаточно позвонить по номеру 8 (800) 2222-108.
  • точное соблюдение сроков ремонта смартфонов и компьютеров. Благодаря отличным средствам диагностики и большому опыту, наши сотрудники всегда могут точно определить, как много времени займут работы. И если сотрудник «Алькома» сказал, что ваш ноутбук будет в порядке сегодня – значит, так оно и будет. Помимо ремонта компьютеров в Омске, в «Алькоме» вы также можете заказать установку Windows, восстановление данных, организацию локальной сети и ряд других услуг. «Альком» - ваш надежный помощник в мире компьютерной техники!

     

     

    HALJIA ACS712 30A Range Analogue Current Sensor Module ACS712ELCTR-30A for Arduino

    Glossia High Pressure Washer Rotary Surface Cleaner Jet Cleaning Floor Brush for Karcher K Series K1-K7, TOOGOO Big Size Deluxe Scratch Map 1 Piece Black Map Creative Scratch Off Map Travel Scratch World Map Map Mundi Rascar. Kitchen Craft BarCraft Metal Beer Bottle Ice Cool Cooler Bucket Drink Pail. 100A 2P 40A Remote Control Timing Switch Delay Set Function Automatic Lock Intelligent Recloser WiFi Circuit Breaker, 20 pcs Diode Schottky 80V 3A Through Hole DO-201AD 1N5822, Kingfisher WS12 13-Inch/33 cm Rubber Blade Window Cleaning Wiper Black, 100 µL Triple Red AT-100-S-F-R Sterile Racked Universal Graduated Tips Filter, Rhinestone Double Heart Pendant Necklace Mingfa Fashion Sweater Chain Charm Statement Jewelry for Women Girls Lover Gift Silver. Dickies Mens Long Sleeve Two Tone Hi Vis Workwear Safety T Shirt. STACO 70112 1000 x 120mm Heavy Duty F-Clamp. 210 mm Red/Black Bahco 140 Swedish Model Pipe Wrench. Clarke 5 Pack 60 Grit 305mm Sanding Discs For CDS300B. 31MM OD 60 Teeth Brass Worm Gear Wheel 0.5 Modulus Set CNBTR Yellow 3MM Hole Dia Brass Worm Gear Shaft. Dual Head 4.5mm Slot&Phillips 2pcs Screwdriver Voltage Tester Detector Pen Circuit Test Neon Light 100-500V sourcing map Circuit Tester. H HILABEE 2 Two Jaw Gear Bearing Puller, 14 mm Silver/Black Bosch 2608577002 Forstner Bit, Reduces Lead Chemicals & Chlorine | NSF Certified EcoPure Premium 3-Stage Reverse Osmosis Under Sink Drinking Water Filtration System ECOP30. Festo 2490673 Model CRFK-M16X1.5 Self-Aligning Rod Couple. Guaranteed to Last 5 Years CBB60 Eco-friendly 4 Pin Motor Running Start Capacitor 450V 35uf ESR 0.2 for Appliance Rosvola Generator Capacitor, APV-35-5 ; Switching power supply LED power supply 25W 5V 5A ; MeanWell.

Дополнительно

Контакты

   ул.Химиков,25

  ТК "Первомайский", ул. Заозерная 11/1

   
Тел.:8 (3812)308-309(многоканальный)
  E-mail: infoalcom55.ru
Web-сайт: https://308309.ru

 

Вверх

HALJIA ACS712 30A Range Analogue Current Sensor Module ACS712ELCTR-30A for Arduino


HALJIA ACS712 30A Range Analogue Current Sensor Module ACS712ELCTR-30A for Arduino: Business, Industry & Science, Fast worldwide shipping Free Delivery on all items Fast Shipping, Easy Returns Online shopping provides you with exquisite goods.

ACS712 Current Sensor - Arduino Project Hub

Введение Датчики на эффекте Холла

представляют собой компоненты преобразовательного типа, которые могут преобразовывать магнитную информацию в электрические сигналы для последующей обработки электронных схем. Как правило, датчики тока используют эффект Холла для преобразования входного тока в выходное напряжение. В эффекте Холла электроны от электрического тока проходят через пластину магнитного поля. Затем поле заставляет электроны «толкаться» на одну сторону пластины и создавать разность напряжений между двумя сторонами.Разница напряжения со стороны пластины - это выход датчика.

ACS712 - датчик тока, который может работать как с переменным, так и с постоянным током. Этот датчик работает при 5 В и выдает аналоговое выходное напряжение, пропорциональное измеренному току. Этот инструмент состоит из серии прецизионных датчиков Холла с медными линиями.

Выход этого прибора имеет положительный наклон, когда ток увеличивается через медный первичный проводящий путь (от контактов 1 и 2 к контактам 3 и 4).Внутреннее сопротивление токопроводящего тракта составляет 1,2 мОм.

Этот датчик имеет выходное напряжение Vcc x 0,5 = 2,5 при входном токе 0A и источник питания 5V Vcc. Существует три типа в зависимости от диапазона считываемого тока: ± 5 А, ± 20 А и ± 30 А с выходной чувствительностью каждого типа 185 мВ / А, 100 мВ / А и 66 мВ / А соответственно.

Выход этого датчика тока является аналоговым, поэтому для его считывания мы можем напрямую измерить выходное напряжение с помощью вольтметра или измерить его с помощью микроконтроллера, такого как Arduino, через вывод аналогового считывания или вывод АЦП.

Методология

Для этого проекта мы используем источник питания (обеспечивающий выходное напряжение от 0 до 5 Вольт) и резистор 1 Ом 8 Вт для генерации тока от 0 до 5 ампер. Позже мы измерим выходное напряжение датчика тока ACS712.

Мы используем Arduino UNO для подачи питания 5 В на ACS712 (на вывод 5 В в ACS712). Земля датчика ACS712 также подключена к заземлению Arduino UNO. Для измерения мы подключаем зонд + вольтметра к контакту аналогового выхода ACS712.

Результат

Мы тестируем датчик, давая 12 точек измерения от -2A до 2A входного диапазона. Значение напряжения каждого соответствующего измерения выглядит следующим образом:

Регрессия полученного результата показывает взаимосвязь

Этот результат показывает выходное напряжение 2,5 В при 0 А и наклон 170 мВ / А, как и ожидалось из справочного листа.

В заключение, датчик тока ACS712 доказал свою способность считывать электрический ток и выдавать выходное напряжение, пропорциональное входному току.Отношение тока к напряжению показано как 2,5 В при 0 А с крутизной около 170 мВ на ампер.

Измерьте любой переменный ток с помощью ACS712

Видеоурок, если необходимо, это немного длинно, поэтому проверьте комментарии, чтобы найти временные метки

ПОЖАЛУЙСТА, БУДЬТЕ ОСТОРОЖНЫ, ЕСЛИ ВЫ ИСПОЛЬЗУЕТЕ ЛИНИЮ ПИТАНИЯ

Здравствуйте и добро пожаловать в другой учебник , это об измерении переменного тока (AC), с использованием ACS712. Я использую версию на 30 А, которая является ACS712 30A, и нашу прекрасную плату Arduino Uno. Я попытался добавить OLED-экран, но, к сожалению, в конечном итоге сломал его во время съемки учебника поэтому я переключился на ЖК-дисплей, но ниже вы найдете проводку и коды для обеих версий.

И под «Any AC…» я имею в виду, что мы увидим код / ​​библиотеку, которая работает для всех типов сигналов, а не только для синусоидального сигнала, и наш амперметр сможет вычислить ИСТИННУЮ СРЕДНЮЮ КВАДРАТУ КОРНЯ. И обратите внимание, что датчик использует эффект Холла (создание разности напряжений на электрическом проводнике, поперек электрического тока в проводнике и приложенного магнитного поля, перпендикулярного току)

Этот проект можно объединить с этим: Простое измерение напряжения переменного тока с помощью Arduino и ZMPT101B

Испытания будут проводиться на лампе накаливания, управляемой диммером, последовательно соединенным с эталонным мультиметром и модулем датчика тока ACS712.

Вот план:

  • Сначала нам нужно связать наш модуль с платой Arduino и проверить форму сигнала, когда диммер включен - полный цикл - полупериод.
  • Затем мы проверим простой код, не требующий какой-либо библиотеки, но работающий только с сигналом Sinewaves (он будет протестирован).
  • После этого мы увидим код, который будет измерять TRMS переменного тока и использовать ЖК-дисплей.

Детали

Пожалуйста, будьте осторожны при выборе ACS712, не пытайтесь перестраховаться, как я (купив версию на 30 А), это приведет к большим колебаниям, когда вы попытаетесь использовать его для домашнего или небольшого использования. amps приложений, так что здесь мне подошла бы версия 5A или 10A.Также обратите внимание, что 30A или 20A ... также повлияют на вашу калибровку, но это объясняется в видео и комментариях к кодам.

Это те детали, которые я использовал, вы можете заменить UNO на любую совместимую плату или этот LCD i²c на OLED или любой другой дисплей, который вам больше нравится.

Тест 1

Подключение и код

Подключение для теста 1 можно найти ниже (Подключение 1) вместе с кодом (Код 1).

Результаты

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

Test 2

Теперь, если вы хотите измерить ток, используя только приведенный выше код, вы получите значения около 512–511, они вообще не отражают среднеквадратичное значение. Итак, чтобы измерить значение RMS сигнала, мы будем использовать ту же схему подключения, что и выше, но теперь нам нужен другой код, который может вычислить RMS.

Подключение и код

Подключение такое же, как (Подключение 1), но с другим кодом можно найти ниже (Код 2).

Результаты

Как вы можете видеть, значения слева (RMS) совпадают со значением, измеренным мультиметром, справа это значения от пика до пика, и обратите внимание, что диммер полностью цикл, поскольку я использую лампу 75 Вт и 230 В переменного тока / 50 Гц.

!!!!!!!!!!!!!!!! НО !!!!!!!!!!!!!!!!!!!!!

Здесь я полностью выключил диммер, это означает, что у меня примерно 1/4 цикла, мультиметр дает мне 0,21 А, но мой код дает мне 0. 36A, код по-прежнему измеряет от пика до пика, но, как вы можете видеть выше, мой сигнал не является линейным, когда я полностью выключаю диммер.

И в этом разница между измерением TRMS и измерением, которое работает только с синусоидальным сигналом.

Test 3

Теперь вы видите проблему в приведенном выше коде, но, к счастью, есть библиотека, которая может помочь, я очень ценю эту библиотеку за всю работу, которую она выполняет, потому что, как вы знаете, если вы хотите вычислить значение RMS, вам необходимо использовать интегральное исчисление, а это сложно сделать на электронной плате разработки, вы можете проверить файл cpp библиотеки, чтобы увидеть, какие методы используются, такие как «Среднее», «Сигма»… Вещи, связанные со статистикой / вероятностями….

Электропроводка, код и библиотека

Электропроводка такая же, как и проводка, использованная выше (Электропроводка 1), а ниже вы можете найти код (Код 3) .

И здесь вы можете загрузить библиотеку фильтров: Загрузите библиотеку здесь

Результаты

Правильные результаты находятся посередине, левые без калибровки, а правые используются для демонстрации калибровки (посмотрите видео).

Как вы видели огромную разницу между двумя кодами, реагирующими на нелинейный сигнал, но второй действует как мультиметр TRMS.

Тест с LCD / OLED

Здесь мы сохраняем те же самые вещи, все, что мы делаем, это вместо использования последовательного монитора мы можем использовать LCD или OLED

Проводка, коды и библиотеки

Подключение можно найти ниже (Wiring_LCD) и (Wiring_OLED), коды также ниже (Code_ACS712_LCD) и (Code_ACS712_OLED).

Вот библиотеки OLED

https://github.com/adafruit/Adafruit_SSD1306https://github.com/adafruit/Adafruit-GFX-Library

И вот LCD_i2c_library

https://drive. google. com / file / d / 1Oc56q2GPs5SOA-PdbVHHSxKCnI9KY5xd / view

Результат

Это единственный тест, который я смог сделать, потому что я сломал свой OLED-экран, пытаясь снимать видеоурок. В целом это работает так же, как мы видели раньше, просто отображается на ЖК-экране i²c.(Да, значения TRMS, а не метод размаха).

Это все, ребята, я надеюсь, вам понравился этот урок, не забудьте полюбить видеоурок и подписаться на канал SurtrTech, если вы хотите показать поддержку, большое вам спасибо.

Любой вопрос оставляйте в комментариях.

Как измерить ток с помощью Arduino и датчика тока ACS712

В этом уроке я собираюсь измерить постоянный ток с помощью линейного датчика тока на основе эффекта Холла Acs712 и arduino uno.Acs712 может точно и точно измерять ток при правильном управлении. Я просмотрел различные блоги в Интернете о взаимодействии датчика тока acs712 с Arduino и другими микроконтроллерами. Я обнаружил, что все они измеряют ток по формулам (полученным для датчика тока acs712), которые неточны. Поэтому я решил написать руководство по датчику тока acs712 и предложить практический пример со схемой и кодом. В этом уроке я определю лучший метод и точную формулу для измерения постоянного тока с помощью датчика тока acs712.Я буду определять каждый шаг кода и схемы тщательно и глубоко с логикой. Код проекта имеет открытый исходный код, и вы можете загрузить и изменить его в соответствии с вашими потребностями. Датчик тока
Acs712 может измерять как постоянный, так и переменный ток. В этом посте / учебнике / проекте я собираюсь измерять только постоянный ток. Формула, которую я вывел и объяснил в руководстве, предназначена только для измерения постоянного тока. Вы не можете использовать приведенную ниже формулу для измерения переменного тока с помощью датчика холла acs712.

О Acs712

ACS712 - это датчик линейного тока на основе эффекта Холла, который может измерять как постоянный (постоянный ток), так и переменный (переменный ток). Чип сенсора изготовлен компанией Allegro www. allegromicro.com. Описание выводов и выводов микросхемы приведено ниже.

IP + & IP-
Подключите датчик последовательно к системе, ток которой вы хотите измерить. Разрежьте провод цепи и подключите один конец провода к IP +, а другой к IP-. Вспомните школьные лекции, сила тока измеряется только сериями. Поэтому не подключайте датчик параллельно. Вы можете повредить его, подключив параллельно.
VIout
Viout - вывод напряжения. ACS712 выводит аналоговый сигнал в соответствии с любыми изменениями на выводах IP + и IP-, или, другими словами, он выводит аналоговое напряжение на выводе VIOUT, если они имеют какое-либо изменение тока.

Выходное напряжение покоя (VIOUT (Q)). Выход устройства, когда первичный ток равен нулю.Для однополярного напряжения питания оно номинально остается на уровне VCC ⁄ 2. Таким образом, VCC = 5 В переводится в VIOUT (Q) = 2,5 В. Изменение VIOUT (Q) можно отнести к разрешающей способности Acs712. Если Acs712 работает от напряжения 5 В (Vcc = 5 В) и на входе не течет ток, Viout будет 2,5 В . 2,5 В - это базовое напряжение на входе 5 В, теперь любое изменение входного тока приведет к изменению выходного напряжения . Viout уменьшается, когда ток начинает течь через контакты acs712.

Acs712 доступен на рынке в трех рейтингах.

  • ACS712ELCTR-05B-T
  • ACS712ELCTR-20A-T
  • ACS712ELCTR-30A-T

  • ACS712ELCTR-05B-T может измерять ток от 5 до -5 ампер. Где изменение выходного напряжения на 185 мВ от начального состояния соответствует изменению входного тока на 1 ампер.
  • ACS712ELCTR-20A-T может измерять ток от 20 до -20 ампер.Где изменение выходного напряжения на 100 мВ от начального состояния соответствует изменению входного тока на 1 ампер.
  • ACS712ELCTR-30A-T может измерять ток от 30 до -30 ампер. Где изменение выходного напряжения на 66 мВ от начального состояния соответствует изменению входного тока на 1 ампер.

Acs712 Формула измерения постоянного тока

Ток = (AcsOffset - (Измеренное аналоговое показание Arduino)) / Чувствительность

  • AcsOffset - это нормальное выходное напряжение на выводе Viout, когда через цепь не течет ток.
  • Измеренное аналоговое показание Arduino - это значение аналогового сигнала, считываемое и преобразованное в фактическое напряжение из аналогового канала, к которому подключен выход acs712.
  • Чувствительность - это изменение силы тока Acs712 на 1 ампер. Для всех версий acs712 это показано на картинке выше.

Платы датчиков тока acs712 в собранном виде доступны на рынке. Их легко установить в цепи, а соединения довольно просты.У них есть три контакта. Два - это выводы питания vcc и gnd. Третий - выходной контакт. Также имеется 2-полюсный разъем для подключения провода устройства, ток которого необходимо измерить. Типичная печатная плата arduino acs712 выглядит так, как показано ниже.

Теперь я собираюсь соединить датчик тока arduino acs712 с arduino uno. Я буду сопрягать все платы с разным номинальным током одну за другой с arduino uno.

ACS712ELCTR-05B-T Взаимодействие с Arduino Uno

Ознакомьтесь с тестом, который я провел с Acs712-05B от -5 до +5 ампер и arduino uno.Измеренный ток отображается на ЖК-дисплее 16 × 2. Он точно измеряет ток. Код теста и результаты приведены в другом сообщении, ссылка на который находится ниже.

ACS712ELCTR-20A-T Взаимодействие с Arduino Uno

Код проекта

Загрузите код проекта по ссылкам внизу сообщения.

ACS712ELCTR-30A-T Взаимодействие с Arduino Uno

Измерение постоянного тока Arduino - Принципиальная схема проекта

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

Arduino uno к датчику тока acs712 приведена ниже.Схема универсальна, и все три вышеперечисленных кода для разных версий датчика тока acs712 могут работать с одной и той же схемой, приведенной ниже. Вам просто нужно вставить датчик тока acs712 в цепь и загрузить соответствующий код (указанный в сообщении) в arduino uno, остальные соединения одинаковы для всех различных датчиков номинального тока acs712.

Acs712 с Arduino Uno - Принципиальная схема

После сборки схемы и загрузки кода в arduino uno.Откройте последовательный монитор arduino из arduino ide. Как только вы откроете последовательный монитор arduino, вы увидите измеренное текущее значение, отображаемое в окне последовательного монитора arduino ide. Если вы ничего не видите в последовательном мониторе Arduino, проверьте все соединения. Пройдите все возможные физические соединения. Если вы видите сломанные алфавиты в окне последовательного монитора arduino, установите скорость передачи окна последовательного монитора arduino на 9600 бит / с, чтобы видеть правильные символы данных и числа.

rkoptev / ACS712-arduino: библиотека Arduino для датчика тока ACS712

Библиотека Arduino для взаимодействия с линейным аналоговым датчиком тока на основе эффекта Холла ACS712. Включает измерение постоянного и среднеквадратичного переменного тока. Поддерживает датчики ACS712-05B, ACS712-20A, ACS712-30A. Типичные приложения включают управление двигателем, обнаружение и управление нагрузкой, импульсные источники питания и защиту от перегрузки по току.

Для получения дополнительной информации см. Техническое описание: http: //www.allegromicro.com / ~ / media / files / datasheets / acs712-datasheet.ashx

.

Точность аналоговых датчиков в сочетании с низким разрешением встроенного АЦП Arduino вряд ли позволяет точно измерить ток. Итак, этот датчик не подходит для точных измерений, но он будет полезен в тех случаях, когда вам нужно определить наличие тока и приблизительно оценить его величину. Для более точных измерений я рекомендую использовать цифровые датчики, такие как Adafruit INA219.

Ардуино

ESP8266

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

  1. Для датчика требуется питание 5В (ESP работает на 3.3V), или вы можете использовать Vin pin, если вы запитываете плату через USB.
  2. Вход АЦП
  3. ESP8266 работает в диапазоне 0-1 В, это означает, что вам нужно использовать делитель напряжения для преобразования диапазона 0-5 В от датчика в 0-1 В (обратите внимание, что NodeMCU уже имеет встроенный делитель напряжения для входа 3,3 В, вам нужен (чтобы позаботиться об этом и добавить дополнительные резисторы или припаять провод непосредственно к входному аналоговому контакту ESP).

Конструктор:

ACS712 ( ACS712_type тип, uint8_t _pin )

Конструктор имеет два параметра: модель датчика и аналоговый вход, к которому он подключен. Поддерживаемые модели: ACS712_05B , ACS712_20A , ACS712_30A

с плавающей запятой getCurrentDC ()

Этот метод считывает значение с текущего датчика и возвращает его.

с плавающей запятой getCurrentAC ( uint16_t частота )

Этот метод позволяет измерять напряжение переменного тока. Частота измеряется в Гц. По умолчанию частота установлена ​​на 50 Гц. Метод использует для измерения метод среднеквадратического значения.Само измерение занимает время одного полного периода (1 секунда / частота). Метод RMS позволяет нам измерять сложные сигналы, отличные от идеальной синусоидальной волны.

внутренний калибровка ()

Этот метод считывает текущее значение датчика и устанавливает его в качестве контрольной точки измерения, а затем возвращает это значение. По умолчанию этот параметр равен половине максимального значения на аналоговом входе - 512; однако иногда это значение может отличаться. Это зависит от конкретного датчика, проблем с питанием и т. Д. Этот метод лучше выполнять в начале каждой программы.Обратите внимание, что при выполнении этого метода через датчик не должен протекать ток, и, поскольку это не всегда возможно, существует следующий метод:

пусто setZeroPoint ( int _zero )

Этот метод устанавливает полученное значение в качестве нулевой точки для измерений. Вы можете использовать предыдущий метод один раз, чтобы определить нулевую точку вашего датчика, а затем использовать этот метод в своем коде для установки начальной точки без считывания показаний датчика.10 = 1024 шага по умолчанию для опорного напряжения 5 В для Uno, Nano и т. Д. Это дает разрешение измерения 5 В / 1024 шага = разрешение по напряжению 4,88 мВ. 4,88 мВ / 66 мВ / А = 0,074 А или 74 мА.

Итак, разрешение по умолчанию для Arduino Uno, Nano и т. Д. Составляет 74 мА. Реально он будет колебаться вокруг этого значения, поэтому ваша точность может быть примерно в 3 ~ 4 раза больше, или около 300 мА , и ваша точность будет такой же хорошей, как вы ее откалибруете, что может легко быть около этого значения, если вы откалибруете это хорошо.

Разрешение 74 мА неплохо, но есть несколько уловок, чтобы его улучшить. Вот несколько:

1. Внешние аппаратные решения:

  1. Используйте версию 20A или 5A вместо версии 30A ACS712. Версия 5A имеет чувствительность 185 мВ / А, что автоматически улучшает разрешение до 4,88 мВ / 185 мВ / А = 0,026 А или 26 мА , что на 74 мА / 26 мА = в 2,8 раза лучше .
  2. Купите внешний АЦП с высоким разрешением.16 = 5 В / 65535 = 0,0763 мВ вместо 4,88 мВ и 0,0763 мВ / 66 мВ / А = 0,001156 А или 1,156 мА .

2. Программные решения (бесплатно!):

  1. Измените опорное напряжение, чтобы использовать внутреннее опорное напряжение 1,1 В. Это просто: вызовите analogReference (ВНУТРЕННИЙ) в своей функции setup () . Сделанный! См. Https://www.arduino.cc/reference/en/language/functions/analog-io/analogreference/. Если я правильно помню, это внутреннее опорное напряжение на основе диодов (см. Техническое описание ATmega328), и оно может отличаться на 10% от детали к детали, поэтому откалибруйте его для каждого отдельного Arduino, который у вас есть, и вы получите хороший результат. полученные результаты! Теперь разрешение вашего АЦП равно 1.1 В / 1024 = 1,07 мВ вместо 4,88 мВ по умолчанию для Arduino, поэтому ваше текущее разрешение составляет 1,07 мВ / 66 мВ / A = 16,2 мА , что на 74 мА / 16,2 мА = в 4,6 раза лучше .
  2. Используйте передискретизацию, чтобы увеличить 10-битный АЦП Arduino до ~ 16 бит или около того. Примечание по применению Atmel AVR121: Повышение разрешения АЦП за счет передискретизации очень хорошо объясняет это, хотя и требует серьезного изучения. Для этого существуют библиотеки, которые можно использовать в Google. Я написал одну из них.6 = 64. Ваше максимальное значение будет 1023 x 64 = 65472. Разрешение по напряжению будет улучшено с 4,88 мВ до ~ 0,0764 мВ в лучшем случае . Он будет не так хорош, как настоящий 16-битный АЦП, подобный описанному выше от Adafruit, но его вполне достаточно для многих целей. Имейте в виду, что 4096 10-битных показаний занимает некоторое время, поэтому я также рекомендую вам ускорить тактовую частоту АЦП, чтобы улучшить скорость чтения 10-битных значений с ~ 10 кГц до ~ 50 кГц. Здесь также пригодится библиотека, чтобы упростить задачу. Бесплатные решения с открытым исходным кодом уже существуют.Вот таблица, которую я составил, когда впервые прочитал заметку по применению AVR121 и практиковал передискретизацию. Считайте значения разрешения за пределами ~ 16 бит чисто теоретическими. Передискретизация имеет свои пределы.

Что бы я сделал? Я бы использовал внутреннее опорное напряжение 1,1 В и передискретизацию с увеличенной тактовой частотой АЦП на части ACS712, которая обеспечивает минимально допустимый максимальный ток (то есть: выберите версию 5A, а не версию 20A или 30A, если 5A достаточно, или версию 20A. не версия 30А, если 20А достаточно). Просто убедитесь, что ваше максимальное напряжение сейчас на аналоговых выводах не будет превышать значение 1,1 В Vref . Если это так, используйте стандартный источник опорного напряжения 5 В для АЦП и просто выполните передискретизацию. В конце концов, мое текущее разрешение составило бы несколько мА. Если я не могу выполнить выборку на желаемой частоте с использованием передискретизации (я не знаю, какие динамические эффекты вы, возможно, пытаетесь измерить), я бы использовал внешний АЦП с высоким разрешением, который может выполнять выборку быстрее, чем передискретизация при высоких разрешениях. позволять.


И если этого недостаточно, что я буду делать? Я бы использовал прецизионный шунт, то есть «резистор тока» с правильным значением, чтобы я мог измерять значения в правильном диапазоне. Если мне нужно усиление, я куплю внешний АЦП и / или операционный усилитель от Adafruit, пока у меня все не будет подходящего размера. Помните, что если ваш шунт (токовый резистор) слишком мал для измерения необходимых вам малых токов, выполните следующие действия:

  1. Используйте более высокое значение сопротивления. V = IR (напряжение = ток x сопротивление), поэтому увеличивайте R, чтобы увеличить V на нем для заданного тока I.
  2. Используйте операционный усилитель, чтобы усилить падение напряжения на резисторе (выберите Adafruit, поскольку Adafruit упрощает эту задачу и предлагает лучшие в мире примеры).
  3. Используйте АЦП с высоким разрешением и / или передискретизацию, чтобы повысить чувствительность при измерении небольших изменений напряжения.

Схема датчика тока на эффекте Холла с Arduino

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


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

Популярным и простым методом измерения тока является измерение тока на эффекте Холла.

Что такое эффект Холла?

Когда проводник с током помещался в магнитное поле, генерировалось напряжение, пропорциональное полю. Это известно как эффект Холла.

Датчик тока на эффекте Холла ACS712

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

Приложенный ток, протекающий через этот медный проводящий путь, создает магнитное поле, которое ИС Холла преобразует в пропорциональное напряжение.Точность устройства оптимизируется за счет непосредственной близости магнитного сигнала к датчику Холла. Точное, пропорциональное напряжение обеспечивается стабилизированной прерывателем BiCMOS Hall IC с низким смещением, которая запрограммирована на точность (acs712-datasheet).

Характеристики

▪ Тракт аналогового сигнала с низким уровнем шума
▪ Полоса пропускания устройства устанавливается через новый вывод ФИЛЬТРА
▪ Время нарастания выхода 5 мкс в ответ на ступенчатый входной ток
▪ Полоса пропускания 80 кГц
▪ Общая ошибка выхода 1.5% при TA = 25 ° C
▪ Компактный, низкопрофильный корпус SOIC8
▪ Внутреннее сопротивление проводника 1,2 мОм
▪ Минимальное напряжение изоляции 2,1 кВ (среднекв.
▪ Выходная чувствительность от 66 до 185 мВ / А.
▪ Выходное напряжение пропорционально переменному или постоянному току.

Блок-схема ACS 712

Как это работает?

Здесь микросхема датчика тока ACS712 размещена в коммутационной плате и подключается к целевой нагрузке считывания тока и микроконтроллеру.Датчик обнаруживает ток, протекающий через контакты IP + и IP- ( Resistance Current Conductor ), он создает эффект Холла, а затем пропорциональный выход напряжения, снимаемый с контакта 7 (VIOUT) ACS712. Его можно напрямую подавать на микроконтроллеры. Аналоговый входной вывод после фильтров.

Усилитель дифференциального тока

Эта конфигурация увеличивает коэффициент усиления до 610 мВ / А. Для выхода переменного тока эта схема дифференциального усилителя помогает обеспечить установившееся состояние Vout.Это типичная схема приложения из таблицы данных.

Взаимодействие Arduino и ACS712-Hookup

Согласно примечаниям по применению, датчик тока холла подключен к целевой нагрузке, а выходной сигнал подключен к хорошо известному Arduino A0 (аналоговый входной контакт 0). Этот разрыв датчика потребляет питание от источника питания Arduino (+5 и GND). После завершения настройки загрузите следующий код Arduino для измерения текущего потока в нагрузку.

Измерение постоянного тока Код Arduino

 void setup () {
 
  Серийный номер .begin (9600);
}
 
void loop () {
 
 среднее значение с плавающей запятой = 0;
 for (int i = 0; i <1000; i ++) {
 среднее = среднее + (0,0264 * analogRead (A0) -13,51) / 1000;
 
 // Режим 5A, если режим 20A или 30A, необходимо изменить эту формулу на
 //(.19 * analogRead (A0) -25) для режима 20А и
 //(.044 * analogRead (A0) -3.78) для режима 30A
 
 задержка (1);
 }
  Serial  .println (средний);
}

 

Код Arduino для измерения переменного тока

 #define CURRENT_SENSOR A0 // Определить аналоговый входной контакт, к которому подключен датчик
 
floatampitude_current; // Плавающий ток амплитуды
float effective_value; // Плавающий эффективный ток
 
установка void ()
{
  Серийный номер . begin (9600);
 pins_init ();
}
пустой цикл ()
{
 int sensor_max;
 sensor_max = getMaxValue ();
  Серийный  .print ("sensor_max =");
  Серийный номер  .println (sensor_max);
 
 // VCC на интерфейсе Arduino датчика составляет 5 В
 
 ampitude_current = (float) (sensor_max-512) / 1024 * 5/185 * 1000000; // для режима 5A вам нужно изменить это на режим 20 A и 30A;
 эффективное_значение = амплитудный_ток / 1,414;
 
 // для минимального тока = 1/1024 * 5/185 * 1000000/1.414 = 18,7 (мА)
 // Только синусоидальный переменный ток
 
  Serial  .println («Амплитуда тока (в мА)»);
  Серийный номер  .println (ampitude_current, 1);
 
 // Только одно число после десятичной точки
 
  Serial  .println («Действующее значение тока (в мА)»);
  Серийный номер  .println (эффективное_значение, 1);
}
void pins_init ()
{
 pinMode (CURRENT_SENSOR, INPUT);
}
/ * Функция: выборка для 1000 мс и получение максимального значения с вывода S * /
 
интервал getMaxValue ()
{
 int sensorValue; // значение, считываемое с датчика
 int sensorMax = 0;
 uint32_t start_time = миллис ();
 while ((millis () - start_time) <1000) // выборка для 1000 мс
 {
 sensorValue = analogRead (CURRENT_SENSOR);
 если (sensorValue> sensorMax)
 {
 / * записываем максимальное значение датчика * /
 
 sensorMax = sensorValue;
 }
 }
 датчик возврата Макс;
}

 

Предупреждение: нескольких миллиампер достаточно, чтобы повредить человеку. Будьте осторожны при измерении силы тока.

Учебное пособие по датчику тока

ACS712

29 нояб.2019 г. от: Рик Санчес

Датчик тока ACS712 представляет собой экономичное решение для измерения тока, внутренне он работает с датчиком на эффекте Холла, который обнаруживает магнитное поле, создаваемое индукцией тока, протекающего по измеряемой линии. Датчик выдает выходное напряжение, пропорциональное току, в зависимости от приложения мы можем использовать ACS712-05A, ACS712-20A или ACS712-30A для диапазонов 5, 20 или 30 ампер соответственно

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

Датчик тока ACS712


ACS712 можно найти в модулях, которые упрощают их подключение, имеют клеммную колодку для подключения линии, которую мы хотим измерить, и 3 контакта, два для подключения питания и контакт для аналогового выхода.

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

Модель

Rank

Чувствительность

ACS712ELCTR-05B-T

от -5 до 5 A

185 мВ / A

ACS712ELCTR-20A-T

100

-204 до

м / A

ACS712ELCTR-30A-T

от 30 до 30 A

66 мВ / A

Датчик дает нам значение 2.5 вольт для тока 0A и оттуда увеличивается пропорционально чувствительности, имея линейную зависимость между выходным напряжением датчика и током.
Это соотношение представляет собой прямую линию на графике зависимости напряжения от тока, где наклон представляет собой чувствительность, а пересечение оси Y составляет 2,5 вольта. Уравнение линии будет следующим:

Где наклон m равен Чувствительности

При очистке у нас будет уравнение для определения тока по показаниям датчика:

С помощью этого уравнения мы можем перейти к вычислению примеры с Arduino.

Соединения между Arduino и модулем ACS712


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

Пример.1 Измерение тока с помощью ACS712


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

Ниже приведен код для текущего показания:

В нашем случае мы работаем с датчиком 5А, поэтому мы используем значение чувствительности 0.185 В / А, что эквивалентно 185 мВ / А, которые дает нам производитель, если они работают с датчиком 20 А, замените значение чувствительности на 0,100 В / А.

Ниже мы показываем результаты, полученные от последовательного монитора:

Пример 2 Применение фильтра к показаниям ACS712


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

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

Программа будет выглядеть следующим образом.

В нашем случае, из-за большого количества шума, мы работаем с 200 сэмплами, чем больше сэмплов мы получим лучший результат, но также тем больше времени потребуется Arduino для выполнения измерения, для 200 Arduino выборок занимает около 35 миллисекунд, что в большинстве приложений можно считать незначительным. Обратите внимание, что теперь шум имеет амплитуду 10 мА по сравнению с предыдущим примером, который был больше 100 мА. Не путайте шум с ошибкой смещения, которая в этом случае составляет примерно +150 мА. Эта последняя ошибка, если она репрезентативна, мы можем вычесть приводят к текущему уравнению.

Следующий результат для нагрузки примерно 1,2 А

Без фильтра

С фильтром

Пр. 3 Калибровка нашего ACS712


С датчика мы получаем значение приблизительно 1,02 А, но если мы измеряем мультитестером или амперметром, значение тока будет равно 1.15, в нашем случае это дает нам ошибку -130 мА, которая отличается от смещения или ошибки для тока 0А. Если ваши результаты также похожи на наши, это означает, что уравнение, которое мы используем для расчета тока, неадекватно, чтобы исправить это, необходимо откалибровать наш датчик и найти новые значения чувствительности и напряжение, эквивалентное 0A, значениям Что Нам нужно для уравнения.

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

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

В этом уравнении у нас есть только две константы: 2,5, что соответствует напряжению датчика, когда ток равен 0 В, и чувствительность, которая эквивалентна наклону линия Voltage Vs Current; мы должны вычислить реальные значения этих двух констант.


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

После подключения амперметра и датчика мы должны снять показания напряжения датчика, это делается с помощью следующей программы.

Читать для 0A

Все еще калибрует наш ACS712


Это одна из констант, в нашем случае 2,527, что соответствует точке P1 (2,527.0) Чтобы найти вторую константу, нам нужно второе измерение, рекомендуется, чтобы оно не было близко к значению первого измерения, в нашем случае мы будем использовать нагрузку, ток которой больше 1 ампер.

Как вы можете видеть, датчик имеет напряжение 2687, а в амперметре мы измеряем 1,155 А, это будет наша вторая точка P2 (2 687 1555), чтобы вычислить чувствительность, мы просто вычисляем наклон.

Имея эти два значения, уравнение для расчета тока выглядит следующим образом:

Где чувствительность = 0.139 V / A

С этими новыми значениями мы должны работать с предыдущими примерами

Имейте в виду, что каждый датчик имеет свою характеристику

Другой способ - взять несколько точек и, наконец, применить регрессию и найти уравнение линия.

Читать для 1A

Пр. 4 Вт и амперметр переменного тока с использованием модуля ACS712


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

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

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