В этом проекте мы создадим интеллектуальную систему защиты и мониторинга переменного напряжения на базе платы Arduino с функциями защиты от пониженного и повышенного напряжения. Мы будем использовать датчик напряжения ZMPT101B для измерения текущего состояния напряжения и отображения его на ЖК-дисплее.
В настоящее время наблюдается много колебаний напряжения в сети переменного тока из-за прерывания большой нагрузки, грома и молнии, а также импульсов переключения. Это может легко повредить электронные/электрические детали и иногда привести к пожарам. Неравномерности напряжения являются основными проблемами в отраслях, которые часто повреждают чувствительное электронное оборудование. В большинстве случаев в качестве системы защиты используется MCB, но было бы лучше, если бы мы внедрили нашу собственную систему, которая может быть дешевле и более продвинутой. Более того, система должна иметь пользовательский ввод для защиты от пониженного и повышенного напряжения.
На рынке доступно множество устройств для мониторинга переменного напряжения с функциями защиты от пониженного, нормального и повышенного напряжения. Но они дороги и не могут иметь пользовательский ввод. Цель этого проекта — устранить все эти недостатки и разработать защиту и мониторинга электрооборудования от повышенного и пониженного напряжения переменного тока с использованием Arduino в качестве контроллера по низкой цене. Таким образом, мы можем использовать датчик напряжения ZMPT101B и Arduino для измерения переменного напряжения, и на основе обнаружения пониженного и повышенного напряжения реле может отключать всю систему.
Необходимые компоненты
- Плата Arduino Nano (купить на AliExpress).
- ЖК дисплей 16x2 (купить на AliExpress).
- Датчик напряжения ZMPT101B.
- Модуль реле 5 В (купить на AliExpress).
- Транзистор BC547.
- Диод 1N4007.
- Резистор 10К.
- Резистор 1К.
- Резистор 220 Ом.
- Светодиод 5мм (многоцветный) - 3 шт.
Реклама: ООО "АЛИБАБА.КОМ (РУ)" ИНН: 7703380158
Что такое повышенное и пониженное напряжение?
Перенапряжения — это напряжения, превышающие нормальные или номинальные значения, которые вызывают повреждение изоляции электроприборов, что приводит к коротким замыканиям. Если быть точнее, это происходит, когда напряжение питания составляет 10 процентов и выше номинального напряжения. Эти условия могут быть опасными. В зависимости от продолжительности событие перенапряжения может быть временным — скачок напряжения — или постоянным.
Аналогично, пониженное напряжение происходит, когда среднее напряжение оборудования падает ниже номинального значения напряжения. Частое пониженное напряжение может привести к ухудшению производительности и надежности оборудования.
Блок-схема проекта
На следующем рисунке представлена простая структурная схема системы мониторинга и защиты от пониженного и повышенного напряжения переменного тока на основе платы Arduino.
В Азии и большинстве частей света обычное напряжение питания переменного тока составляет 220-240 В. Существует допуск +2% для колебаний напряжения. В случае превышения допустимого напряжения обнаруживается перенапряжение. Мы также установили пониженное напряжение на уровне 190 В в этой схеме. И для тестирования с изменениями пониженного и повышенного напряжения мы использовали 220-вольтовый вентиляторный диммер переменного тока. Вы можете сделать свой собственный диммер переменного тока, обратившись к соответствующему проекту на нашем сайте.
На приведенной выше блок-схеме сеть переменного тока 200 В подается непосредственно на датчик напряжения ZMPT101B. В этом проекте входное напряжение изменяется с помощью диммера переменного тока вентилятора вместо прямого источника питания 220 В. Выход ZMPT101B представляет собой аналоговое напряжение ниже 5 В, которое можно легко подать на аналоговый вывод Arduino. Плата Arduino Nano и реле питаются от источника питания 5 В или адаптера постоянного тока 5 В. Нагрузку можно подключить через выход реле.
Мы использовали ЖК-дисплей 16×2 для отображения значения напряжения, а также состояний пониженного, нормального и повышенного напряжения. Всякий раз, когда напряжение превышает 220 В, достигается состояние повышенного напряжения, и реле отключает все электроприборы. На ЖК-дисплее отобразится сообщение о повышенном напряжении. Аналогично, если напряжение находится в диапазоне 220–190 В, реле включается, и на ЖК-дисплее отображается нормальное напряжение. В случае, если напряжение падает ниже 190 В, достигается состояние пониженного напряжения. Реле отключит систему, и на ЖК-дисплее отобразится сообщение о пониженном напряжении.
Расчет времени срабатывания
Время срабатывания рассчитывается по формуле:
t = Множитель времени
V = Напряжение на A0
Vs = Напряжение источника
Схема проекта
Схема системы защиты и контроля переменного напряжения на Arduino и датчике ZMPT101B представлена на следующем рисунке.
Подключите выводы 4, 6, 11, 12, 13 и 14 ЖК-дисплея 16×2 к выводам D3, D4, D5, D6, D7 и D8 Arduino. Используйте потенциометр 10 кОм на выводе 3 ЖК-дисплея для регулировки контрастности ЖК-дисплея. Подайте 5 В на выводы 2 и 15 ЖК-дисплея. Подключите выводы 1, 5 и 16 ЖК-дисплея к земле платы Arduino.
Подключите зеленый и желтый светодиоды к цифровым контактам D11 и D12 Arduino. Светодиод LED1 предназначен для индикации питания. Для управления реле мы используем транзистор BC547 в качестве переключателя. Диод 1N4007, который находится параллельно реле, служит защитой от обратного напряжения. Вы можете подключить несколько нагрузок к выходу реле. Нагрузкой могут быть лампочки переменного тока или любые бытовые приборы, работающие при напряжении 220 В.
ZMPT101B — это аналоговый датчик. Поэтому подключите аналоговый вывод датчика к выводу Arduino A0. Вы можете запитать ZMPT101B, релейный модуль, используя вывод 5 В Arduino. ZMPT101B принимает входное напряжение переменного тока 220 В или выше в нашем случае. Для проверки схемы защиты контроля перенапряжения переменного тока Arduino наилучшим вариантом является диммер переменного тока.
Проект печатной платы
Если вы не хотите собирать схему на перфорированной плате, а хотите печатную плату для проекта, то вот печатная плата для вас. Я использовал EasyEDA для проектирования печатной платы. Печатная плата для системы мониторинга переменного напряжения выглядит примерно так, как показано ниже.
Файл Gerber для изготовления данной печатной платы вы можете скачать по следующей ссылке.
Проект размещения компонентов на этой печатной плате показан на следующем рисунке.
Калибровка датчика напряжения ZMPT101B
Изначально датчик напряжения ZMPT101B требует калибровки, поскольку он не поставляется предварительно откалиброванным. Сначала загрузите следующий код на плату Arduino.
1 2 3 4 5 6 7 8 9 10 |
void setup() { Serial.begin(9600); } void loop() { Serial.println(analogRead(A0)); delay(100); } |
После загрузки кода откройте Serial Plotter. Если Serial Plotter не показывает синусоиду, поверните потенциометр, чтобы откалибровать датчик. Как только он покажет правильную синусоиду, вы можете считать это правильной калибровкой.
Исходный код программы
Ниже приведен код для системы защиты от перенапряжения и понижения переменного тока с использованием Arduino. Скопируйте код и вставьте его в редактор Arduino. Выберите плату Arduino Nano из Board Manager, а также правильный COM-порт. Затем вы можете загрузить код.
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 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
#include <Filters.h> #include <LiquidCrystal.h> const int rs = 3, en = 4, d4 = 5, d5 = 6, d6 =7, d7 = 8; LiquidCrystal lcd(rs, en, d4, d5, d6, d7); float testFrequency = 50; int Sensor = 0; int relay = 10; int yellow = 12; int green = 11; float intercept = 0.7; float slope = 0.04; float current_Volts; unsigned long printPeriod = 1000; unsigned long previousMillis = 0; void setup() { lcd.begin(16, 2); pinMode(relay, OUTPUT); pinMode(yellow, OUTPUT); pinMode(green, OUTPUT); lcd.print("Voltage:"); delay(1000); } void loop() { RunningStatistics inputStats; while ( true ) { Sensor = analogRead(A0); inputStats.input(Sensor); if ((unsigned long)(millis() - previousMillis) >= printPeriod) { previousMillis = millis(); current_Volts = intercept + slope * inputStats.sigma(); current_Volts = current_Volts * (40.3231); lcd.setCursor(9, 0); lcd.print(current_Volts); lcd.print("V"); } if ( (current_Volts > 0) && (current_Volts < 190) ) { lcd.setCursor(0, 1); lcd.print("Under Voltage"); digitalWrite(relay, LOW); digitalWrite(yellow, LOW); digitalWrite(green, HIGH); } if ( (current_Volts >= 190) && (current_Volts <= 220) ) { lcd.setCursor(0, 1); lcd.print("Normal Voltage"); digitalWrite(relay, HIGH); digitalWrite(yellow, LOW); digitalWrite(green, LOW); } if ( current_Volts > 220 ) { lcd.setCursor(0, 1); lcd.print("Over Voltage"); digitalWrite(relay, LOW); digitalWrite(yellow, HIGH); digitalWrite(green, LOW); } } } |
Тестирование работы проекта
После загрузки кода схема готова к тестированию. В нормальных условиях, т.е. когда напряжение находится в диапазоне от 190 В до 220 В, нагрузка включается и система продолжает работать.
Если напряжение превышает 220 В, нагрузка отключается и на ЖК-дисплее отображается сообщение о перенапряжении.
Если напряжение падает ниже 190 В, нагрузка отключается и на ЖК-дисплее отображается сообщение «Низкое напряжение».