Тази статия показва различни опции за управление на релета в скици на arduino. Примерите са тествани на Arduino Uno, но могат лесно да се приложат и към други Arduino платки: Uno, Mega, Nano.

Електрическа схема

AT този примеризползва се стандартен, на който вече са монтирани всички необходими елементи за свързване към Схемата на свързване е много проста: релейният модул се свързва към пин 5 на платката Arduino. В същото време, за простота, дори не можем да свържем реален товар - релето ще щракне с всяка промяна на състоянието, ще чуем тези щраквания и ще разберем, че скицата работи.

Скица за работа с релета

/* * Скица за управление на реле с помощта на arduino * Използвайте реле SONGLE SRD-05VDC * Реле ОТВОРЕНО, когато LOW сигнал е приложен към контролния щифт. * Реле ЗАТВОРЕНО, когато към контролния щифт се приложи сигнал HIGH. * * В този пример ние просто отваряме и затваряме релето на всеки 5 секунди. * * PIN_RELAY съдържа номера на извода, към който е свързано релето, което ще управляваме * * Във функцията за настройка задайте първоначалната позиция на релето (затворено) * Ако товар (например електрическа крушка) е свързан към релето, след стартиране на скицата, той ще се включва и изключва на всеки 5 секунди * * За да промените периода на мигане, трябва да промените параметъра на функцията delay(): като зададете 1000 милисекунди, получавате 1 секунда на забавяне * * В реални проекти релето се включва в отговор на откриване на всякакви външни събития чрез свързване на сензори * */ #define PIN_RELAY 5 // Дефиниране на щифта, използван за свързване на релето // В тази функция дефинирайте първоначалните настройки void setup() ( pinMode(PIN_RELAY, OUTPUT); // Деклариране на щифта на релето като изход digitalWrite(PIN_RELAY, HIGH); // Изключване на релето - изпращане на висок сигнал) void loop() ( digitalWrite(PIN_RELAY) , LOW); // Включване на релето - изпращане на забавяне на ниско ниво на сигнала (5000); digitalWrite (PIN_RELAY, HIGH); // Изключване на релето - изпращане на голямо забавяне на сигнала (5000); )

Скица за управление на реле със сензор за движение

В реални проекти промяната в състоянието на релето трябва да се случи в отговор на някаква реакция на околната среда. Например, в отговор на сигнал от задействан сензор за движение, можете да включите светлината, като затворите веригата с помощта на реле. В тази скица ще разгледаме такава опция за свързване.

Схема на свързване на реле

Трябва да се разбере, че в реални проекти те изобщо се справят без ардуино - просто чрез свързване на изхода на сигнала на сензора към релето.

Пример за скица

В този пример ще добавим проверка на състоянието на PIR към цикъла с помощта на функцията digitalRead(). Ако получим ВИСОКО, това означава, че сензорът се задейства и извършваме действие - включваме релето. Ако закрепите крушка към него, той ще светне. Но, както в предишния пример, можете просто да слушате за кликвания.

/* Скица за управление на реле Arduino с помощта на PIR сензор PIN_RELAY съдържа номера на щифта, към който е свързано релето, което ще управляваме PIN_PIR съдържа номера на щифта със свързания PIR сензор Във функцията за настройка задайте първоначалния позиция на релето (затворено) В тялото на функцията за цикъл проверете за наличие на сигнал на високо ниво от сензора с помощта на функцията digitalRead За отстраняване на грешки в текущата стойност на сензора, покажете текущата стойност на сензора в монитора на порта */ #define PIN_RELAY 8 // Дефиниране на щифта, използван за свързване на релето #define PIN_PIR 5 // Дефиниране на щифта, използван за свързване на PIR сензора / / В тази функция ние дефинираме първоначалните настройки void setup() ( Serial.begin (9600); pinMode(PIN_RELAY, OUTPUT); // Декларирайте щифта на релето като изход digitalWrite(PIN_RELAY, HIGH); // Изключете релето - изпратете висок сигнал) void loop() ( int val = digitalRead(PIN_PIR) ); // Прочетете стойността от сензора за движение в отделна променлива if (val == HIGH) ( Serial. println("Sensor triggered"); digital Запис (PIN_RELAY, LOW); // Включване на релето - изпращане на ниско ниво на сигнала) else ( digitalWrite(PIN_RELAY, HIGH); // Изключване на релето - изпращане на високо ниво на сигнала) delay(1000); // Проверявайте стойностите веднъж на секунда. )

Днес ще ви разкажа за двуканален релеен модул с оптична изолация, който съдържа две електромеханични релета с максимален ток до 10А (в действителност те не могат да издържат толкова), а превключването се извършва чрез напрежение от 5V.

Технически спецификации

Захранващо напрежение: 5V
Консумация на ток: 30 mA ... 40 mA
Сигнал за активиране: 0 V (ниско ниво)
Оптична изолация: да
Брой релета: 2 бр
Тип реле: електромеханично
Номинален ток на натоварване: 10 A
Комутирано напрежение: 250VAC, 30VDC
Размери: 50.5mm x 32.5mm x 17m

Главна информация

Този модул съдържа два канала на SONGLE реле модел SRD-05VDC-SL-C, превключването се извършва с помощта на напрежение от 5V. Схематично модулът е специално проектиран да се управлява от слаботокови платки, като arduino, raspberry и т.н., които могат да извеждат ток не повече от 40 mA на изхода, като за защита е добавен оптрон EL817, който осъществява галванична изолация. електрическа схема 2-каналният релеен модул е ​​показан на фигурата по-долу.


Двуканалният релеен модул се състои от две независими части с изключение на захранването Vcc и GND. Когато е свързан към напрежение, изходът In1 е във високо състояние (log 1), за да превключите първото реле, е необходимо да прехвърлите изхода In1 в отрицателно състояние (log 0), т.е. късо съединение към земята. През светодиода, който се намира в оптрона, ще започне да тече ток и той ще светне, след което ще се отвори фототранзисторът, през който също ще започне да тече ток към базата на транзистора Q1, който ще се отвори и релето ще започне работа. Втората част на релето работи по подобен начин, модулът може да се управлява и от отделно захранване, трябва да премахнете джъмпера и да свържете захранването към JD-VCC и GND.

Присвояване на ПИН
Модулът съдържа четири конектора, два слаботокови J1, J1 и два захранващи K1 и K2, предназначението на всеки конектор и изход може да се види на фигурата по-долу.


Конектор J1 се използва за управление на релето, разстоянието между щифтовете е 2,54 mm (PLS), конектор J2 се използва за свързване на външно захранване, по подразбиране е инсталиран джъмпер между контактите JD-VCC и VCC.

размери
Модулът има четири монтажни отвора, всеки с диаметър 4 mm, като размерите могат да се видят на фигурата по-долу.


Необходими подробности:
Arduino UNO R3 x 1 бр
DuPont тел х 1бр
USB кабел 2.0A-B x 1 бр
Релеен модул 2-канален - 5V, 10A, 250V (lOW, OPTO) x 1 бр.

Връзка:
Първо свържете щифтовете VCC и GND към щифтовете 5V и GND на Arduino. Пинове IN1 и IN2 могат да бъдат свързани към всеки щифт, в нашия случай те са свързани към цифрови щифтове 5 и 6. Използвам светодиоди като пример, диаграмата на свързване е показана на фигурата по-долу:


/* Тествано на Arduino IDE 1.8 Дата на теста 28.12.2016 г. */ int in1 = 5; // Указва, че изходът на релето In1 е свързан към релейния цифров изход 5 int in2 = 6; // Посочете, че релеен пин In2 е свързан към релеен цифров пин 6 void setup() ( pinMode(in1, OUTPUT); // Задайте пин 5 като изход pinMode(in2, OUTPUT); // Задайте пин 6 като изход) void loop () ( digitalWrite(in1, HIGH); // Изключете закъснението на релето (2000); // Изчакайте 2s digitalWrite(in1, LOW); // Включете закъснението на релето (2000); // Изчакайте 2s digitalWrite (in2, HIGH) ; // Изключете закъснението на релето (2000); // Изчакайте 2 s digitalWrite (in2, LOW); // Включете релето)

Тестван на Arduino IDE 1.8

Дата на тестване 28.12.2016г

int in1 = 5; // Показва, че изходът на релето In1 е свързан към релейния цифров изход 5

int in2 = 6; // Посочваме, че изходът на релето In2 е свързан към релейния цифров изход 6

void setup()

pinMode (in1, OUTPUT) ; // Задайте пин 5 като изход

pinMode (in2, OUTPUT) ; // Задайте пин 6 като изход

void loop()

digitalWrite(in1 , HIGH ) ; // Изключете релето

забавяне (2000); // Изчакайте 2 секунди

digitalWrite (in1, LOW); // Включете релето

забавяне (2000); // Изчакайте 2 секунди

digitalWrite(in2 , HIGH ) ; // Изключете релето

забавяне (2000); // Изчакайте 2 секунди

digitalWrite (in2, LOW); // Включете релето

С помощта на Arduino. Но какво ще стане, ако решим да управляваме устройства, свързани към домакинската мрежа? Нека ви напомня, че дори и малък настолна лампазахранван от източник променлив токс напрежение 220 волта. Обикновен полеви транзистор, който използвахме във веригата с двигателя, вече не е подходящ. За да контролираме мощен товар и дори с променлив ток, използваме реле. Това е такова електромеханично устройство, което механично затваря веригата на натоварване с помощта на електромагнит. Нека да разгледаме вътрешностите: Принципът на работа на релето е следният. Прилагаме напрежение към електромагнитната бобина. В намотката се появява поле, което привлича металното краче. На свой ред кракът механично затваря контактите на товара. Релето има две основни приложения. Първо, можем да приложим само 5 волта към бобината и да затворим веригата на много мощен товар. Например релето, използвано в уроците по Arduino, може да включи хладилник или пералня. Второ, някои видове релета могат едновременно да затварят и отварят няколко различни вериги с различни напрежения наведнъж.

В този урок няма да работим с едно реле, а с цял релеен модул. Освен самото реле, модулът съдържа и оптоелектронна изолация с транзистор, която предпазва изходите на Arduino от пренапрежения на бобината.
Един релеен модул има само три контакта. Нека ги свържем по следния начин. Между другото, релейният вход е обърнат. Това означава, че високото ниво на контакт в ще изключи бобината на релето и ниско ниво ще го включи.

електрическа схема


Външен вид на оформлението


2. Програма за Arduino

Да пишем проста програма, който ще включи лампата за 3 секунди и след това ще я изключи за 1 секунда. const int relPin = 3; void setup() ( pinMode(relPin, OUTPUT); ) void loop() ( digitalWrite(relPin, HIGH); delay(1000); digitalWrite(relPin, LOW); delay(3000); ) Заредете програмата Arduino. Сега свързваме захранването към лампата и към релето. Накрая захранваме контролера.

3. Автолампа или улична лампа

С помощта на контролер, реле и светлинен сензор можете да направите проста автоматична лампа. Контролерът ще включи лампата, когато нивото на светлина върху сензора падне под зададената стойност. Като сензор използваме готов модул, базиран на . Нека свържем и трите устройства по следната схема.

електрическа схема


Външен вид на оформлението


4. Автоматична светлинна програма

Аналоговият изход на сензора дава стойности в диапазона от 0 до 1023. Освен това 0 е за максимално ниво на светлина и 1023 за пълна тъмнина. Първо трябва да решим при какво ниво на светлина да включим лампата и при какво да изключим. В нашата лаборатория на дневна светлина сензорът показва стойност L = 120, а през нощта около L = 700. Ще включим релето при L > 600 и ще го изключим при L< 200. Вспомним как и напишем программу. const int photoPin = A5; const int relPin = 3; void setup() { pinMode(photoPin, INPUT); pinMode(relPin, OUTPUT); } void loop() { if(analogRead(photoPin) < 200) digitalWrite(relPin, HIGH); if(analogRead(photoPin) >600) digitalWrite(relPin, LOW); ) Зареждаме програмата на Arduino и провеждаме експеримент. Най-добре е да правите това през нощта.

Задачи

1. Музикална щафета. Както знаете, електромеханичното реле прави щракване, когато се задейства. Опитайте да използвате това, за да изсвирите проста мелодия. 2. Управление на двигателя. С две три-щифтови релета, като това в този урок, можете да изградите верига за промяна на посоката на въртене на двигателя.

/*
*
* Експериментален комплект ArduinoKit
* Програмен код за експеримент № 13: скица 13
*
* Реле
*
* Написано за http://site
*
*
* Помощ от общността на Arduino.
* Посетете http://www.arduino.cc
*
*
*
* ИЗПОЛЗВАНЕ НА ТРАНЗИСТОР ЗА УПРАВЛЕНИЕ НА РЕЛЕ
*
* Релето е електрически управляван механичен превключвател.
* Релето може да се справи с много повече напрежение и ток от портовете
* Arduino, или да кажем транзистор, включен в комплекта. Ако
* искате да използвате Arduino за управление лампа с нажежаема жичка,
* кафемашина или др електронно устройствоработи на 220V,
* Релето е чудесен начин да направите това.
* Релето може лесно да се справи с превключване, превключване, голямо
* напрежение, много по-високо от това, което може да предложи портът Arduino.
* Ще използваме транзистор за задвижване на реле,
* точно както използвахме транзистора за задвижване
* двигател в експеримент № 12 (Стартов комплект, програматор и роботика).
*
* Релето се състои от намотка, проводник, метална сърцевина и
* превключване на контакти. Когато се подаде захранване към бобината, сърцевината
* магнетизира се и привлича котвата (лоста), като по този начин
* превключва контактите. Тъй като контактите на релето са напълно изолирани
* от Arduino можете безопасно да използвате релето за управление
* опасно напрежение, НО! Моля, направете го, ако вече сте
* знаят и знаят как да работят безопасно с високо напрежение!
*
* Релето има три контакта, - COM (общ), NC (нормално затворен)
* и НЕ (нормално отворен). Когато релето е изключено, COM изход
* свързан към NC (нормално затворен) терминал и когато е активиран,
* COM щифтът е свързан към NO (нормално отворен).
*
* Този код е много прост - включва релето за една секунда, след което
* изгасва, изчаква секунда и се включва отново, както в експеримента с мигане
* LED!
*
* Свързване на оборудването:
*
* Транзистор:

* Транзисторът има три изхода. Гледайки плоската страна
* щифтове надолу, разпределението на щифтовете е както следва (вляво
* вдясно): КОЛЕКТОР, БАЗА, ЕМИТЕР.
*
* Свържете BASE чрез резистор 1K към цифров порт 2.
*
* Свържете EMITTER към земята (GND).
*
* Релейна бобина:
*
* Релето има контакти на бобина, които могат да се използват за управление
* релета и контакти за управление на товара. на върха или
* долната част на релето трябва да има картинка или символ,
* показване на контактите на бобината.
*
* Свържете едната страна на намотката към колектора на транзистора.
*
* Свържете другата страна на намотката към захранване от +5 волта.
*
* Диод:
*
* Релето има намотка, която захранвате, за да
* дръпнете котва. Когато захранването е изключено, бобината генерира
* скок на напрежението, който може да повреди транзистора. Това
* Диодът предпазва транзистора от пренапрежение.
*
* Свържете проводника на диода, CATHODE, към захранването +5 волта.
*
* Свържете другия край на диода, АНОДА, към КОЛЕКТОРА на транзистора.
*
* Релейни и LED контакти:
*
* Релейните контакти могат да превключват всичко, което може да се включи или
* изключете, но в този урок ще използваме релейни контакти
* за включване и изключване на светодиодите.
*
* Свържете общия изход на релейната контактна група COMMON към резистора
* 330 ома. Вторият изход на резистора е +5 волта.
*
* Свържете изхода на релейната контактна група NC (нормално затворена)
* към положителен (дълъг) изход LED 1.
*
* Свържете изхода на релейната контактна група NO (нормално отворен)
* към положителния (дълъг) изход на втория светодиод - LED 2.
*
* Свържете отрицателните проводници (късите крака) на двата светодиода
* към земята (GND).
*
*
*
* Написан коментар към програмата
* 26 ноември 2014 г
* специално за http: // сайт
*
*
*/
const int relayPin = 2; // порт за управление на транзистора
const int timeDelay = 1000; // забавяне в ms, между вкл. и изключено.

// Можете да намалите времето на забавяне, но имайте предвид това
// реле, битие механично устройство, ще се износи
// по-бързо, ако честотата на превключване е твърде висока.
void setup()
{
pinMode(relayPin, OUTPUT); // задаване на порт като изходящ
}
void loop()
{
digitalWrite(relayPin, HIGH); // разрешаване на реле

digitalWrite(relayPin, LOW); // изключете релето

забавяне (timeDelay); // пауза 1 секунда

Свързването на мощен товар директно към Arduino, като осветителна лампа или електрическа помпа, няма да работи. Микроконтролерът не осигурява необходимата мощност за работа с такъв товар. Токът, който може да тече през изходите на Arduino, не надвишава 10-15 mA. На помощ идва реле, с което можете да превключите голям ток. Освен това, ако товарът се захранва от променлив ток, например 220v, тогава изобщо не можете да правите без реле. За свързване на мощни товари към Arduino чрез релета обикновено се използват релейни модули.

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

Купих моите едно и четири канални модули на Aliexpress съответно за $ 0,5 и $ 2,09.

Модулно релейно устройство за Arduino, използвайки примера на 4-канален модул HL-54S V1.0.

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

Принципна схема на модула.

За защита на изходите на Arduino от пренапрежения в намотката на релето се използват транзистор J3Y и оптрон 817C. Обърнете внимание, сигналът от щифта вприложен към катода на оптрона. Това означава, че за да може релето да затвори контактите, трябва да приложите към щифтав логично 0 (инвертиран сигнал).

Има и модули, които имат сигнал от извода вприложен към анода на оптрона. В този случай трябва да подадетелогика 1 на щифтв, за да задействате релето.

Мощността на товара, която модулите могат да включват / изключват, е ограничена от релетата, инсталирани на платката.

В този случай се използват електромеханични релета. Songle SRD-05VDC-SL-C, който има следните характеристики:

Работно напрежение: 5 V
Работен ток на бобината: 71 mA
Максимален комутационен ток: 10А
Максимално превключвано постоянно напрежение: 28 V
Максимално превключен AC напрежение : 250V
Работна температура:-25 до +70°C

Релето Songle SRD-05VDC-SL-C има 5 пина. 1 и 2 релейна мощност. Контактна група 3 и 4 са нормално отворени контакти ( НЕ), група за контакти 3 и 5 - нормално затворен NC).

Подобни релета се предлагат в различни напрежения: 3, 5, 6, 9, 12, 24, 48 V. В този случай се използва 5-волтова версия, която ви позволява да захранвате релейния модул директно от Arduino.

Дъската има джъмпер ( JDVcc), за захранване на релето от Arduino или от отделно захранване.

Пинами В1,В2,В3,В4модулът е свързан към цифровите щифтове на Arduino.

Свързване на релеен модул HL-54S V1.0 към Arduino.

Тъй като имаме модул с 5-волтови релета, ще го свържем по тази схема, ще вземем захранване от самия Arduino. В примера ще свържа едно реле, ще използвам крушка 220 V като товар.

За да захранвате релейния модул от Arduino, джъмперът трябва да затвори щифтовете " Vcc" и " JDVcc”, обикновено по подразбиране е инсталиран там.

Ако релето ви не е 5 волта, не можете да захранвате модула от Arduino, трябва да вземете захранване от отделен източник.

Диаграмата по-долу показва как да захранвате модула от отделен източник. Според тази схема трябва да свържете реле, проектирано да се захранва от повече или по-малко от 5 V. За 5-волтови релета тази схема също ще бъде по-предпочитана.

С тази връзка трябва да премахнете джъмпера между щифтовете " Vcc" и " JDVcc". Следващ щифт " JDVcc» свържете се с « + » външно захранване, щифт « Gnd» свържете се с « - " захранване. щифт " Gnd", който в предишната верига беше свързан към щифта" Gnd»Arduino не е свързан в тази верига. В моя пример външното захранване е 5 V, ако вашето реле е проектирано за различно напрежение (3, 12, 24 V), изберете подходящото външно захранване.

Скица за управление на релеен модул чрез Arduino.

Нека качим скица в Arduino, която ще включва и изключва самата крушка (мигаща светлина).

int relayPin = 7;

void setup()(
pinMode(relayPin, OUTPUT);
}

void loop() (
digitalWrite(relayPin, LOW);
забавяне (5000);
digitalWrite(relayPin, HIGH);
забавяне (5000);
}

В редица int relayPin = 7;посочете номера на цифровия щифт Arduinoto, към който щифтът е бил свързан В1 модулно реле. Можете да се свържете с всеки цифров щифт и да го посочите в този ред.

В редица забавяне (5000);можете да промените стойността на времето, в което светлината ще свети и в което ще бъде изгасена.

В редица digitalWrite(relayPin, LOW);указано, когато се прилага логическа нула ( НИСКО), релейният модул ще затвори контактите и лампичката ще светне.

В редица digitalWrite(relayPin, HIGH);указано при прилагане на логическа единица ( ВИСОКО), релейният модул ще отвори контактите и светлината ще изгасне.

Както можете да видите, в линията digitalWrite(relayPin, LOW);ляв параметър НИСКО. Ако релето затвори контактите и светлината светне, тогава щифтът В1трябва да подадете логическа нула, като мен. Ако лампата не свети, качете скицата, в която ще сменим параметъра НИСКОна ВИСОКО.


Резултатът от скицата на видеото.

Сега нека добавим бутон за часовник към веригата и когато щракнете върху него, релейният модул ще включи електрическата крушка.

Свързваме бутона заедно с 10k издърпващ резистор, който няма да позволи на външните пикапи да повлияят на работата на веригата.

Качване на скицата

В редица if(digitalRead(14)==HIGH)задайте номера на цифровия щифт, към който е свързан бутонът. Можете да се свържете с всеки безплатен. В примера този аналогов щифтA0, може да се използва и като цифров 14-пинов.

В редица забавяне (300);стойността е дадена в милисекунди. Тази стойност указва след колко време след натискане или отпускане на бутона трябва да се извършват действия. Това е защита срещу отскачане на контакт.

За информация! Всички аналогови входовеот A0 ( номерирани като 14) до A5 (19), може да се използва като цифров (цифров ШИМ).

В заключение, резултатът от скицата на видеото.

По-евтините релейни модули може да не съдържат оптрон във веригата си, както например в моя случай с едноканален модул.



Схема на едноканален релеен модул. Производителят спести от оптрон, поради което Arduino загуби платката галванична изолация. За работата на такава платка, на щифт втрябва да е логическа нула.

Свързване на модулното реле към Arduino Due.

Arduino Due работи на 3,3 волта, което е максималното напрежение, което може да има на своите входове/изходи. Ако ще има повече високо напрежение, дъската може да бъде изгорена.

Възниква въпросът как да свържете модул към релето?

Отстранете JDVcc джъмпера. Свържете щифт " Vcc» върху релейната платка на модула, за да го закрепите „3,3 V» Ардуино. Ако релето е проектирано за 5 волта, свържете щифта " GND» модулна релейна платка, с щифт « GND» Arduino Due. щифт " JDVcc» свържете се с ПИН « 5V" на Ардуино платкав следствие. Ако релето е проектирано за различно напрежение, тогава свързваме захранването към релето, както е на фигурата, в примера е 5 волта. Ако имате многоканален релеен модул, моля, проверете го « JDVcc »свързан към едната страна на всички релета. Оптронът се активира от 3.3V сигнал, който от своя страна активира транзистора, използван за включване на релето.

Триак твърдотелно реле за превключване на мощен товар чрез Arduino