Подключение реле к Arduino

Тема статьи: 
Электронные поделки и механизмы

В этой статье мы разберём особенности подключения реле к Arduino. Но начнём с теории.
Что из себя представляет реле, и для чего оно нужно?
Реле — это небольшой модуль, который имеет две раздельные цепи.

ArduinoNANORele01.jpg

Одна цепь — A1-A2 — осуществляет управление, вторая цепь — управляемая. Они друг другом не связаны. Между контактами A1 и А2 установлен металлический сердечник или катушка.
Принцип действия катушки.
Катушка, или сердечник — это электромагнит, который можно включать или выключать подачей электрического тока.

ArduinoNANORele02.jpg

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

ArduinoNANORele03.jpg

ArduinoNANORele04.jpg

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

ArduinoNANORele05.jpg

ArduinoNANORele06.jpg

Этот принцип и используется в реле.

Устройство реле.

Внутри электромагнитных реле находится металлический сердечник — катушка. Над ним устанавливается пластина (подвижный якорь), к которой крепятся от одного до нескольких контактов. Напротив закрепленных контактов устанавливают парные им неподвижные контакты.

ArduinoNANORele07.jpg

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

ArduinoNANORele08.jpg

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

Подключение реле JQC-3FF к Arduino.

Для демонстрации мы выбрали два реле. Первое — это релейный модуль JQC-3FF для Arduino.

ArduinoNANORele09.jpg

Нам понадобится блок с двумя батарейками на 1.5V каждая, мотор постоянного тока, плата Arduino NANO, и проводочки, у которых один конец припаян к штырьку, второй к контактному разъёму.

ArduinoNANORele10.jpg

Схема соединения такая.

ArduinoNANORele11.jpg

ArduinoNANORele12.jpg

Затем подключаем плату Arduino NANO к компьютеру, открываем среду разработки программ под Arduino, указываем в выпадающем списке «Инструменты» тип платы - Arduino NANO и нужный порт.
Затем загружаем в плату программу, которая включает мотор на 5 секунд, затем на 5 секунд выключает.

/*Программа для Arduino NANO, реле JQC-3FF и мотора постоянного тока, питаемого от батареек общим напряжением 3V*/
/*целочисленная константа, которой присваивается значение 2го контакта, отвечающего за замыкание контактов, запускающих мотор*/

const int LED_ON = 2;

void setup() {
  pinMode(LED_ON, OUTPUT);
  digitalWrite(LED_ON, LOW);
}

void loop() {
// включаем диод
  digitalWrite(LED_ON, HIGH);
// задержка на 5 сек
  delay(5000);
// выключаем диод
  digitalWrite(LED_ON, LOW);
// задержка на 5 сек
  delay(5000);
}

Если мы отключим питание от платы Arduino, то выключится и вторая цепь — с мотором. Но есть и другие типы реле, например бистабильное или импульсное. Посмотрим разницу.

Подключение реле FRT5 к Arduino.

Рассмотрим в качестве примера бистабильное реле FRT5 — L2 DC5V.
FRT5 — название реле, L2 — означает, что у него две катушки, DC5V — означает, что реле требуется питание постоянным электрическим током в 5 Вольт.

ArduinoNANORele13.jpg

Чтобы замкнуть контакты, надо подать управляющий импульс, чтобы разомкнуть ещё один такой же импульс. Поэтому управляющих проводочка два.
Схема реле выглядит так:

ArduinoNANORele14.jpg

Слева — вариант с одной катушкой, справа — с двумя. Наш вариант тот, что справа.
Мы подключим обычный диод, питаемый двумя батарейками по 1.5V каждая. Через плату Arduino мы будем посылать сигнал реле на замыкание-размыкание цепи диод-батарейка.
Нужно собрать такую схему:

ArduinoNANORele15.jpg

ArduinoNANORele16.jpg

Чтобы замкнуть нормально разомкнутые контакты нужно подать напряжение 5V на контакт D3, а D2 должен быть обесточен. Чтобы разомкнуть эти контакты, выключаем подачу питания на D3 и подаем на D2.

Заливаем в плату Arduino программу и диод начинает мигать раз в секунду.

/*Программа для Arduino NANO, реле FRT5 и диода, питаемого от батареек общим напряжением 3V*/

/*целочисленная константа, которой присваивается значение 3го контакта, отвечающего за замыкание контактов отвечающих за включение диода*/
const int LED_ON = 3;
/*целочисленная константа, которой присваивается значение 3го контакта, отвечающего за размыкание контактов отвечающих за включение диода*/
const int LED_OFF = 2;

void setup() {
  pinMode(LED_ON, OUTPUT);
  digitalWrite(LED_ON, LOW);
  pinMode(LED_OFF, OUTPUT);
  digitalWrite(LED_OFF, LOW);
}

void loop() {
// включаем диод
  digitalWrite(LED_OFF, LOW);
  digitalWrite(LED_ON, HIGH);
// задержка на 1 сек
  delay(1000);
// выключаем диод
  digitalWrite(LED_ON, LOW);
  digitalWrite(LED_OFF, HIGH);
// задержка на 1 сек
  delay(1000);
}

Если мы разъединим плату Arduino c питанием во включённом состоянии диода, диод так и останется включённым, так как управляемая цепь была включена в момент выключения управляющей цепи. Если разъединить плату Arduino c питанием при выключенном состоянии – диод будет выключен.

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

ArduinoNANORele17.jpg

ArduinoNANORele18.jpg

Заливаем программу.

/*Программа для Arduino NANO, реле FRT5 и диода, питаемого от батареек общим напряжением 3V*/
/*целочисленная константа, которой присваивается значение 3го контакта, отвечающего за замыкание контактов отвечающих за включение диода*/

const int LED_ON = 3;
/*целочисленная константа, которой присваивается значение 3го контакта, отвечающего за размыкание контактов отвечающих за включение диода*/
const int LED_OFF = 2;
/*целочисленная константа, которой присваивается значение 4го контакта, считывающего информацию о сотоянии диода*/
const int LED_TEST = 4;

void setup() {
  pinMode(LED_ON, OUTPUT);
  pinMode(LED_OFF, OUTPUT);
  pinMode(LED_TEST, INPUT);

  if( digitalRead(LED_TEST) == HIGH )
  {
    digitalWrite(LED_ON, LOW);
    digitalWrite(LED_OFF, HIGH);
  }
  delay(3000);
}

void loop() {
// включаем диод
  digitalWrite(LED_OFF, LOW);
  digitalWrite(LED_ON, HIGH);
// задержка на 3 сек
  delay(3000);
// выключаем диод
  digitalWrite(LED_ON, LOW);
  digitalWrite(LED_OFF, HIGH);
// задержка на 3 сек
  delay(3000);
}

Вот такие две схемы у нас были сегодня собраны.

ArduinoNANORele19.jpg

До новых встреч!