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

/*
*
* Набор для экспериментов ArduinoKit
* Код программы для опыта №13: sketch 13
*
* Реле
*
* Написано для сайта http://сайт
*
*
* Помощь сообщества Arduino.
* Посетите сайт http://www.arduino.cc
*
*
*
* ИСПОЛЬЗОВАНИЕ ТРАНЗИСТОРА ДЛЯ УПРАВЛЕНИЯ РЕЛЕ
*
* Реле это электрически управляемый механический переключатель.
* Реле может управлять гораздо большим напряжением и током, чем порты
* Arduino, или скажем транзистор, включенный в комплект набора. Если
* вы хотите использовать Arduino для управления лампой накаливания,
* кофеваркой, или другим электронным устройством работающим на 220V,
* реле это отличный способ сделать это.
* Реле спокойно справляется с переключением, коммутацией, больших
* напряжений, намного больших, чем может предложить порт Arduino.
* Мы будем использовать транзистор для того чтобы управлять реле,
* точно так же, как мы использовали транзистор для управления
* двигателем в опыте №12 (Стартовый набор, программиста и робототехника).
*
* Реле состоит из катушки, проволоки, металлического сердечника и
* переключающих контактов. При подаче питания на катушку, сердечник
* намагничивается, и притягивает якорь (рычажок), тем самым
* переключает контакты. Так как контакты реле полностью изолированы
* от Arduino, вы можете спокойно использовать реле для управления
* опасным напряжением, НО! Пожалуйста, делайте это, если вы уже
* знаете, и умеете, безопасно работать с высоким напряжением!
*
* Реле иметь три контакта, — COM (общий), NC (нормально замкнутый)
* и NO (нормально разомкнутый). Когда реле выключено, COM вывод
* подключен к выводу NC (нормально замкнутый), а когда включено,
* COM вывод подключается к NO (нормально разомкнутый).
*
* Этот код очень прост — он включает реле на одну секунду, затем
* выключает, ждет секунду и снова включает, как в опыте с мигающим
* светодиодом!
*
* Подключение оборудования:
*
* Транзистор:

* Транзистор имеет три вывода. Глядя на плоскую сторону,
* выводами вниз, назначения выводов будут следующими (слева
* на право): КОЛЛЕКТОР, БАЗА, ЭМИТЕР.
*
* Подключите БАЗУ через резистор 1К к цифровому порту 2.
*
* Подключите ЭМИТЕР к земле (GND).
*
* Катушка реле:
*
* Реле имеет контакты катушки, с помощью которых можно управлять
* реле и контакты для управления нагрузкой. На верхней или
* нижней части реле должен иметься рисунок, или символ,
* указывающий на контакты катушки.
*
* Подключение одну сторону катушки к коллектору транзистора.
*
* Подключение другую сторону катушки к питанию +5 Вольт.
*
* Диод:
*
* Реле имеет катушку, которую вы запитываете, для того чтобы
* притянуть якорь. При отключении питания, катушка генерирует
* всплеск напряжения, который может повредить транзистор. Этот
* диод защищает транзистор от всплеска напряжений.
*
* Подключите вывод диода, КАТОД, к питанию +5 Вольт.
*
* Подключите другой вывод диода, АНОД, к КОЛЛЕКТОРУ транзистора.
*
* Контакты реле и светодиодов:
*
* Контакты реле могут переключать все все что можно включить или
* выключить, но мы в этом уроке будем использовать контакты реле
* для включения и выключения светодиодов.
*
* Подключите общий вывод контактной группы релеCOMMON к резистору
* 330 Ом. Второй вывод резистора питанию +5 Вольт.
*
* Подключите вывод контактной группы реле NC (нормально замкнутый)
* к положительному (длинному) выводу светодиода LED 1.
*
* Подключите вывод контактной группы реле NO (нормально разомкнутый)
* к положительному (длинному) выводу второго светодиода — LED 2.
*
* Подключите отрицательные выводы (короткие ножки) обоих светодиодов
* к земле (GND).
*
*
*
* Комментарий к программе написан
* 26 ноября 2014
* специально для http://сайт
*
*
*/
const int relayPin = 2; // порт для управления транзистором
const int timeDelay = 1000; // задержка в мс, между вкл. и выкл.

// Вы можете уменьшить время задержки, но обратите внимание, что
// реле, будучи механическим устройством, будет изнашиваться
// быстрее, если частота переключений будет слишком частой.
void setup()
{
pinMode(relayPin, OUTPUT); // установить порт как исходящий
}
void loop()
{
digitalWrite(relayPin, HIGH); // включить реле

digitalWrite(relayPin, LOW); // выключить реле

delay(timeDelay); // пауза в 1 секунду

Цифровые пины на 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 и реле. В первую очередь он рассчитан на новичков, знакомящихся с 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 реле фирмы SONGLE SRD-05VDC.

Данное реле управляется напряжением 5V и способно коммутировать до 10А 30V DC и 10A 250V AC.

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

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

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

В большинстве реле модулей для Ардуино используется N-канальное управление, его мы и рассмотрим. Для примера возьмем одноканальный модуль.

Далее приведу примерную схему данного модуля. Необходимыми для управления реле являются следующие детали: резистор(R1) , p-n-p транзистор(VT1) , диод(VD1) и, непосредственно само реле(Rel1) . Оставшиеся два светодиода установлены для индикации. LED1 (красный) - индикация подачи питания на модуль, загорание LED2 (зеленый) свидетельствует о замыкании реле.

Рассмотрим как работает схема. При включении контроллера выводы находятся в высокоомном состоянии, транзистор не открыт. Так как у нас транзистор p-n-p типа, то для его открытия нужно подать на базу минус. Для этого используем функцию digitalWrite (pin, LOW ); .Теперь транзистор открыт и через управляющую цепь течет ток и реле срабатывает. Для отключения реле следует закрыть транзистор, подав на базу плюс, вызвав функцию digitalWrite (pin, HIGH );. Можно сказать что управление реле модуля ничем не отличается от управления обычным светодиодом.

Модуль имеет 3 вывода (стандарта 2.54мм):

VCC: "+" питания

GND: "-" питания

IN: вывод входного сигнала

Подключение модуля предельно просто:

VCC на + 5 вольт на Ардуино.

GND на любой из GND пинов--- ардуино.

IN на любой из цифровых входов/выходов ардуино (в примерах подсоединено к 4).

Переходим непосредственно к скетчу. В данном примере реле будет включаться и выключаться с интервалом в 2 секунды.

пример программного кода:

// Реле модуль подключен к цифровому выводу 4 int Relay = 4; void setup () { pinMode (Relay, OUTPUT ); } void loop () { digitalWrite (Relay, LOW ); // реле включено delay (2000); digitalWrite (Relay, HIGH ); // реле выключено delay (2000); }

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

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

Должно получиться так как показано на рисунке.

Пример включения лампы накаливания в связке с

P.S. Более дорогие модули имеют на своем борту еще и оптрон, который позволяет получить кроме развязки между управляемой и управляющей цепями реле еще и полную гальваническую развязку непосредственно между контроллером и цепью управления реле.