Мы уже знаем как управлять слабым светодиодом и даже мощным двигателем с помощью Ардуино. Но как быть, если мы задумаем управлять устройствами, подключенными к бытовой сети? Напомню, что даже небольшая настольная лампа питается от источника переменного тока с напряжением 220 Вольт. Обычный полевой транзистор, который мы использовали в схеме с двигателем уже не подойдет.
Чтобы управлять мощной нагрузкой да еще и с переменным током воспользуемся реле. Это такое электромеханическое устройство, которое механическим способом замыкает цепь нагрузки с помощью электромагнита. Посмотрим на внутренности:
Принцип действия реле следующий. Подаем напряжение на электромагнитную катушку. В катушке возникает поле, которое притягивает металлическую лапку. В свою очередь, лапка механически замыкает контакты нагрузки.
У реле есть два основных применения. Во-первых, мы можем подав всего 5 Вольт на катушку, замкнуть цепь очень мощной нагрузки. Например, реле, используемое в уроках для Ардуино, может включить свет в доме или отключить забытый утюг. Во-вторых, некоторые виды реле могут одновременно замкнуть и разомкнуть сразу несколько разных цепей с разным напряжением.
Список необходимых компонентов
Для выполнения простого примера с модулем реле, потребуется Ардуино-совместимый контроллер, датчика света, макетная плата и немного проводов вилка-розетка. Необходимые компоненты можно добавить в корзину прямо здесь, и затем оформить заказ в нашем интернет-магазине.
Подключение реле к Ардуино
На этом уроке мы будем работать не с отдельным реле, а с целым релейным модулем. Помимо самого реле, модуль содержит еще и оптоэлектронную развязку с транзистором, которые защищают выводы Ардуино от скачков напряжения на катушке.
У одинарного модуля реле есть всего три контакта. Подключим их по следующей схеме.
Реле | GND | VCC | In |
Ардуино Уно | GND | +5V | 3 |
Кстати, вход реле является инвертированным. Это означает, что высокий уровень на контакте In выключит катушку реле, а низкий уровень — включит.
Принципиальная схема
Внешний вид макета
Программа для Ардуино
Напишем простую программу, которая будет включать лампу на 3 секунды, а затем гасить на 1 секунду.
const int relPin = 3;
void setup() {
pinMode(relPin, OUTPUT);
}
void loop() {
digitalWrite(relPin, HIGH);
delay(1000);
digitalWrite(relPin, LOW);
delay(3000);
}
Загружаем программу на Ардуино. Теперь подключаем питание к лампе и к реле. Наконец, подаем питание на контроллер.
Автоматический светильник или уличный фонарь
С помощью контроллера, реле и датчика света можно сделать несложный автоматический светильник. Контроллер будет зажигать лампу в момент, когда уровень света на датчике станет меньше заданного значения.
В качестве датчика используем готовый модуль на основе фоторезистора. Подключим все три устройства по следующей схеме.
Принципиальная схема
Внешний вид макета
Программа автоматического светильника
Аналоговый вывод датчика дает значения в диапазоне от 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. Управление двигателем. Имея два трехконтактных реле, таких же как в этом уроке, можно собрать схему для изменения направления вращения двигателя.
А какой резистор преобразует напряжение в 3 вольта?
резистор обычно не преобразует напряжение, а «потребляет» его.
если вы имели ввиду потребление, то оно зависит от нескольких параметров. зайдите на любой сайт расчета сопротивления резистора, там подставив параметры, можете спокойно получить ответ.
Я плохо разбираюсь, подскажите. GND — это земля, т.е. провод заземления?
Если я блок питания 5V подключаю, то GND на «-«, а VCC на «+» подключать?
Верно! Это не заземление, так в электронике обозначают «общий» провод. Так повелось, что за общий стали принимать именно минус.
Что такое NC, C и NO?
Если реле выключено, то контакт C (COM) соединен с NC (Normally connected), и не соединен c NO (Normally opened).
При подаче напряжения на катушку реле, контакт C перекидывается с NC на NO — и всё становится наоборот.
Если микроконтроллер и реле выключены, а нагрузка (лампа)
подключена к COM и NC, то нагрузка выключена. Включаем микроконтроллер, и нам сразу надо подать высокий уровень на вход реле, чтоб нагрузка не включилась на доли секунды. Как избежать низкого уровня на входе реле при включении и включении микроконтроллера? Может есть реле с не инвертируемым входом, чтоб отсутствие сигнала и низкий сигнал значило тоже самое для реле?
Модули реле обычно бывают двух типов: срабатывающие по низкому уровню и по высокому. Как раз для подобных целей. А еще есть реле, где можно самому выбирать уровень, например: https://shop.robotclass.ru/index.php?route=product/product&product_id=1121