Сайт о телевидении

Сайт о телевидении

» » Управление твердотельным реле с помощью ардуино. Как подключить реле к Arduino

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

С помощью Ардуино. Но как быть, если мы задумаем управлять устройствами, подключенными к бытовой сети? Напомню, что даже небольшая настольная лампа питается от источника переменного тока с напряжением 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. Управление двигателем. Имея два трехконтактных реле, таких же как в этом уроке, можно собрать схему для изменения направления вращения двигателя.

В статье описывается такое электронное устройство как реле, кратко объясняются принципы его работы, а также рассматривается подключение модуля с реле постоянного тока к 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 Ом, светодиоды любые.


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

Теперь загрузим скетч в память Arduino. Вот как это всё выглядит у меня. Реле громко пощёлкивают раз в секунду, а светодиоды весело моргают.


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

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

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

Всем привет! Всё, что мы изучали до недавнего времени, были «учебными задачами». Пришло время поставить более серьёзную.

Микроконтроллер (далее – МК) может успешно управлять различными нагрузками (потребителями электроэнергии). Однако выполнять данные операции напрямую он не может. Поскольку напряжение, что протекает в сети на порядки отличается от напряжения, что в состоянии «выдать» МК.

В статье постарается разобраться со следующими пунктами:

  • подключение реле к МК (в нашем случае плата Arduino);
  • управление релейным модулем;
  • управление реальным потребителем электроэнергии;

Примечание: при работе с напряжением 220 В соблюдайте осторожность. Изолируйте все выполненные соединения. Перед включением в электросеть прозвоните мультиметром собранные стенд на предмет отсутствие короткого замыкания.

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

Управление модулем, на котором установлено реле осуществляется при помощи постоянного напряжения 5В. Модуль способен коммутировать 300 Вт (30В, 10А постоянки) и 2500 Вт (250В, 10А переменки).

Само реле состоит из двух цепей, что не связаны друг с другом. Первая цепь (управляющая) выводы А1, А2. Вторая цепь (управляемая) выводы 1, 2, 3.

Конструкция управляющей цепи следующая: между выводами А1 и А2 находится металлический сердечник, к которому в момент протекания по нему тока притягивается подвижный якорь 2. Выводы 1 и 3 неподвижны. Якорь фиксируется пружинной. В момент, когда ток не течёт по сердечнику, якорь прижат к контакту 3. Когда цепь замыкается и начинает протекать ток, якорь притягивается к контакту 1 и в этом момент звучит характерный «щелчок». После разрыва цепи пружина возвращает якорь на исходную позицию.

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

Контакты в реле делятся на два типа:

  • нормально закрытый (НЗ) (пара 1-2);
  • нормально открытый (НО) (пара 2-3).

По условию НЗ разомкнут (не звонится мультиметром накоротко), а НО замкнут (звонится мультиметром накоротко). Подключаем разрыв фазы на нормально закрытую пару контактов.

Индикация:

  • Красный светодиод извещает пользователя о том, что на модуль подано питание;
  • Зеленый светодиод извещает пользователя о том, что реле замкнуто.

Принцип работы модуля.

В момент, когда мы включаем МК, его выводы находятся в высокоимпедансном состоянии (очень большое сопротивление), соответственно транзистор закрыт. Для открытия транзистора необходимо подать низкий уровень сигнала, иными словами 0 (касается транзистора p-n-p типа). После этого транзистор открывается и через первую (управляющую) цепь начинает протекать ток, в этот момент мы слышим характерный «щелчок». Чтобы выключить реле, нужно подать высокий уровень сигнала на транзистор.

Распиновка выводов модуля:

  • VCC — «+» питание;
  • GND — «-» земля;
  • IN — входной сигнал, что «рулит» релюшкой.

Подключаем релюшку к Arduino :

  • VCC «кидаем» на вывод 5В платы arduino.
  • GND «кидаем» на один из выводов GND платы arduino.
  • IN «кидаем» на 13 вывод платы 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 компонентов с обратной стороны платы, где нет маркировки, приведу картинку.