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


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

Внешний вид вольтметра переменного тока на Arduino Uno

Создание цифрового вольтметра значительно проще создания аналогового вольтметра поскольку в случае аналогового вольтметра нам будут необходимы уверенные знания в таких физических параметрах как крутящий момент, потери на трение и т.д. В то время как для создания цифрового вольтметра нам будет нужен просто ЖК дисплей или даже экран вашего компьютера (в нашем рассматриваемом случае) чтобы вывести измеренное значение напряжения. Также на нашем сайте вы можете посмотреть проект цифрового вольтметра от 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 представлена на следующем рисунке.

Схема вольтметра переменного тока на Arduino UnoВ схеме необходимо сделать следующие соединения:

  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.

Симуляция работы вольтметра при входном напряжении 311 В

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

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

Симуляция работы вольтметра при входном напряжении 285 В

Моделирование производилось для различных величин входного напряжения – от 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) ; // выводим значение напряжения на входе схемы

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

Далее приведен полный текст программы.

Видео, демонстрирующее работу схемы

(1 голосов, оценка: 5,00 из 5)
Загрузка...
7 848 просмотров

Комментарии

Вольтметр переменного тока на Arduino Uno — 7 комментариев

  1. Ну и здоровый же трансформатор. Таким вольтметром убить можно. Можно его заменить на что то полегче, например на трансформатор из зарядки для телефона?

  2. Пожалуйста, можете прикрепить файл моделирования работы схемы в Proteus?

    • К сожалению не могу. В Proteus мы эту схему не моделировали - ее моделировали авторы проекта с иностранного сайта

  3. Пожалуйста, можете объяснить расчет номиналов резисторов для делителя в данном случае? И какое выходное напряжение с него получается тут при входном, например, 220 В?
    Еще на рисунке не увидел запитывание Ардуино. Или он на внешнем обычном питании тут, а схемное используется только для измерения?

  4. Термин RMS тут совершенно не к месту. Читатели могут подумать что RMS так легко измерить. Это амплитудное значение, не имеющее к RMS отношения,потому что в сетях "чистой" синусоиды не найдете. Тем более не уместно приводить десятые доли вольт, которых нет.

    • Валерий, статья является переводом с иностранного сайта, у них термин RMS достаточно широко используется. Не буду вступать с вами в полемику по поводу сложности его измерения, но у меня нет сомнений, что приведенный здесь проект вольтметра является рабочим. Конечно, не стоит ждать от него точности как у профессиональных вольтметров (хотя бы потому что разрядность АЦП у Ардуино не очень высокая для проведения профессиональных измерений чего либо в принципе), но, тем не менее, свою функцию измерения напряжения он выполняет (пусть хотя бы с небольшой погрешностью).

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

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