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

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

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

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

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

Необходимые узлы

Основное преимущество данного подхода: его дешевизна.

Транзистор TIP122 можно найти в любом магазине радиотехнических деталей или заказать на Aliexpress, eBay.

Автоматические реле можно купить там же.

Описание транзистора TIP122 и его распиновка

TIP122 - это биполярный транзистор. То есть для базы надо обеспечить большее позитивное напряжение, чем на эмиттере, что позволит току поступать от эмиттера к коллектору. Расположение базы, эмиттера и коллектора TIP122 показаны на рисунке ниже.

Главное, что надо помнить об этом транзисторе - то, что он позволяет протекать току в 5 А от эмиттера через коллектор и 120 мА от эмиттера через базу.

Также очень круто то, что вы можете получить разницу в 100 В между коллектором и эмиттером и 100 вольт между коллектором и базой.

Не чересчур ли это? Для большинства проектов на Arduino - действительно чересчур. Но при этом они дешевые и когда появляется новая идея, не приходится заморачиваться и подбирать нужный транзистор, так как этот наверняка подойдет. Когда проект или конструкция апробирована, можно оптимизировать уже после тестового образца.

Автоматическое реле Bosch Cube. Распиновка и описание

Эти реле могут обеспечивать различные напряжения и силу тока. То реле, о котором пойдет речь дальше обеспечивает напряжение 12 В и силу тока 20/30 А. То есть, при замкнутых контактах сила тока составляет 20А, при разомкнутых - 30 А.

Кроме того, на моем реле сопротивление катушки примерно равно 95 Ом.

Сила тока, которая нужна для катушки гораздо больше чем та, которую может предоставить Arduino, но ее становится вполне достаточно после использования транзистора TIP122, который выдает 5 А.


Схема и описание подключения Arduino, TIP122 и реле

На электросхеме, которая приведена ниже, выход high D0 подключен к базе TIP122 и благодаря этому ток может проходить к пину 86 на реле. Благодаря этому подается питание на реле и в нем замыкаются контакты 30 и 87. После этого вы можете запитывать любое ваше внешнее устройство.


Пояснения к использованию и программа для Arduino, TIP122 и автоматического реле

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

Схема подключения соответствует той, которую мы рассмотрели выше. Ниже представлен ее более наглядный вариант.


Скопируйте, вставьте скетч в Arduino IDE и загрузите его на Arduino.

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

// Тест: TIP122 и Arduino

int nRelayDrive = 0; // пин 0 у нас для управления реле

pinMode(nRelayDrive, OUTPUT); // объявляем реле в качестве выхода

digitalWrite(nRelayDrive, LOW); // включаем реле

digitalWrite(nRelayDrive, HIGH); // отключаем реле

Проверка

Отключите ваш USB кабель от персонального компьютера и подключите внешний источник питания к Arduino и реле. Дайте вашему миикроконтроллеру время для перезагрузки. Если все было сделано правильно, вы должны услышать характерный клик реле, которое будет замыкать и размыкать контакт через каждые две секунды.

P.S. В данном проекте в качестве источника питания использовался аккумулятор от машины на 12 Вольт, но можно использовать и другой.

Оставляйте Ваши комментарии, вопросы и делитесь личным опытом ниже. В дискуссии часто рождаются новые идеи и проекты!

Подключить на прямую к Arduino мощную нагрузку, например лампу освещения или электронасос не получится. Микроконтроллер не обеспечивает необходимую мощность, для работы такой нагрузки. Ток, который может протекать через выходы Arduino, не превышает 10-15 мА. На помощь приходит реле, с помощью которого можно коммутировать большой ток. К тому же, если нагрузка питается от переменного тока, например 220v, то без реле ни как вообще не обойтись. Для подключения мощных нагрузок к Arduino через реле, обычно используют реле модули.

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

Свои, одно и четырёх канальные модули, я купил на Aliexpress, за $ 0,5 и $ 2.09 соответственно.

Устройство реле модуля для Arduino, на примере 4-х канального модуля HL-54S V1.0.

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

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

Для защиты выводов Ардуино от скачков напряжения в катушке реле, применяется транзистор J3Y и оптрон 817C. Обратите внимание, сигнал с пина In подаётся на катод оптрона. Это значит, для того что бы реле замкнуло контакты, нужно подать на пин In логический 0 (инвертированный сигнал).

Так же бывают модули, у которых сигнал с пина In подаётся на анод оптрона. В таком случае, нужно подать логическую 1 на пин In , для срабатывания реле.

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

В данном случае используются электромеханические реле Songle SRD-05VDC-SL-C , имеющее следующие характеристики:

Рабочее напряжение: 5 В
Рабочий ток катушки: 71 мА
Максимальный коммутируемый ток: 10А
Максимальное коммутируемое постоянное напряжение: 28 В
Максимальное коммутируемое переменное напряжение : 250 В
Рабочий температурный режим: от -25 до +70°C

Реле Songle SRD-05VDC-SL-C имеет 5 контактов. 1 и 2 питание реле. Группа контактов 3 и 4 представляют из себя нормально разомкнутые контакты (NO ), группа контактов 3 и 5 - нормально замкнутые (NC ).

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

На плате имеется перемычка (JDVcc ), для питания реле либо от Arduino, либо от отдельного источника питания.

Пинами In1 , In2 , In3 , In4 модуль подключается к цифровым выводам Arduino.

Подключение реле модуля HL-54S V1.0 к Arduino.

Поскольку у нас модуль с 5-вольтовыми реле, подключим его по такой схеме, питание возьмём от самой Ардуино. В примере подключу одно реле, в качестве нагрузки буду использовать лампочку на 220 в.

Для питания реле модуля от Arduino, перемычка должна замыкать пины «Vcc » и «JDVcc », обычно по-умолчанию она там и установлена.

Если у вас реле не на 5 вольт, питать от Ардуино модуль нельзя, питание нужно брать от отдельного источника.

Нижеприведённая схема показывает, как подключить питание модуля от отдельного источника. По такой схеме нужно подключать реле, рассчитанное на питание от более или менее чем 5 В. Для 5-вольтовых реле эта схема так же будет более предпочтительная.

При таком подключении нужно убрать перемычку между пинами «Vcc » и «JDVcc ». Далее пин «JDVcc » подключить к «+ » внешнего источника питания, пин «Gnd » подключить к «- » источника питания. Пин «Gnd », который в предыдущей схеме подключался к пину «Gnd » Ардуино, в данной схеме не подключается. В моём примере, внешний источник питания 5 В, если ваше реле рассчитано на другое напряжение (3, 12 ,24 В), выбираете соответствующее внешнее питание.

Скетч для управления реле модулем через Ардуино.

Зальём в Ардуино скетч, который будет сам включать и отключать лампочку (мигалка).

int relayPin = 7;

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

void loop() {
digitalWrite(relayPin, LOW);
delay(5000);
digitalWrite(relayPin, HIGH);
delay(5000);
}

В строке int relayPin = 7; указываем номер цифрового пина Arduino , к которому подключали пин In1 реле модуля. Можно подключить на любой цифровой пин и указать его в этой строке.

В строке delay(5000); можно менять значение времени, при котором лампочка будет гореть и при котором будет погашена.

В строке digitalWrite(relayPin, LOW); указано, при подаче логического нуля (LOW ), реле-модуль замкнёт контакты и лампочка будет гореть.

В строке digitalWrite(relayPin, HIGH); указано, при подаче логической единицы (HIGH ), реле-модуль разомкнёт контакты и лампочка погаснет.

Как видим, в строке digitalWrite(relayPin, LOW); оставили параметр LOW . Если реле замкнёт контакты и лампочка загорится, значит на пин In1 вам нужно подавать логический нуль, как и у меня. Если лампочка не загорится, зальём скетч, в котором заменим параметр LOW на HIGH.


Результат скетча на видео.

Теперь давайте добавим в схему тактовую кнопку и при нажатии на неё, реле-модуль будет включать лампочку.

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

Заливаем скетч

В строкеif(digitalRead(14)==HIGH) задаём номер цифрового пина, на котором подключена кнопка. Подключать можно на любой свободный. В примере эта аналоговый пин A0 , его же можно использовать в качестве цифрового 14 пина.

В строке delay(300); задаётся значение в миллисекундах. Это значение указывает, через какое время после нажатия или отпускание кнопки, нужно производить действия. Это защита от дребезга контактов.

Для информации! Все аналоговые входы от A0 (нумеруется как 14) до A5 (19), можно использовать как цифровые (Digital PWM ).

В заключении результат выполнения скетча на видео.

Более дешёвые реле-модули могут не содержать в своей схеме оптрона, как например в моём случае с одноканальным модулем.



Схема одноканального реле-модуля . Производитель сэкономил на оптроне, из-за чего Ардуино плата лишилась гальванической развязки. Для работы такой платы, на пин In нужно подавать логический нуль.

Подключение реле модуля к Arduino Due.

Arduino Due работает от 3,3 вольт, это максимальное напряжение, которое может быть на его вводах / выводах. Если будет более высокое напряжение, плата может сгореть.

Возникает вопрос, как подключить к реле модуль?

Убираем перемычку JDVcc. Подключаем пин «Vcc » на плате реле модуля к пину «3,3V » Arduino. Если реле рассчитано на 5 вольт, соединяем пин «GND » платы реле модуля, с пином «GND » Arduino Due. Пин «JDVcc » подключаем к пину «5V » на плате Arduino Due. Если реле рассчитано на другое напряжение, то питание к реле подключаем как на рисунке, в примере это 5 вольт. Если у вас многоканальный реле модуль, пожалуйста проверьте что бы «JDVcc » подключен к одной стороне всех реле. Оптопара активируется сигналом 3,3 В, которая в свою очередь активирует транзистор, используемый для включения реле.

Твердотельное реле из симистора для коммутации мощной нагрузки через Ардуино

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

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

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

  • подключение реле к МК (в нашем случае плата 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 компонентов с обратной стороны платы, где нет маркировки, приведу картинку.