Cat hungry.png
Здравствуйте! Собираем деньги на перевод материалов по электронике(https://www.allaboutcircuits.com/education/). Реквизиты указаны здесь.

Arduino:Примеры/Гайд по использованию релейного модуля вместе с Arduino

Материал из Онлайн справочника
Перейти к: навигация, поиск

Перевод: Максим Кузьмин (Cubewriter)
Перевел 2686 статей для сайта.

Контакты:

Проверка/Оформление/Редактирование: Мякишев Е.А.


Ambox content.png Черновик


Гайд по использованию релейного модуля вместе с Arduino[1]

Эта статья рассказывает, как использовать релейный модуль вместе с платой Arduino. Она начинается с объяснения того, как подключить реле к сетевому напряжению и Arduino. Затем будет представлен проект с лампой, управляемой релейным модулем и датчиком движения типа PIR (вместо лампы можно использовать и другое устройство, управляемое при помощи переменного тока).

Описание

Реле – это устройство, предназначенное для замыкания/размыкания электроцепи. Включая и выключая реле, вы можете управлять тем, будет ли проходить через него электроток или нет. Управлять реле при помощи Arduino так же просто, как и светодиодом. То, как выглядит реле, можно посмотреть на картинке ниже:

Relay-module 1.jpg

Этот реле-модуль – 2-канальный (см. два синих куба). Также встречаются 4-канальные и 8-канальные реле-модули.

Подключение к сетевому питанию

У реле есть три контакта, предназначенных для подключения к сетевому питанию:

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

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

Подключение контактов

В подключении реле к Arduino нет ничего сложного:

Relay Module with Arduino 3.jpg
  • Контакт GND на реле – к контакту GND на плате Arduino
  • Контакт IN1 (управляет первым реле) – к цифровому контакту
  • Контакт IN2 (управляет вторым реле) – тоже к цифровому контакту; но подключайте его, только если действительно используете второе реле
  • Контакт VCC – к контакту 5V

Где купить?

Реле-модуль можно купить примерно за 2 доллара (см. на eBay).

Скетч: Управление лампочкой при помощи реле-модуля и датчика движения типа PIR

Relay Module with Arduino 4.jpg

Ниже будет рассказываться, как сделать цепь с лампой, реагирующей на движение. После того, как датчик заметит движение, лампочка будет гореть в течение 10 секунд. Движение будет определяться при помощи датчика движения типа PIR. Более подробно о том, как использовать датчик типа PIR вместе с платой Arduino, читайте тут.

Техника безопасности

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

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

Необходимые компоненты

Для этого проекта понадобятся следующие компоненты:

  • Реле-модуль (см. на eBay)
  • Плата Arduino (см. наeBay)
  • Датчик движения PIR (см. на eBay)
  • Шнур-соединитель для лампы (см. на eBay)

Код

Скопируйте код, показанный ниже, в IDE Arduino, а затем загрузите его на плату Arduino.

Внимание! Не загружайте код, когда Arduino подключена к реле.

  1. /*********
  2.   Автор – Руи Сантос (Rui Santos)
  3.   Более подробно о проекте на: http://randomnerdtutorials.com  
  4. *********/
  5.  
  6. // реле управляется при помощи контакта D8 (фазный провод подключен
  7. // к нормально замкнутому и общему контактам):
  8. int relay = 8;
  9. volatile byte relayState = LOW;
  10.  
  11. // датчик движения PIR подключен к контакту D2:
  12. int PIRInterrupt = 2;
  13.  
  14. // переменные для хранения данных о времени:
  15. long lastDebounceTime = 0;  
  16. long debounceDelay = 10000;
  17.  
  18. void setup() {
  19.   // контакт для реле выставляем в режим OUTPUT:
  20.   pinMode(relay, OUTPUT);
  21.   digitalWrite(relay, HIGH);
  22.   // контакт для датчика выставляем в режим INPUT:
  23.   pinMode(PIRInterrupt, INPUT);
  24.   // если датчик заметил движение, переводим функцию detectMotion()
  25.   // в режим RISING, тем самым включая реле:
  26.   attachInterrupt(digitalPinToInterrupt(PIRInterrupt), detectMotion, RISING);
  27.   // запускаем последовательную коммуникацию (в отладочных целях):
  28.   Serial.begin(9600);
  29. }
  30.  
  31. void loop() {
  32.   // когда пройдут 10 секунд, выключаем реле:
  33.   if((millis() - lastDebounceTime) > debounceDelay && relayState == HIGH){
  34.     digitalWrite(relay, HIGH);
  35.     relayState = LOW;
  36.     Serial.println("OFF");  //  "Выключение лампы"
  37.   }
  38.   delay(50);
  39. }
  40.  
  41. void detectMotion() {
  42.   Serial.println("Motion");  //  "Движение"
  43.   if(relayState == LOW){
  44.     digitalWrite(relay, LOW);
  45.   }
  46.   relayState = HIGH;  
  47.   Serial.println("ON");  //  "Включение лампы"
  48.   lastDebounceTime = millis();
  49. }

Схема

Соедините компоненты как показано на картинке ниже:

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

Schematics Relay Module with Arduino 5.png

Демонстрация

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

Relay-module-gif 6.gif

См.также

Внешние ссылки

  1. randomnerdtutorials.com - Guide for Relay Module with Arduino