Подключение датчика тока ACS712 к Arduino
В этой статье расскажу как подключить датчик тока ACS712 к Arduino, а так же выведу показания в мониторинг порта. Датчик ACS712 способен измерять постоянный и переменный ток, используя эффект холла.
Технические параметры
► Диапазоном измерения тока: 5А, 20А, 30А;
► Чувствительность: от 66 до 185 мВ/А;
► Максимальная полоса пропускания составляет: 80 кГц;
► Напряжение питания датчика: 5 В;
► Габариты: 32 х 13 х 14 мм;
► Вес: 4 г.
Краткий обзор ACS712
Модуль использует микросхему ACS712, разработанную компанией Allegro Micro Systems. Микросхема способна измерять как постоянный так и переменный ток с частотой до 80 кГц, внутренние сопротивление шунта составляет 1.2 мОм. Измерение тока осуществляется с помощью эффект холла, при нулевом токе протекающим через датчик, выходное напряжение будет равно половине напряжения питания. При протекание тока через датчик напряжение на выходе будет линейно увеличиваться, при измерение переменного тока, напряжение будет увеличиваться или уменьшатся.
Существует несколько видов датчиков, которые отличаются величиной измеряемого тока 5А, 20А и 30А. Если выбрали на 5А коэффициент пропорциональности (на сколько изменится выходное напряжение на 1 ампер) равен 185 мВ, при 20А равен 100 мВ, а при 30А равен 66 мВ. Если вам необходима точность выбирайте на 5А, при тока 30А точность меньше.
Назначение контактов:
► VCC, GND — Источник питания модуля, 5 В
► OUT — выход модуля
Подключение датчика тока ACS712 к Arduino
Необходимые детали:
► Arduino UNO R3 x 1 шт.
► Датчик тока ACS712, 5А x 1 шт.
► Провод DuPont, 2,54 мм, 20 см, F-M (Female — Male) x 1 шт.
► Кабель USB 2.0 A-B x 1 шт.
Описание:
В примере покажу как подключить датчик датчик тока ACS712 к Arduino UNO, в качестве нагрузки воспользуюсь обычным щеточным мотором, все показания будем передавать в последовательный порт.
Подключение:
Из приведенной выше принципиальной схемы можно увидеть, что вывод OUT от датчика тока подключен к аналоговому выводу A0 Arduino UNO. Контакты VCC и GND датчика подключены к 5 В и GND Arduino. С другой стороны один из проводов нагрузки последовательно соединен с датчиком, как показано на приведенном выше изображении.
Программа:
После подключения всех компонентов, как показано на принципиальной схеме, скопируйте и загрузите приведенный ниже код в Arduino через Arduino IDE.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
int analogPin = A0; // Указываем порт OUT датчика ACS712 const int averageValue = 500; // Переменная для хранения значения количества считывания циклов long int sensorValue = 0; // Переменная для хранения значения с датчика float voltage = 0; // Переменная для хранения значения напряжения float current = 0; // Переменная для хранения значения тока void setup() { Serial.begin(9600); // Открываем последовательную связь на скорости 9600 } void loop() { for (int i = 0; i < averageValue; i++) // Повторяем цикл { sensorValue += analogRead(analogPin); // Считываем и записываем показания delay(2); // Пауза 2 мкс } sensorValue = sensorValue / averageValue; // Делим полученное значение voltage = sensorValue * 5.0 / 1024.0; // Расчет напряжения current = (voltage - 2.5) / 0.185; // Расчет тока Serial.print("ADC Value: "); // Отправка данных в последовательный порт Serial.print(sensorValue); Serial.print(" ADC Voltage: "); // Отправка данных в последовательный порт Serial.print(voltage); // Отправка напряжения Serial.print("V"); // Отправка данных в последовательный порт Serial.print(" Current: "); // Отправка данных в последовательный порт Serial.print(current); // Отправка тока Serial.println("A"); // Отправка данных в последовательный порт } |
Когда на входе датчика нет нагрузки, в мониторинге порта можно увидеть показания, показанные на рисунке ниже.
Когда на вход подключим нагрузку, показания изменится
Одним из существенный недостаток модуля ACS712, которую необходимо учитывать, это чувствительность к внешнему магнитному полю, которое может возникнуть от постоянного магнита или от провода по которому течет большой ток. На рисунке ниже, показано, как меняется значение тока, когда на модуль действует постоянный магнит.
Купить на Aliexpress
Контроллер Arduino UNO R3 на CH340G
Контроллер Arduino UNO R3 на Atmega16U2
Провода DuPont, 2,54 мм, 20 см
Датчик тока ACS712, 5А, 20А, 30А.
Купить в Самаре и области
Контроллер Arduino UNO R3 на CH340G
Контроллер Arduino UNO R3 на Atmega16U2
Провода DuPont, 2,54 мм, 20 см
Датчик тока ACS712, 5А
Датчик тока ACS712, 20А
Датчик тока ACS712, 30А