Управление реле с помощью Arduino

  • 29.08.2019

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


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



Для создания релейной схемы нам потребуется Arduino, один резистор на 1 КОм, один резистор на 10 КОм, один транзистор BC547, одно реле на 6 В или 12 В, один диод 1N4007, и в качестве объекта управления возьмем вентилятор на 12 В. Схема устройства:



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


int pinButton = 8; int Relay = 2; int stateRelay = LOW; int stateButton; int previous = LOW; long time = 0; long debounce = 500; void setup() { pinMode(pinButton, INPUT); pinMode(Relay, OUTPUT); } void loop() { stateButton = digitalRead(pinButton); if(stateButton == HIGH && previous == LOW && millis() - time > debounce) { if(stateRelay == HIGH){ stateRelay = LOW; } else { stateRelay = HIGH; } time = millis(); } digitalWrite(Relay, stateRelay); previous == stateButton; }

Итак, как работает наша схема? После нажатия кнопки Arduino переведет вывод 2 в высокое логическое состояние, то есть на выводе будет напряжение 5 В. Это напряжение используется для открывания транзистора, который включит реле, после чего наша нагрузка (в данном случае вентилятор) будет питаться от основного источника питания.


Вы не можете использовать 5 В порта USB для питания транзистора и нагрузки, поскольку тока будет недостаточно. Поэтому нужно использовать внешнее питание Vcc напряжением 7-12 В для питания как Arduino, так и транзисторно-релейной цепи. Нагрузка использует свой источник питания. Можно, например, в качестве нагрузки использовать лампу и питать ее от 220 В. И ни в коем случае не соединяйте питание Arduino и питание нагрузки!


Теперь немного усложним нашу программу, добавив задержку при отключении реле. Переменная stayON здесь будет использоваться для задания периода задержки в миллисекундах (по умолчанию 5 секунд). В итоге после нажатия кнопки реле включится и по прошествии 5 секунд отключится. Код:


int pinButton = 8; int Relay = 2; int stateRelay = LOW; int stateButton; int previous = LOW; long time = 0; long debounce = 500; int stayON = 5000; //задержка на 5000 мс void setup() { pinMode(pinButton, INPUT); pinMode(Relay, OUTPUT); } void loop() { stateButton = digitalRead(pinButton); if(stateButton == HIGH && previous == LOW && millis() - time > debounce) { if(stateRelay == HIGH){ digitalWrite(Relay, LOW); } else { digitalWrite(Relay, HIGH); delay(stayON); digitalWrite(Relay, LOW); } time = millis(); } previous == stateButton; }

Теперь благодаря информации, приведенной в этом примере, вы смело можете вносить реле в ваши новые проекты с Arduino.


Еще одну схему управления вентилятором с помощью Arduino можно .

Проведена ревизия статьи, доступны Eagle файлы для скачивания, добавлены 3 варианта реле модулей.

В вашем проекте требуется включать/выключать освещение, либо что-нибудь иное, что, в силу потребляемого напряжения и тока, нельзя подключить напрямую к портам Arduino? С данной задачей отлично справится реле модуль!

Немного теории

Электромагнитное реле - устройство, замыкающее и размыкающее механические электрические контакты (зеленые точки) при подаче на обмотку реле (выводы обмотки отмечены красными точками) электрического тока.

Реле бывают различными по величине коммутируемого тока и напряжения, по количеству пар коммутационных контактов, по питающему напряжению катушки реле. Для наглядного примера остановимся на синих, знакомых глазу Ардуинщика, реле марки SONGLE SRD-05VDC. Они позволяют коммутировать до 10А 30V DC и 10A 250V AC, при подаче на обмотку реле всего 5 Вольт.


Реле модуль с транзистором в ключевом режиме

В архиве "Реле модуль DIP "

Казалось бы, раз реле включается от пяти вольт, то можно просто напросто подключить реле к цифровому выводу как светодиод. Но не всё так просто. Дело в том, что реле потребляет около 70мА, в то время как порт контроллера способен выдать лишь 20мА. Справиться с этой проблемой нам поможет биполярный транзистор + небольшая обвязка. Транзистор представляет из себя радиодеталь с тремя ногами: база, коллектор и эмиттер. В данном случае будем использовать NPN типа. Когда на базе транзистора нет сигнала - он закрыт, при появлении напряжения транзистор открывается и ток беспрепятственно течет через переход коллектор-эмиттер. С транзистором определились, переходим к обвязке.

Для корректной работы потребуются два резистора R1 и R2. R1 является токоограничительным и устанавливается для защиты порта контроллера. Во избежание ложных срабатываний, базу транзистора следует притянуть к земле резистором R2. Катушка реле является по сути своей индуктивностью, при резком обрыве тока на ней происходит скачок напряжения, который в последствии может вывести транзистор из строя. За сим следует замкнуть катушку на саму себя установив для этого диод D1 встречно напряжению.

Реле модуль с опторазвязкой

В архиве "Реле модуль DIP (оптрон) " и "Реле модуль SMD (оптрон) "

Более навороченным вариантом является реле модуль и опторазвязкой. Опторазвязка позволяет разделить цепь питания обмотки реле и сигнальную цепь Arduino.

В модулях используются широко распространенные оптроны PC817 (EL817), так что проблем с покупкой возникнуть не должно. Оптрон представляет из себя радиодеталь внутри которой находится фотодиод и фототранзистор, т.е сигнал передается через свет, Оптрон имеет 4 вывода назначение которых можно увидеть на картинке снизу.

При использовании оптрона схема не сильно усложнится. Добавится только токоограничительный резистор R1 для фотодиода. Т.к не всегда под рукой оказывается два источника питания, то на модулях было решено оставить возможность работы от одного источника путем замыкания джампера (об этом чуть ниже).

Подключение реле модуля с опторазвязкой

1. Питание от различных источников

Питание обмотки реле подключается к контактам "RV" и "RG", а управляющее к выводам "S" и "G".

2. Питание от одного источника

Замкнув джампер, мы объединили земли. Теперь модуль можно питать от одного источника.

В архиве лежат шаблоны под ЛУТ, Eagle файлы и списки деталей.

Открываем изображение => Печать => Во всю страницу

Для облегчения распайки smd компонентов с обратной стороны платы, где нет маркировки, приведу картинку.

Шилд блока реле 4 канала для Arduino UNO R3 и MEGA 2560

Реле — это электромеханические устройства, замыкающие и/или размыкающие контакты внешней электрической цепи при подаче в обмотку реле управляющего электрического тока. Этот ток порождает магнитное поле, вызывающее перемещение ферромагнитного якоря реле, механически связанного с электрическими контактами внешней электрической цепи. Последующее перемещение контактов коммутирует эту цепь.
К реле можно подключить лампочку, вентилятор, электромагнитный клапан для управление поливом и программно управлять этими устройствами изменением состояния на цифровых выводах Arduino.
Relay Shield — плата расширения для Arduino, на которой расположены 4 независимых реле TIANBO, подключённых к цифровым пинам Arduino. Это реле управляется напряжением 5 вольт и способно коммутировать до 3 ампер постоянного тока напряжением 24 В и переменного тока напряжением 125 В.

Для управления 4 реле платы используются следующие выводы Arduino - D4, D5, D6, D7.. При подключении каждого вывода Arduino к схеме переключения реле используется гальваническая развязка, что предотвращает внешние наводки при включении/выключении, подключенной к реле нагрузки. В схеме реле используется транзистор p-n-p типа, для его открытия нужно подать на базу минус. Для этого используем функцию digitalWrite(pin, LOW). Транзистор будет открыт и через управляющую цепь потечет ток и реле сработает. Для отключения реле следует закрыть транзистор, подав на базу плюс, вызвав функцию digitalWrite(pin, HIGH).
О текущем состоянии каждого из них можно судить по индикаторным светодиодам, расположенным на плате. К каждому реле подведён клеммник на 3 провода, что позволяет использовать реле как в режиме "нормально разомкнутое", так и в режиме "нормально замкнутое".
В отличие от большиства модулей реле для Arduino, данная плата сделана в формате шилда, что значительно эконимит место и увеличивает надежность контакта между Arduino и реле.

Характеристики реле
Ток обмотки: 80 мА;
Максимальное коммутируемое напряжение: 24 В постоянного тока; 125 В переменного тока;
Максимальный коммутируемый ток: 3 А;
Рекомендованная частота переключения: до 1 Гц;
Время жизни: не менее 50 000 переключений.

Рассмотрим пример использования Relay Shield. Подключим к реле лампу освещения, которая будет включаться/выключаться в зависимости от освещенности помещения. В качестве датчика освещенности помещения будем использовать фоторезистор. Схема соединений.

// Используемый вывод для реле
#define PIN_RELAY 7
// Пин подключения фоторезистора
#define PIN_PHOTORESISTOR A0
// переменная для хранения показаний фоторезистора
int val_photo;
// граничное значение освещенности
#define VAL_PHOTO_ON 220
#define VAL_PHOTO_OFF 520

Void setup(void)
{
// подключение последовательного порта
Serial.begin(9600);
// настроить вывод реле как OUTPUT
pinMode(PIN_RELAY,OUTPUT);
// включить свет
digitalWrite(PIN_RELAY,LOW);
}
void loop(void)
{
// получение данных с фоторезистора
val_photo=analogRead(PIN_PHOTORESISTOR);
// включить
if(val_photo< VAL_PHOTO_ON)
digitalWrite(PIN_RELAY,LOW);
// выключить
else if(val_photo< VAL_PHOTO_OFF)
digitalWrite(PIN_RELAY,HIGH);
// пауза перед следующим измерением
delay(5000);

Реле Ардуно позволяет подключить устройства, работающие в режимах с относительно большими токами или напряжения. Мы не можем напрямую подключить к плате Arduino мощные насосы, двигатели, даже обычную лампочку накаливания – плата не предназначена для такой нагрузки и работать не будет. Именно поэтому нам придется добавить в схему реле, который вы можете встретить в любом проекте. В этой статье мы поговорим о том, что такое реле, какие они бывают, как можно их подключить своем ардуино проекте.

Реле – это шлюз, который позволяет соединить вместе электрические цепи с совершенно разными параметрами. Обычный шлюз на реке соединяет водные каналы, расположенные на разной высоте, открывая или закрывая ворота. Реле в ардуино включает или выключает внешние устройства, определенным образом замыкая или размыкая отдельную электрическую сеть, в которую они подключены. С помощью ардуино и реле мы управляем процессом включения или выключения так же, как включаем или выключаем свет дома – подавая команду на замыкание или размыкание. Ардуино подает сигнал, само же замыкание или размыкание “мощной” цепи будет делать реле через специальные внутренние механизмы. Реле можно представить себе в виде дистанционного пульта, с помощью которого мы выполняем нужные действия с помощью относительно “слабых” сигналов.

Реле характеризуется следующими параметрами:

  • Напряжение или ток срабатывания.
  • Напряжение или ток отпускания.
  • Время срабатывания и отпускания.
  • Рабочие ток и напряжение.
  • Внутреннее сопротивление.

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

Электромагнитные и твердотельные реле

Электромагнитное реле

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

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

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

Классификация электромагнитных реле:

  • Управляющий ток может быть как постоянным, так и переменным. В первом случае устройство может быть нейтральным или поляризованным. Для переменного тока якорь выполняется из электротехнической стали, чтобы уменьшить потери.
  • Якорное или герконовое реле. Для якорного процесс замыкания и размыкания происходит при помощи перемещения якоря, для герконового характерно отсутствие сердечника, магнитное поле воздействует на электрод с контактами.
  • Быстродействие – до 50 мс, до 150 мс и от 1 с.
  • Зщитное покрытие – герметизированное, зачехленное и открытое.

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

Твердотельные реле

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

  • Долгий срок эксплуатации.
  • Быстродействие.
  • Малые размеры.
  • Отсутствуют посторонние шумы, акустические помехи, дребезги контактов.
  • Низкое потребление энергии.
  • Качественная изоляция.
  • Стойкость к вибрации и ударам.
  • Нет дугового разряда, что позволяет работать во взрывоопасных местах.

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

Твердотельные реле также имеют несколько недостатков. Во-первых, при коммутации происходит нагрев устройства. Повышение температуры устройства приводит к ограничению регулируемого тока – при температурах, превышающих 60 градусов, уменьшается величина тока, максимальная рабочая температура 80 градусов.

Твердотельные реле классифицируются по следующим признакам:

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

Реле в проектах Ардуино

Наиболее распространенное реле для платы Ардуино выполняется в виде модуля, например, SONGLE SRD-05VDC. Устройство управляется напряжением 5 В, может коммутировать до 10 А 30 В DC и 10 А 250 В AC.

Схема изображена на рисунке. Реле состоит из двух не связанных между собой цепей – управляющая цепь А1 и А2 и управляемая 1, 2 и 3.

Между А1 и А2 имеется металлический сердечник. Если пустить по нему электрический ток, к нему притянется якорь (2). 1, 3 – неподвижные контакты. При отсутствии тока якорь будет около контакта 3.

Подключение реле к Ардуино

Рассмотрим одноканальный модуль реле. Он имеет всего 3 контакта, подключаются они к Ардуино Uno следующим образом: GND – GND, VCC – +5V, In – 3. Вход реле – инвертирован, так что высокий уровень на In выключает катушку, а низкий – включает.

Светодиоды нужны для индикации – при загорании красного LED1 подается напряжение на реле, при загорании зеленого LED2 происходит замыкание. Когда включается микроконтроллер, транзистор закрыт. Для его открытия на базу нужен минус, подается при помощи функции digitalWrite(pin, LOW);. Транзистор открывается, протекает ток через цепь, реле срабатывает. Чтобы его выключить, на базу подается плюс при помощи digitalWrite(pin, HIGH);.

С помощью Ардуино. Но как быть, если мы задумаем управлять устройствами, подключенными к бытовой сети? Напомню, что даже небольшая настольная лампа питается от источника переменного тока с напряжением 220 Вольт. Обычный полевой транзистор, который мы использовали в схеме с двигателем уже не подойдет.

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

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

У реле есть два основных применения. Во-первых, мы можем подав всего 5 Вольт на катушку, замкнуть цепь очень мощной нагрузки. Например, реле, используемое в уроках для Ардуино, может включить холодильник или стиральную машину. Во-вторых, некоторые виды реле могут одновременно замкнуть и разомкнуть сразу несколько разных цепей с разным напряжением.

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

У одинарного модуля реле есть всего три контакта. Подключим их по следующей схеме.

Кстати, вход реле является инвертированным. Это означает, что высокий уровень на контакте In выключит катушку реле, а низкий уровень — включит.

Принципиальная схема

Внешний вид макета

2. Программа для Ардуино

Напишем простую программу, которая будет включать лампу на 3 секунды, а затем гасить на 1 секунду.

Const int relPin = 3; void setup() { pinMode(relPin, OUTPUT); } void loop() { digitalWrite(relPin, HIGH); delay(1000); digitalWrite(relPin, LOW); delay(3000); }

Загружаем программу на Ардуино. Теперь подключаем питание к лампе и к реле. Наконец, подаем питание на контроллер.

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); }

Загружаем программу на Ардуино и проводим эксперимент. Лучше всего это делать ночью.

Задания

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

2. Управление двигателем. Имея два трехконтактных реле, таких же как в этом уроке, можно собрать схему для изменения направления вращения двигателя.