Как подключить реле к Arduino
В статье описывается такое электронное устройство как реле, кратко объясняются принципы его работы, а также рассматривается подключение модуля с реле постоянного тока к Arduino на примере управления светодиодами.
Для подключения реле к Arduino нам понадобится:
- Ардуино UNO (или совместимая плата);
- модуль с реле (например, такой);
- 4 резистора по 220 Ом (рекомендую приобрести набор резисторов с номиналами от 10 Ом до 1 МОм);
- 4 светодиода (к примеру, вот из такого набора);
- макетная плата;
- соединительные провода (вот такие);
- персональный компьютер с Arduino IDE или иной средой разработки.
1Принцип действияи виды реле
Реле – это электромеханическое устройство для замыкания и размыкания электрической цепи. В классическом варианте реле содержит электромагнит, который управляет размыканием или замыканием контактов. Если в нормальном положении контакты реле разомкнуты, а при подаче управляющего напряжения замыкаются, такое реле называется замыкающим. Если в нормальном состоянии контакты реле сомкнуты, а при подаче управляющего напряжения размыкаются, такой тип реле называется размыкающим.
Кроме того, существует множество других видов реле: переключающие, одноканальные, многоканальные, реле постоянного или переменного тока, и другие.
2Схема подключения модуля реле SRD-05VDC-SL-C
Будем использовать модуль с двумя одинаковыми реле типа SRD-05VDC-SL-C или аналогичный.
Модуль имеет 4 разъёма: силовые разъёмы K1 и K2, управляющий разъём и разъём для подачи внешнего питания (с джампером).
Реле типа SRD-05VDC-SL-C имеет три контакта для подключения нагрузки: два крайних неподвижных, а средний – переключающийся. Именно средний контакт является своего рода «ключом», который коммутирует цепи тем или иным образом. На модуле есть подсказка, какой именно контакт реле является нормально замкнутым: маркировка "K1" и "K2" соединяет средний контакт с крайним левым (на фото). Подача управляющего напряжения на вход IN1 или IN2 (слаботочный управляющий разъём) заставит реле скоммутировать средний контакт контактной группы K1 или K2 с правым (силовой разъём). Ток, достаточный для переключения реле – около 20 мА, цифровые выводы Arduino могут выдавать до 40 мА.
Разъём для подачи внешнего питания используется для того, чтобы обеспечить гальваническую развязку платы Arduino и модуля реле. По умолчанию, на разъёме между штырьками JD-VCC и VCC имеется перемычка. Когда она установлена, модуль использует для питания напряжение, поданное на вывод VCC управляющего разъёма, а плата Arduino не имеет гальванической развязки с модулем. Если нужно обеспечить гальваническую развязку модуля и Arduino, необходимо подавать питание на модуль через разъём внешнего питания. Для этого убирается перемычка, и дополнительное питание подаётся на контакты JD-VCC и GND. При этом питание на вывод VCC управляющего разъёма также подаётся (от +5 В Arduino).
Кстати, реле может коммутировать не только слаботочную нагрузку, как в нашем примере. С помощью реле можно замыкать и размыкать достаточно большие нагрузки. Какие именно – нужно смотреть в техническом описании к конкретному реле. Например, данное реле SRD-05VDC-SL-C может коммутировать сети с током до 10 А и напряжением до 250 В переменного тока или до 30 В постоянного тока. То есть его можно использовать, например, для управления освещением квартиры.
Откуда получило своё название реле
В данном примере нам не нужна гальваническая развязка Arduino и модуля реле, поэтому будем питать модуль напрямую от платы Arduino, а джампер оставим на своём месте. Соберём схему, как показано на рисунке. Используемые резисторы – 220 Ом, светодиоды любые.
Если светодиоды не должны никогда отключаться, можно подключить центральную точку реле не на выводы D4 и D5 Arduino, а напрямую на питание +5 В.
3Скетч управления реле с помощью Arduino
Будем поочерёдно зажигать пару светодиодов одного цвета, и каждую секунду переключаться на пару другого цвета. Напишем вот такой скетч.
const int relay1 = 2; // пин управления 1-ым реле const int relay2 = 3; // пин управления 2-ым реле const int led1 = 4; // коммутируемый вывод - питание 1-го светодиода const int led2 = 5; // коммутируемый вывод - питание 2-го светодиода void setup() { pinMode(relay1, OUTPUT); pinMode(relay2, OUTPUT); pinMode(led1, OUTPUT); pinMode(led2, OUTPUT); // установим оба реле в исходное положение: digitalWrite(relay1, HIGH); digitalWrite(relay2, HIGH); // подадим питание на светодиоды: digitalWrite(led1, HIGH); digitalWrite(led2, HIGH); } void loop() { // переключим оба реле: digitalWrite(relay1, LOW); digitalWrite(relay2, LOW); delay(1000); // переключим оба реле обратно: digitalWrite(relay1, HIGH); digitalWrite(relay2, HIGH); delay(1000); }
Если вы собирали не по приведённой схеме, а вместо D4 и D5 подключали центральную точку реле напрямую к питанию +5V, то от констант led1 и led2 и от всего связанного с ними кода в скетче можно совершенно безболезненно избавиться.
Теперь загрузим скетч в память Arduino. Вот как это всё выглядит у меня. Реле громко пощёлкивают раз в секунду, а светодиоды весело моргают.
Кстати, существуют другие типы коммутирующих устройств, например, оптроны. Эти устройства не имеют механических частей, что существенно повышает их износоустойчивость и скорость срабатывания. Кроме того, они имеют меньший размер и меньшее энергопотребление.
Download attachments:
- Скачать техническое описание (datasheet) реле SRD-05VDC-SL-C (954 Downloads)