Управляем реле с помощью Arduino. Управление реле с помощью Arduino Скетч управление 16 канальным реле для arduino

Управляем реле с помощью Arduino. Управление реле с помощью Arduino Скетч управление 16 канальным реле для arduino

Подключить реле к Arduino достаточно просто. Для примера мы будем использовать Скетч и подключения из урока:

В схеме вместо светодиода с резистором подключим реле . Вот так выглядит схема подключения реле к Arduino UNO . К другим версиям например Arduino NANO схема не будет иметь отличий.

Как видим, схема не многим отключается от исходного примера.

Реле может управлять различными бытовыми приборами.

Пара фоток сделанных при снятии видео по данному уроку: .

Скетч можно взять из без изменений.

Для более красивого и читабельного кода заменим переменную ledPin на relayPin . Так же заменим вспомогательную переменную ledOn на relayOn . У нас получиться вот такой скетч управления реле .

Const int buttonPin = 2; // номер входа, подключенный к кнопке const int relayPin = 3; // номер выхода светодиода /* переменные */ boolean lastButten = LOW; // предыдущее состояние кнопки boolean currentButten = LOW; // текущее состояние кнопки boolean relayOn = false; // текущее состояние свтодиода void setup() // Функция setup() { // инициализируем пин, подключенный к реле, как выход pinMode(relayPin, OUTPUT); // инициализируем пин, подключенный к кнопке, как вход pinMode(buttonPin, INPUT); } boolean debvance (boolean last) //убираем дребизг { boolean current = digitalRead (buttonPin); // считываем данные с кнопки if (last != current) // Если текущее состояние отличететься от предыдущего { delay (5); // Ждем 5 милисек. current = digitalRead (buttonPin); // Присваеваем текущее состояние кнопки return current; } } void loop() // Функция loop { currentButten = debvance (lastButten); // Передаем функции дребезга значение по умолчанию LOW if (lastButten == LOW && currentButten == HIGH) // Проверяем отпускали мы кнопку или нет { relayOn = !relayOn; // инвертируем значение } lastButten = currentButten; // Переприсваеваем прошлое состояние кнопки digitalWrite(relayPin, relayOn); // Включаем или выключаем реле (смотря что пришло после инверсии) delay (2); // Ждем 2 милисек. }

Вы должны понимать, что управлять реле можно и буз Arduino . Данный пример приведен для ознакомления.

Если подключить реле через кнопку с фиксацией . Вот по такой схеме.

То у нас все будет работать отлично. В качестве источника питания 5В можно использовать

В статье описывается такое электронное устройство как реле, кратко объясняются принципы его работы, а также рассматривается подключение модуля с реле постоянного тока к Arduino на примере управления светодиодами.

Нам понадобится:

  • Ардуино UNO (или совместимая плата);
  • персональный компьютер с Arduino IDE или иной средой разработки ;
  • модуль с реле (например, такой);
  • 4 резистора по 220 Ом (рекомендую приобрести набор резисторов с номиналами от 10 Ом до 1 МОм);
  • 4 светодиода (к примеру, вот из такого набора);
  • соединительные провода (вот такие).

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 В постоянного тока. То есть его можно использовать, например, для управления освещением квартиры.

Откуда получило своё название реле

От фамилии британского учёного лорда Рэлея - 28.6%

От процедуры смены уставших почтовых лошадей - 57.1%

От названия физической величины измерения яркости - 0%


В данном примере нам не нужна гальваническая развязка 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. Вот как это всё выглядит у меня. Реле громко пощёлкивают раз в секунду, а светодиоды весело моргают.


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

Скачать техническое описание (datasheet) реле SRD-05VDC-SL-C

Сегодня расскажу о двух канальном модуле реле с оптической развязкой, который содержит два электромеханических реле, максимальным током до 10А (в реальности не выдерживают столько), а переключение осуществляется с помощью напряжения 5В.

Технические параметры

Напряжение питания: 5 В
Потребляемый ток: 30 мА … 40 мА
Сигнал включение: 0 В (низкий уровень)
Оптическая изоляция: есть
Количество реле: 2 шт.
Тип реле: электромеханическое
Коминальный ток нагрузки: 10 А
Коммутируемое напряжение: 250VAC, 30VDC
Габариты: 50.5мм x 32.5мм x 17м

Общие сведения

Данный модуль содержит два канала реле фирмы SONGLE модель SRD-05VDC-SL-C, переключение осуществляется с помощью напряжение 5В. Схематически модуль специально разработан для управления с помощью слаботочных плат, таких как arduino, raspberry и так далее, которые на выходе могут выдать ток не более 40 мА, так же для защиты добавлен оптопара EL817, которая реализует гальваническую развязку. Принципиальная схема 2-х канального модуля реле показана на рисунке ниже.


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

Назначение контактов
Модуль содержит четыре разъема, два слаботочных J1, J1 и два силовых K1 и K2, назначение каждого разъема и вывода можно посмотреть на рисунке ниже.


Разъем J1 используется для управления реле, шаг контактов 2,54 мм (PLS), разъем J2 используется для подключения внешнего источника питания, по умолчанию, между контактми JD-VCC и VCC установлена перемычка.

Габаритные размеры
На модуле предусмотрено четыре отверстия для установки, диаметр каждого 4 мм, габариты можно посмотреть на рисунке ниже.


Необходимые детали:
Arduino UNO R3 x 1 шт.
Провод DuPont x 1 шт.
Кабель USB 2.0 A-B x 1 шт.
Модуль реле 2-х канальный — 5V, 10A, 250V (lOW, OPTO) x 1 шт.

Подключение :
Для начала подключаем вывод VCC и GND к выводам Arduino 5V и GND. Выводы 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); // Выключаем реле delay(2000); // Ждем 2с digitalWrite(in1, LOW); // Включаем реле delay(2000); // Ждем 2с digitalWrite(in2, HIGH); // Выключаем реле delay(2000); // Ждем 2с 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 ) ; // Выключаем реле

delay (2000 ) ; // Ждем 2с

digitalWrite (in1 , LOW ) ; // Включаем реле

delay (2000 ) ; // Ждем 2с

digitalWrite (in2 , HIGH ) ; // Выключаем реле

delay (2000 ) ; // Ждем 2с

digitalWrite (in2 , LOW ) ; // Включаем реле

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

просмотров