Меню

Датчик переменного напряжения ардуино

Вольтметр переменного тока на Arduino Uno

В этом проекте мы рассмотрим создание вольтметра переменного тока на основе платы Arduino Uno, которым можно будет измерять напряжение переменного тока в вашей квартире. Выводить измеренное напряжение мы будем в окне монитора последовательной связи (serial monitor) Arduino IDE.

Создание цифрового вольтметра значительно проще создания аналогового вольтметра поскольку в случае аналогового вольтметра нам будут необходимы уверенные знания в таких физических параметрах как крутящий момент, потери на трение и т.д. В то время как для создания цифрового вольтметра нам будет нужен просто ЖК дисплей или даже экран вашего компьютера (в нашем рассматриваемом случае) чтобы вывести измеренное значение напряжения. Также на нашем сайте вы можете посмотреть проект цифрового вольтметра от 0 до 25 В на микроконтроллере AVR.

Необходимые компоненты

  1. Плата Arduino Uno (купить на AliExpress).
  2. Трансформатор 12-0-12.
  3. Диод 1N4007 (купить на AliExpress).
  4. Конденсатор 1 мкФ (купить на AliExpress).
  5. Резисторы 10 кОм, 4,7 кОм (купить на AliExpress).
  6. Полупроводниковый стабилитрон 5v (диод Зенера — Zener diode) (купить на AliExpress).
  7. Соединительные провода.

Работа схемы

Схема рассматриваемого нами цифрового вольтметра на основе платы Arduino представлена на следующем рисунке.

В схеме необходимо сделать следующие соединения:

  1. Соедините высоковольтную часть трансформатора (220V) с источником напряжения, а его низковольтную часть (12v) — с делителем напряжения в схеме.
  2. Соедините резистор 10 кОм последовательно с резистором 4,7 кОм. Убедитесь в том, что на вход схемы напряжение будет поступать с именно с резистора 4,7 кОм (не перепутайте резисторы).
  3. Соедините диод как показано на схеме.
  4. Подсоедините конденсатор и стабилитрон как показано на схеме.
  5. Соедините отрицательный вывод диода с контактом A0 платы Arduino.

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

Зачем нужен делитель напряжения

Поскольку мы используем трансформатор 220/12 это значит что на его низковольтной стороне будет напряжение 12 В, которое не подходит для питания платы Arduino (не подходит в качестве ее входного напряжения). Поэтому мы и используем делитель напряжения чтобы получить подходящее напряжение для платы Arduino.

Зачем нужны диод и конденсатор

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

Но напряжение на выходе диода не будет “гладким” (ровным) и будет содержать большие пульсации, которые нежелательно (в нашем случае) подавать на аналоговый вход платы Arduino. Поэтому в схему и включен конденсатор чтобы сглаживать пульсации напряжения на выходе диода.

Читайте также:  Относительная погрешность вольтметра при напряжении в сети

Назначение стабилитрона

Можно повредить плату Arduino если на ее контакт подать напряжение более 5 В. Поэтому, чтобы напряжение на контакте Arduino не превысило 5 В, в схеме и используется стабилитрон.

Принцип работы вольтметра переменного тока на основе Arduino

Принцип работы нашего проекта составляют следующие действия:

  1. Входное высоковольтное напряжение понижается до напряжения примерно 12 В, приемлемого для работы низковольтных схем.
  2. С выхода делителя напряжения на резисторах мы получаем напряжение, пригодное (по номиналу) для подачи на контакт платы Arduino. Максимальное измеряемое схемой напряжение мы получим с помощью ее симуляции (см. ниже).
  3. Поступающее напряжение (аналоговое) поступает на аналоговый контакт A0 платы Arduino. С помощью аналогово-цифрового преобразования (АЦП), доступного на контакте A0, это входное напряжение преобразуется в число от 0 до 1023. 0 В будет соответствовать 0, а 5 В – 1023.
  4. Плата Arduino конвертирует это значение с выхода АЦП в соответствующее значение напряжения на входе схемы (формула приведена ниже в статье).

Симуляция работы схемы

Моделирование работы схемы было произведено в симуляторе Proteus.

Нахождение максимального входного напряжения осуществлялось методом проб.

При пиковом максимальном переменном напряжении равном 440 В (311 r.m.s, Rated Maximum Sinusoidal — Максимальная (предельная) синусоидальная мощность) напряжение на входе контакта A0 было равно 5 Вольтам, то есть максимуму. То есть наша схема может измерять максимум 311 r.m.s напряжения (440 В пикового напряжения).

Моделирование производилось для различных величин входного напряжения – от 220 r.m.s до 440v.

Исходный код программы

Значение, получаемое с контакта A0, мы будем записывать в переменную m:

m=pinMode (A0,INPUT) ; // режим работы контакта a0 – на ввод данных

Как следует из результатов симуляции схемы, максимальное напряжение 5 В на контакте A0 (1023 после преобразования) достигается при напряжении на входе схемы равном 311 В. То есть значение с выхода АЦП 1023 будет соответствовать 311 Вольтам на входе схемы. Следовательно, чтобы рассчитать значение напряжения на входе схемы, можно использовать формулу:

n=(311/1023)*m Вольт или n=(m*0.304177).

Далее вычисленное по этой схеме измеренное значение напряжения на входе схемы мы будем выводить в окне монитора последовательной связи (serial monitor). Более подробно все эти процессы показаны на видео, приведенном в конце статьи.

Serial.print(» analog input «) ; // выводим строку “analog input” в окно монитора последовательной связи
Serial.print(m);// выводим значение напряжения на входе контакта A0

Далее выводим измеренное значение переменного напряжения на входе схемы.

Читайте также:  Напряжение отпирания полупроводникового диода что это

Serial.print(» ac voltage «) ; // выводим строку “ac voltage” в окно монитора последовательной связи
Serial.print(n) ; // выводим значение напряжения на входе схемы

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

Источник

Датчик переменного напряжения ардуино

Главное меню

Последние статьи

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

Самое читаемое

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

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

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

Д атчик ACS712 поставляется в корпусе SOIC8 и предназначен для поверхностного монтажа. Выводы IP+ и IP- клеммы для измерения тока. FILTER — вывод для подключения конденсатора. VIOUT — аналоговый выход. VCC — питание датчика 5В. GND — земля.

Действие датчика основывается на эффекте Холла. Вблизи точного линейного датчика Холла расположена медная проводящая дорожка (на концах выводы IP+ и IP-) . Толщина медной дорожки обеспечивает выживание устройства при 5-кратном превышении тока. Её сопротивление 1,2 мОм. Протекающий через эт у дорожку ток , генерирует магнитное поле, которое воспринимается схемой Холла и преобразуется в пропорциональное напряжение.

Семейство датчиков ACS712 состоит из 3-х чипов на разные диапазоны измерения тока: 5 А ( ACS712ELCTR-05B-T ) , 20 А ( ACS712ELCTR-20A-T ) и 30А мпер ( ACS712ELCTR-30A-T ) .

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

При питании датчика от 5 вольт, если к его измеряемым клеммам не будет подключена нагрузка, выходное напряжение датчика будет равно 2,5В (рассчитывается по формуле VCC/2, где VCC — напряжение питания датчика) . 2,5В — это базовое напряжение датчика, которое нужно вычитать из измеренного напряжения.

Чувствительность датчик ов (Sens) изменяется в зависимости от диапазона измерения силы тока микросхемы и зависит от напряжения питания. С увеличением диапазона — уменьшается чувствительность. На графиках ниже представлены графики чувствительности в зависимости от диапазона измеряемого тока:

ACS712ELCTR-05B-T имеет чувствительность 185 мВ/А

ACS712ELCTR-20A-T чувствительность 100 мВ/А

ACS712ELCTR-30A-T чувствительность 66 мВ/А

Датчик облада е т низкой погрешностью ±1% , при температуре от 25 до 150°С. Это достигается благодаря его калибр овке на стадии производства . В процессе этой операции измеряется погрешность чувствительности и выходное напряжение в рабочей точке. Эти параметры измеряются при комнатной температуре и температуре в диапазоне 85…150°С. Данные заносятся в специальную память.

Читайте также:  Стабилизатор напряжения lider ps800w

Среди прочих характеристик:
— Работа в диапазоне температур -40…85°C.
— Полоса пропускания 80 кГц.
— Почти нулевой магнитный гистерезис.

Подключение датчика ACS712 к Arduino.

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

Принципиальная схема модуля. К разъёму Р1 подключается измеряемая цепь, к разъёму Р2 — микроконтроллер (в примере Ардуино). Измеряемая цепь изолирована от выводов микроконтроллера. Среднеквадратичное минимальное напряжение изоляции между контактами 1 — 4 и 5 — 8 — 2,1 кВ. Светодтод D1 сигнализирует о питающем напряжении на датчике. Считаю это бесполезной функцией, поскольку в готовых проектах подобные датчики спрятаны в каких то коробках и не находятся на видном месте.

Для подключения к Arduino используется 3 вывода:

К любому аналоговому выводу, например А2

Скетч №1. Считываем значение с аналогового выхода ACS712:

Как уже упоминал выше, при нулевом значении тока на клеммах датчика, напряжение на его аналоговом выходе VIOUT равняется половине напряжения питания датчика (2,5В). В первом примере ничего не будем подключать к клеммам, что бы создать нагрузку в 0Ампер.

int analogPin = 2;
int Value = 0;
void setup()
<
Serial.begin(9600);
Value = analogRead(analogPin);
>

Serial.print(«Value = » );
Serial.println(Value);
delay(1000);
>

В первой строке скетча прописываем аналоговый пин, к которому подключаем датчик,в примере 2 (A2). В строке «Value = analogRead(analogPin);» с помощью функции «analogRead» считываем значение с аналогового пина в переменную «Value«. Далее, с помощью «Serial.println» выводим содержимое переменной на дисплей, которое можно посмотреть в мониторе последовательного порта Arduino IDE.

Результатом выполнения скетча будет повторяющаяся запись со значением 512. Что такое 512?

Вспоминаем, что каждый из 6 каналов аналого-цифрового преобразователя Arduino — 10 битный, это значит, что входное напряжение от 0 до 5В, преобразовывается в значения от 0 до 1023. 2,5В будет соответствовать значению 512.

Скетч №2. Вычисляем постоянный ток с помощью ACS712:

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

Для измерения тока в цепи, датчик подключается в разрыв цепи, между нагрузкой и источником питания. В примере, нагрузка — лампочка на 220В.

В завершению сказанному следует отметить что датчики ACS712 в 2017 году были выведены из эксплуатации Allegro Microsystems и взамен предлагаются новые чипы семейства ACS723.

Источник

Adblock
detector