Подключение датчика тока к Ардуино

СОДЕРЖАНИЕ ►
Датчик тока для Ардуино основан на эффекте Холла, имеет прямую зависимость измеряемой силы тока и выходного сигнала. Модули ACS712 / TA12-100 для измерения тока используются в проектах, где требуется защита от перегрузки, например, при изготовлении зарядных устройств и внешних аккумуляторов (power bank), импульсных источников питания. Рассмотрим, как работать с датчиками тока и Arduino Uno.
Характеристики датчика тока Arduino
ACS713 и ACS712 состоит из линейного датчика на базе эффекта Холла с медным проводником. Ток создает магнитное поле в медном проводнике, которое улавливается датчиком и преобразуется в напряжение. Сила магнитного поля линейно зависит от силы тока. Точность обеспечивается микросхемой на модуле с заводскими настройками. Работает цифровой датчик с постоянным и переменным током.

Технические характеристики ACS712
- Тип интерфейса: цифровой;
- Напряжение: постоянное и переменное;
- Напряжение питания: 5 Вольт;
- Ток потребления: не более 11 мА;
- Измерение силы тока: от 5 до 30 Ампер;
- Чувствительность: от 66 мВ/А до 185 мВ/А;
- Температура эксплуатации: от -40°C до +85°C;
- Размер платы модуля: 31 мм на 13 мм.
Датчик TA12-100 Arduino работает на другом принципе. Модуль измеряет напряжение, падающее на транзисторе в 200 Ом, который находится на выходе трансформатора. Датчик TA12-100 преобразует напряжение на резисторе в аналоговый сигнал, применяя закон Ома (I = E / R). Коэффициент трансформатора составляет 1000:1 и, чтобы получить значение тока, следует полученные данные умножить на 1000.

Технические характеристики TA12-100
- Тип интерфейса: аналоговый;
- Напряжение: постоянное;
- Напряжение питания: 5 Вольт;
- Ток потребления: не более 5 мА;
- Измерение силы тока: до 5 Ампер;
- Чувствительность: не известна;
- Температура эксплуатации: от -55°C до +85°C;
- Размер платы модуля: 30 мм на 24 мм.
Как подключить к Ардуино датчик ACS712
Для этого занятия нам потребуется:
- плата Arduino Uno / Arduino Nano / Arduino Mega;
- датчика тока ACS712 / TA12-100;
- источник питания 12 Вольт;
- нагрузка, например, лампа 12V;
- провода «папа-папа», «папа-мама».
Датчик ACS712 является аналоговым, для подключения потребуется три провода. Два для питания — GND и 5V и один провод для сигнала. Датчик подключается в разрыв цепи между источником питания и нагрузкой. Используется библиотека TroykaCurrent.h (скачать ее можно здесь), которая переводит значения аналогового сигнала в миллиамперы. Соберите схему, установите библиотеку и загрузите скетч.

Счетч для датчика тока Arduino ACS712
#include <TroykaCurrent.h> // библиотека для работы с датчиком ACS712 sensorCurrent(A1); // сообщаем номер пина входного сигнала void setup() { // открываем последовательный порт Serial.begin(9600); } void loop() { // вывод данных с датчика для постоянного тока Serial.print("I = "); Serial.print(sensorCurrent.readCurrentDC()); Serial.println(" A"); delay(500); }
Пояснения к коду:
- для переменного тока используйте команду
sensorCurrent.readCurrentAC()
; - при отрицательных значениях поменяйте местами провода на колодках.
Как подключить к Ардуино датчик TA12-100

Данный датчик используется только для измерения переменного тока и является аналоговым. Для подключения к плате вам потребуется два провода (хотя на модуле имеется три контакта) — один провод подключается к GND, а второй к аналоговому входу. Провод, где вы хотите измерить силу тока, должен проходить через катушку модуля. Соберите схему, как на картинке и загрузите следующий скетч.
Счетч для датчика тока Arduino TA12-100
#define sensorTA12 A0 // назначаем пин для подключения датчика float nVPP; // напряжение на резисторе float nCurrThruResistorPP; // пиковый ток на резисторе float nCurrThruResistorRMS; // среднеквадратичное значение тока на резисторе float nCurrentThruWire; // актуальное среднекватратичное значение тока void setup() { Serial.begin(9600); pinMode(sensorTA12, INPUT); } void loop() { // узнаем напряжение на резисторе с помощью функции getVPP() nVPP = getVPP(); // используем закон Ома для расчета тока на резисторе nCurrThruResistorPP = (nVPP / 200.0) * 1000.0; // преобразуем значения тока в среднекватичное значение nCurrThruResistorRMS = nCurrThruResistorPP * 0.707; // коэффициент трансформатора 1000:1, поэтому ток умножается на 1000 nCurrentThruWire = nCurrThruResistorRMS * 1000; // выводим все данные на мониторе порта Serial.print("Volts Peak : "); Serial.println(nVPP, 3); Serial.print("Current Through Resistor (Peak) : "); Serial.print(nCurrThruResistorPP, 3); Serial.println(" mA Peak to Peak"); Serial.print("Current Through Resistor (RMS) : "); Serial.print(nCurrThruResistorRMS, 3); Serial.println(" mA RMS"); Serial.print("Current Through Wire : "); Serial.print(nCurrentThruWire, 3); Serial.println(" mA RMS"); Serial.println(); } // следующая функция узнает пиковое значение за одну секунду float getVPP() { float result; int readValue; int maxValue = 0; uint32_t start_time = millis(); while ((millis() - start_time) < 1000) { readValue = analogRead(sensorTA12); if (readValue > maxValue) { maxValue = readValue; } } result = (maxValue * 5.0) / 1024.0; return result; }
Пояснения к коду:
- ;
- .
Подборка на тему: Подключение датчика тока к Ардуино
2 комментариев для “Подключение датчика тока к Ардуино”
Добавить комментарий
Записи похожие на: Arduino. Подключение датчика тока ACS712
- Мемы про Ардуино на русском
- Подключение моторчика к Ардуино
- Дисплей LCD 1602 Ардуино подключение
- Сертификат на дополнительное образование
Проекты похожие на: Arduino. Подключение датчика тока ACS712
Разве датчик ACS712 — цифровой? Везде пишут, что аналоговый, и подключать его нужно к аналоговому входу…
Спасибо, что заметили такую ужасную ошибку. Немедленно исправим информацию про аналоговый датчик ACS712