Подключение датчика тока ta12-100 к ардуино

5Подключение датчика тока и напряжения INA219 к Arduino

Для начала пойдём простым путём: скачаем готовую библиотеку, загрузим в Arduino и посмотрим на результат. Существует несколько библиотек для работы с нашим датчиком. Предлагаю воспользоваться вот этой популярной библиотекой для INA219 от Adafruit. Скачаем её, установим стандартным образом и загрузим в Arduino скетч из примеров getcurrent.

Если скетч не компилируется, а в сообщениях об ошибках присутствуют какие-то недостающие компоненты (например, Adafruit_I2CDevice.h или Adafruit_BusIO_Register.h, то необходимо доустановить их. Проще всего это сделать так. Для этого способа требуется подключение к интернету на компьютере, где запущена среда разработки. Открыть в среде Arduino IDE менеджер библиотек: в меню Tools Manage Libraries…. Откроется окно Library Manager. В поле поиска следует ввести adafruit busio. Когда библиотека будет обнаружена и покажется в списке, нажать кнопку Install.

Установка недостающих библиотек через менеджер библиотек Arduino IDE

Подключим модуль GY-219 к Arduino по следующей схеме. SDA и SCL датчика можно подключить как к аналоговым входам A4 и A5 Arduino, так и к специально выделенным портам SDA и SCL (если они есть на вашей плате).

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

В качестве нагрузки может быть любой источник, например, электромотор, лампа или просто мощный резистор. У меня это 5 соединённых параллельно 5-ваттных 16-омных резисторов. В качестве источника питания также может выступать любой из имеющихся у вас источников. Я буду использовать лабораторный источник питания.

Датчик INA219 подключён к Arduino

В результате выполнения скетча получится следующий вывод:

Результат работы скетча «GetCurrent» для датчика тока INA219

Отлично! Всё работает! Как говорится, бери – и пользуйся.

Данная библиотека позволяет также проводить калибровку датчика INA219 при необходимости. Подробности – в описании библиотеки и в самих исходниках (в файле Adafruit_INA219.cpp библиотеки даётся большое число пояснений).

Практические ниши применения

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

Опять же. Применяя Arduino одновременно с ACS712, как наиболее распространенным датчиком тока платформы, можно использовать микроконтроллер именно в роли детектирующего прибора, который в зависимости от определенного времени производит замер потребления конечной сети. Или как очень «умный» мультиметр, с возможностью построения On-line графиков на дополнительно соединенном к аппарату экране или внешнем компьютере.

Устройство

Суммарное количество чувствительных элементов датчика давления зависит от его модели. Главными остается пьезоэлементы, определяющие саму силу действия на свою плоскость. Физическая основа работы – возникновение электрического тока на внутренних кварцевых пластинах в результате их деформации при соприкосновении с влияющим фактором. В настоящем случае, о котором идет речь — газом или жидкостью.

Выработанное аналоговое напряжение идет в модуль АЦП преобразования, где его сила перекодируется в числовой вид и через интерфейсы датчика I2C и SPI отправляется на микроконтроллер. Библиотека функций, ориентированных на работу с конкретным сенсором, переводит полученные величины в понятный человеком вид, на основе единиц измерений давления в стандарте Си — Паскалях.

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

4Описание датчика тока,напряжения и мощности INA219

Датчик INA219 – цифровой датчик тока, напряжения и мощности. Он позволяет измерять напряжения от 0 до 26 вольт и ток от 0 до 3,2 ампер. Питается датчик напряжением от 3 до 5,5 В. Существуют модули, полностью готовые к подключению к Arduino. Один из таких модулей GY-219:

Модуль GY-219 с датчиком тока INA219: назначение выводов и частей

Датчик INA219 выполняется в двух разновидностях: A и B. Последняя отличается повышенной точностью и меньшей погрешностью. На фото ниже как раз модификация INA219B.

Модуль GY-219 с датчиком тока INA219

Датчик INA219 имеет 12-разрядный АЦП, соответственно при максимуме измерений ±3,2 А получается разрешающая способность 0,8 мА. Однако можно настроить датчик таким образом, чтобы уменьшить диапазон измеряемой силы тока до ±400 мА; при этом разрешающая способность датчика увеличится до 0,1 мА. При этом можно откалибровать датчик, записав калибровачные данные в специальный регистр. Измеренные данные силы тока, напряжения и можности хранятся в трёх соответствующих регистрах. Кстати, датчик INA219 позволяет осуществлять аппаратную фильтрацию по 128 отсчётам, если измеряемый ток имеет сильные наводки.

Для конфигурирования датчика INA219 и для считывания показаний с него используется последовательный интерфейс I2C. Причём адрес на шине можно задать с помощью перемычек A0 и A1 на модуле. Допустимые адреса:

  • 0x40 (без перемычек);
  • 0x41 (с перемычкой A0);
  • 0x44 (с перемычкой A1);
  • 0x45 (установлены обе перемычки).

Соответственно, на одной шине IIC можно иметь до 4-х таких датчиков, подключённых одновременно.

Подключаем различные модели

Реле контроля напряжения подключаются по-разному, в зависимости от модели, характеристик и назначения.

Локальная защита

Розеточное реле

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

  1. Включаем в реле сетевую вилку от нашего прибора.
  2. Вставляем наше реле в розетку.

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

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

Удлинитель

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

Комплексная защита

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

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

  1. При помощи индикаторной отвертки определить фазировку. Как правило, с силового автомата выходит «фаза», однако всегда стоит перепроверять.
  2. Отключить автомат, убедиться в отсутствии напряжения.

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

Один из вариантов: УЗМ

Подключение реле такого типа выполняется в несколько шагов:

  1. После отключения силового автомата устанавливаем прибор на дин-рейку или крепим другим, описанным в паспорте, способом.
  2. Определяем вход — выход.
  3. Значение маркировки: INPUT — вход, L — фаза, N — ноль. Подключаем провода, соблюдая фазировку.
  4. К выходу также подключаем концы, выводим их к нагрузке.

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

С односторонним подключением

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

Первые шаги такие же, как и в предыдущем случае: определить фазу, обесточить цепь, убедиться в отсутствии напряжения. Дальше устанавливаем реле на его место. Коммутация производится таким образом:

  • Клемма 1 — рабочий ноль. Сюда подходит нулевой провод с автоматического выключателя.
  • Клемма 2 — вход. Подаем фазу с АВ.
  • Клемма 3 — выход к нагрузке.

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

Модель РН-104

Совсем по-другому подключается такой тип защитного реле. На первый взгляд, оно ничем не отличается от предыдущего, но есть существенные различия в схеме. Ключом к пониманию является маркировка в верхней части корпуса и схема, нарисованная сбоку. Согласно ей, вход — клемма 1, выход — клемма 3. Контакт номер два — общий. Он используется и как вход питания реле, и как выход к нагрузке.

Как подключить к Ардуино датчик TA12-100

Схема подключения к Arduino датчика тока 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;
}

Представленные на рынке модели

Датчики Arduino, относящиеся к давлению, делятся согласно средам применения и конструктивным особенностям, непосредственно связанным с получением конечного результата. Есть модели, защищенные от влаги и предназначенные для применения в жидкостях, другие работают только в качестве анероидов атмосферы, иные устанавливаются в разрыв движения потока, четвертые в качестве определителей внутреннего давления наполняющего емкость газа. Их всех объединяет наличие общих интерфейсов подключения к микроконтроллеру и низкое, не более нескольких милливатт (реже Ватт), потребление энергии.

Наименование Питание (V) Точность Разрешение
(hPa)
Диапазон (hPa) Рабочая температура
(°C)
Интерфейсы Примечание
SPI I2C UEXT
Атмосферные
MOD-BMP085 1.8–3.6 0.03 hPa 0.01 300–1100 (от 500 м ниже уровня моря до 9 км. высоты –40..+85 + + Измерение температуры
GY-BMP280 3.3 0.12 hPa 0.0016 300–1100 –40..+85 + + Измерение температуры до +65, с точностью 0.01
MD-PS002 5V ±0.2% –100–+150 –40..+125 + Только не агрессивные среды
Жидкостные
MS5803-02BA 1.8–3.6 20 см жидкости 30–1100
(10–2000)
–40..+85 + +
MS5803-07BA 1.8–3.6 0–7 мбар
(70 м погружения)
–20..+85 + +
Open-Smart 5V G1/4 0-1.2 MPa Hydraulic Pressure Sensor for Non-Corrosive Water 5 1.5 % 1–2.4 мбар (max 3) 0..+85 Собственный коннектор, соединяемый к I2C через резистор, датчик оснащен термометром

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

Практика применения

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

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

  • Сигнала сильноточных условий, например, забитая зёрнами доверху кофемолка;
  • Некоторых слаботочных условий, например, работающий насос при низком уровне воды.

Чтобы удовлетворить требования разнообразного набора приложений, в настоящее время используется блочный принцип компоновки датчиков, включая применение USB-разъёмов, монтаж на DIN-рейку и кольцевые исполнения устройств. Это обеспечивает выполнение следующих функций:

  • Надёжную работу на любых режимах эксплуатации;
  • Возможность применения трансформаторов;
  • Регулировка текущих параметров, которые могут быть фиксированными или регулируемыми;
  • Аналоговый или цифровой выход, включая и вариант с коротким замыканием;
  • Различные исполнения блоков питания.

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

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

Когда насос работает в нормальном режиме, и жидкость полностью перекрывает его впускное отверстие, двигатель насоса потребляет номинальный рабочий ток. В случае снижения уровня воды потребляемый ток уменьшается. Если кнопка запуска нажата, одновременно включаются стартёр M и таймер TD. Реле CD настроено на максимальный ток, поэтому его контакт при первоначальном запуске двигателя не будет замкнут. При падении силы тока ниже установленного минимума реле включается, а, после истечения времени ожидания TD, включается в его нормально замкнутый контакт. Соответственно контакты CR размыкаются и обесточивают двигатель насоса.

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

Технические характеристики

Рассмотрим характеристики платы ACS712 более подробно, естественно с разделением их в зависимости от возможностей различных моделей:

  • Питание — 5В;
  • потребляемый ток — 0,11А;
  • сопротивление по шинам — до 1,2 мОм;
  • вид измеряемой характеристики — постоянный или переменный ток;
  • температурный режим работы — от –40 до +85°С;
  • дополнительные индикаторы — присутствует светодиод поступления тока на питание устройства;
  • размеры (в среднем) — 31 x 13 мм;
  • критичная сила тока, приводящая к пробою устройства — 50А.

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

Модель мВ/А
ACS712 5A 185
ACS712 20A 100
ACS712 30A 66
ACS713 20A 185
ACS713 30A 133

Внутренняя электронная схема сенсора:

Что измеряет сенсор

Давление — некая физическая величина численно равная перпендикулярно направленной силе действующей на единицу площади поверхности. Сам датчик можно представить своеобразными очень чувствительными весами. Последнее замечание сделано по причине того, что и вода, и газы тоже имеют свою массу, которая влияет на поверхность под ними. На практике, за счет указанного фактора, можно определить глубину погружения (чем ниже, тем больше вес слоя воды) или высоту подъема в атмосферу (чем выше — тем меньше плотность, а значит и слабее воздействие). Кроме того, в отношении давления воздуха не стоит забывать о погодных колебаниях. Резкое падение названой характеристики атмосферы — к дождю или буре.

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

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

ACS712 и ACS713

24.10.2013 | Рубрика: Электроника

Общее описание

Компанией ALLEGRO MICROSYSTEMS EUROPE представлены малошумящие токовые датчики с гальванической развязкой от измеряемой линии, имеющих среднеквадратичное значение напряжения изоляции 2100В.

Датчики ACS712/713

Датчики ACS712 и ACS713 основаны на эффекте Холла. Датчик ACS712 может измерять переменный и постоянный ток, а ACS713 только постоянный. Суммарная ошибка выходного сигнала при комнатной температуре составляет 1,5%, а в интервале температур от -40° до +85°C ошибка составляет +/-4%. Кроме того, датчики ACS712 и ACS713 имеют вывод, к которому подключается фильтрующая емкость, что позволяет улучшить шумовые и точностные характеристики датчиков.

Устройство ACS712/713

Датчики ACS712 и ACS713 питаются от +5В и имеют выход по напряжению. При токе равном нулю напряжение на выходе для ACS712 равно 2,5В и отклоняется в или ближе к нулю или ближе к напряжению питания — зависит от направления протекания тока. ACS713 при нулевом токе на выходе выдает 0,5В. Приборы имеют приличное быстродействие.

Структурная схема микросхемы ACS712 на рисунке ниже:

Структурная схема ACS712/713

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

Датчики делятся на два семейства: ACS712 и ACS713. ACS712 работает с постоянным и переменным током, ACS713 работает только с постоянным током.

Чувствительность датчиков:

  • ACS712 5А: 185 мВ/А
  • ACS712 20А: 100 мВ/А
  • ACS712 30А: 66 мВ/А
  • ACS713 20А: 185 мВ/А
  • ACS713 30А: 133 мВ/А

Температурный диапазон от -40 до 85г С. Ток потребления не превышает 11мА. Сопротивление внутреннего шунта 1,2 мОм.

Применение ACS712 и ACS713

Применять микросхему очень просто — необходимо подключить питание +5В и измеряемую линию:

Схема включения ACS712/713

Но есть и свои нюансы — ведь у этой малютки в корпусе SOIC-8 через выводы 1,2,3,4 протекает ток до 30А! Соответственно разводку рекомендуется делать примерно так:

Разводка ACS712/713

Мне для включения этой микросхемки делать печатную плату было лениво, да и по времени затратно, поэтому сделал вот так — из кусочка какой-то платы:

ACS713 на макетке

ACS713 на макетке

Достоинства и недостатки ADM3251E

Плюсы:

  • Малые габариты. Однокристальное решение.
  • Малое сопротивление измерительного шунта, а значит малые потери и тепловое выделение.
  • Гальванически развязано от измеряемой линии.

Минусы:

  • Семейство датчиков измеряет весьма большие токи, т.е. контролировать ток на уровне 0,2А не имеет смысла.
  • Не рекомендуется устанавливать мощные магниты, реле и т.п. вблизи микросхемы, т.к. ее работа основана на эффекте Холла.

Datasheet

ACS712_713

dat001-01.pdf

1.0 MiB
1322 Downloads

Datasheet ACS712/713

Языки: English
Категория: ACS712_713
Дата: 24.10.2013

Description

The ACS712 is a chip to measure current, both AC or DC. The chip has an
analogue output that provides a voltage that is linear with the current.
The ACS712 library supports only a built in ADC by means of analogRead().
There are 2 core functions:

  • int mA_DC()
  • int mA_AC(float freq = 50) The frequency can be set to typically 50 or 60 Hz
    however other values e.g. 50.1 or 40 or 123.456 are possible.

To measure DC current a single analogRead() with some conversion maths is sufficient to get
a value. To stabilize the signal analogRead() is called twice.

To measure AC current a blocking loop for 20 milliseconds is run to determine the
peak to peak value which is converted to the RMS value. To convert the peak2peak
value to RMS one need the so called crest or form factor. This factor depends heavily
on the signal form. For a perfect sinus the value is sqrt(2)/2 == 1/sqrt(2).

Исходный код программы (скетча)

Arduino

/*
* Wattmeter for Solar PV using Arduino
* Dated: 27-7-2018
* Website: http://www.circuitdigest.com/
*
* Power LCD and circuitry from the +5V pin of Arduino whcih is powered via 7805
* LCD RS -> pin 2
* LCD EN -> pin 3
* LCD D4 -> pin 8
* LCD D5 -> pin 9
* LCD D6 -> pin 10
* LCD D7 -> pin 11
* Potetnital divider to measure voltage -> A3
* Op-Amp output to measure current -> A4
*/

#include <LiquidCrystal.h> //подключаем библиотеку для работы с ЖК дисплеем
int Read_Voltage = A3;
int Read_Current = A4;
const int rs = 3, en = 4, d4 = 8, d5 = 9, d6 = 10, d7 = 11; //номера контактов, к которым подключен ЖК дисплей
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
void setup() {
lcd.begin(16, 2); //Initialise 16*2 LCD
lcd.print(» Arduino Wattmeter»); //приветственное сообщение на 1-й строке
lcd.setCursor(0, 1);
lcd.print(» With Arduino «); // приветственное сообщение на 2-й строке
delay(2000);
lcd.clear();
}
void loop() {

float Voltage_Value = analogRead(Read_Voltage);
float Current_Value = analogRead(Read_Current);
Voltage_Value = Voltage_Value * (5.0/1023.0) * 6.46;
Current_Value = Current_Value * (5.0/1023.0) * 0.239;
lcd.setCursor(0, 0);
lcd.print(«V=»); lcd.print(Voltage_Value);
lcd.print(» «);
lcd.print(«I=»);lcd.print(Current_Value);
float Power_Value = Voltage_Value * Current_Value;
lcd.setCursor(0, 1);
lcd.print(«Power=»); lcd.print(Power_Value);

delay(200);
}

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
38
39
40
41
42
43
44
45

/*
* Wattmeter for Solar PV using Arduino
* Dated: 27-7-2018
* Website: http://www.circuitdigest.com/
*
* Power LCD and circuitry from the +5V pin of Arduino whcih is powered via 7805
* LCD RS -> pin 2
* LCD EN -> pin 3
* LCD D4 -> pin 8
* LCD D5 -> pin 9
* LCD D6 -> pin 10
* LCD D7 -> pin 11
* Potetnital divider to measure voltage -> A3
* Op-Amp output to measure current -> A4
*/

#include <LiquidCrystal.h>  //подключаем библиотеку для работы с ЖК дисплеем

intRead_Voltage=A3;

intRead_Current=A4;

constintrs=3,en=4,d4=8,d5=9,d6=10,d7=11;//номера контактов, к которым подключен ЖК дисплей

LiquidCrystallcd(rs,en,d4,d5,d6,d7);

voidsetup(){

lcd.begin(16,2);//Initialise 16*2 LCD

lcd.print(» Arduino Wattmeter»);//приветственное сообщение на 1-й строке

lcd.setCursor(,1);

lcd.print(»  With Arduino  «);// приветственное сообщение на 2-й строке

delay(2000);

lcd.clear();

}

voidloop(){

floatVoltage_Value=analogRead(Read_Voltage);

floatCurrent_Value=analogRead(Read_Current);

Voltage_Value=Voltage_Value*(5.01023.0)*6.46;

Current_Value=Current_Value*(5.01023.0)*0.239;

lcd.setCursor(,);

lcd.print(«V=»);lcd.print(Voltage_Value);

lcd.print(»  «);

lcd.print(«I=»);lcd.print(Current_Value);

floatPower_Value=Voltage_Value*Current_Value;

lcd.setCursor(,1);

lcd.print(«Power=»);lcd.print(Power_Value);

delay(200);

}

Работа датчика тока ACS712 с Arduino

Подключите все согласно принципиальной схеме и загрузите код в Arduino. В коде есть небольшой расчет для измерения тока. Во-первых, если предположить, что напряжение VCC-ASC712 составляет 5 В, то при отсутствии тока, протекающего через клеммы IP + и IP-, выходное напряжение на VIOUT ACS712 составляет 2,5 В. Это означает, что вам нужно вычесть 2,5 В из напряжения, измеренного на аналоговом выводе.

Теперь, чтобы рассчитать ток, разделите это значение на чувствительность датчика (185 мВ / A для датчика 5A, 100 мВ / A для датчика 20A и 66 мВ / A для датчика 30A). Это все реализовано в коде.

digitrode.ru

Характеристики датчика тока Arduino

ACS713 и ACS712 состоит из линейного датчика на базе эффекта Холла с медным проводником. Ток создает магнитное поле в медном проводнике, которое улавливается датчиком и преобразуется в напряжение. Сила магнитного поля линейно зависит от силы тока. Точность обеспечивается микросхемой на модуле с заводскими настройками. Работает цифровой датчик с постоянным и переменным током.

Принцип работы датчика тока 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 для платы Ардуино

Технические характеристики TA12-100

  • Тип интерфейса: аналоговый;
  • Напряжение: постоянное;
  • Напряжение питания: 5 Вольт;
  • Ток потребления: не более 5 мА;
  • Измерение силы тока: до 5 Ампер;
  • Чувствительность: не известна;
  • Температура эксплуатации: от -55°C до +85°C;
  • Размер платы модуля: 30 мм на 24 мм.

Объяснение программы для Arduino

Полный код программы приведен в конце статьи, здесь же мы рассмотрим его основные фрагменты.

Цель функционирования программы – считать значения аналогового напряжения с контактов A3 и A4 и рассчитать напряжение, ток и мощность, а потом отобразить все это на экране ЖК дисплея.

Вначале программы нам необходимо инициализировать используемые контакты: A3 и A4 для измерения напряжения и тока соответственно, и цифровые контакты 3, 4, 8, 9, 10 и 11 для подключения ЖК дисплея.

Arduino

int Read_Voltage = A3;
int Read_Current = A4;
const int rs = 3, en = 4, d4 = 8, d5 = 9, d6 = 10, d7 = 11; //контакты для подключения ЖК дисплея
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

1
2
3
4

intRead_Voltage=A3;

intRead_Current=A4;

constintrs=3,en=4,d4=8,d5=9,d6=10,d7=11;//контакты для подключения ЖК дисплея

LiquidCrystallcd(rs,en,d4,d5,d6,d7);

Далее внутри функции setup мы инициализируем ЖК дисплей и показываем на нем приветственное сообщение “Arduino Wattmeter”, ждем 2 секунды, а потом очищаем экран дисплея.

Arduino

void setup() {
lcd.begin(16, 2); //инициализируем ЖК дисплей 16х2
lcd.print(» Arduino Wattmeter»); //приветственное сообщение на первой строчке
lcd.setCursor(0, 1);
lcd.print(«-Circuitdigest»); //приветственное сообщение на второй строчке
delay(2000);
lcd.clear();
}

1
2
3
4
5
6
7
8

voidsetup(){

lcd.begin(16,2);//инициализируем ЖК дисплей 16х2

lcd.print(» Arduino Wattmeter»);//приветственное сообщение на первой строчке

lcd.setCursor(,1);

lcd.print(«-Circuitdigest»);//приветственное сообщение на второй строчке

delay(2000);

lcd.clear();

}

Внутри главной функции main мы будем использовать функцию analogread для считывания значений напряжения с аналоговых контактов A3 и A4. Плата Arduino имеет 10 битный АЦП (аналогово-цифровой преобразователь) поэтому на его выходе диапазон возможных значений составляет 0-1023. Это значение потом конвертируется в диапазон 0-5V с помощью его умножения на (5/1023). Поскольку в аппаратной части проекта мы преобразуем истинное значение напряжения из диапазона 0-24V в диапазон 0-5V и истинное значение тока из диапазона 0-1A в диапазон 0-5V. Поэтому в программе мы должны использовать умножитель чтобы конвертировать значения с выхода АЦП в истинные значения напряжения и тока. Коэффициенты для этого умножения можно теоретически рассчитать либо с помощью формул, описанных в разделе статьи «работа схемы», либо практически, зная значения измеряемых токов и напряжений. Второй подход представляется более точным, поэтому мы использовали именно его и у нас с его помощью получились коэффициенты умножения 6.46 и 0.239.

Arduino

float Voltage_Value = analogRead(Read_Voltage);
float Current_Value = analogRead(Read_Current);

Voltage_Value = Voltage_Value * (5.0/1023.0) * 6.46;
Current_Value = Current_Value * (5.0/1023.0) * 0.239;

1
2
3
4
5

floatVoltage_Value=analogRead(Read_Voltage);

floatCurrent_Value=analogRead(Read_Current);

Voltage_Value=Voltage_Value*(5.01023.0)*6.46;

Current_Value=Current_Value*(5.01023.0)*0.239;

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

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