Подключение релейново модуля

Рано или поздно появляется желание поуправлять чем-то более мощным чем светодиод, либо создать нечто на подобие умного дома своими руками. В этом нам поможет релейный модуль. Сейчас мы рассмотрим как правильно его подключить к микроконтроллеру, как им управлять на примере включения лампы накаливания.

ВНИМАНИЕ!
РАБОТАЯ НАД ПРОЕКТАМИ, ГДЕ ИСПОЛЬЗУЕТСЯ СЕТЕВОЕ НАПРЯЖЕНИЕ, ВЫ ДОЛЖНЫ ХОРОШО ПОНИМАТЬ, ЧТО ДЕЛАЕТЕ, Т.К. ПРИ НЕОСТОРОЖНОСТИ МОЖНО ПОЛУЧИТЬ УДАР ЭЛЕКТРИЧЕСКИМ ТОКОМ. ЭТО ОЧЕНЬ ОПАСНО И МЫ НЕ ХОТИМ, ЧТОБЫ ВЫ ПОСТРАДАЛИ. ЕСЛИ ВЫ НЕ УВЕРЕНЫ НА 100% В ТОМ, ЧТО ВЫ ДЕЛАЕТЕ, ТО НИЧЕГО НЕ ТРОГАЙТЕ И ПОПРОСИТЕ ПОМОЩИ У ТОГО, КТО ХОРОШО В ЭТОМ РАЗБИРАЕТСЯ.

Подключение
Релейный модуль подключается предельно просто:
VCC - питание 5В;
GND - земля (общий);
IN - вывод управляющего сигнала.

К клеммам подключается прибор, который мы будем включать и выключать.
COM (от common) - это общий контакт.
NO (от normally open) - это нормально разомкнутый контакт. Общий контакт и нормально разомкнутый контакт между собой не соединены. Но когда вы включаете реле, эти контакты соединяются друг с другом, и потребитель начинает получать питание.
NC (от normally closed) - это нормально замкнутый контакт. Общий контакт и нормально замкнутый контакт соединены друг с другом, даже если реле выключено. Но когда вы включаете реле, цепь размыкается, и потребитель перестает получать питание.

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

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

#define RELE_PIN 9

void setup() {
   pinMode(RELE_PIN, OUTPUT);
}
 
void loop() {
  digitalWrite(RELE_PIN, LOW);
  delay(5000);
   
 digitalWrite(RELE_PIN, HIGH);
 delay(5000);
}

Теперь усложним задачу. Нам необходимо, чтобы лампочка включалась при наступлении темноты и включалась когда вновь светло. Для этого мы будем использовать датчик освещенности с фоторезистором. Не забудьте откалибровать датчик освещенности (пример есть в предыдущих статьях).

#define RELE_PIN 9
#define PROTORESISTOR_PIN A3
#define VALUE_LIMIT 100

int value = 0;

void setup() {
  pinMode(RELE_PIN, OUTPUT);
  pinMode(PROTORESISTOR_PIN, INPUT);
}

void loop() {
  // если значение фоторезистора падает до предела, то зажигаем лампочку, если нет - то включаем
  value = analogRead(PROTORESISTOR_PIN);
  if (value < VALUE_LIMIT) {
    digitalWrite(RELE_PIN, HIGH);
    delay(10000);
  }
  else
  {
    digitalWrite(RELE_PIN, LOW);
  }
}

Вместо модуля с фоторезистором можно использовать модуль с термистором и включать вентилятор, когда в комнате становится жарко.