Arduino:Примеры/Гайд по использованию релейного модуля вместе с Arduino
Содержание | Знакомство с Arduino | Продукты | Основы | Справочник языка Arduino | Примеры | Библиотеки | Хакинг | Изменения | Сравнение языков Arduino и Processing |
Гайд по использованию релейного модуля вместе с Arduino[1]
Эта статья рассказывает, как использовать релейный модуль вместе с платой Arduino. Она начинается с объяснения того, как подключить реле к сетевому напряжению и Arduino. Затем будет представлен проект с лампой, управляемой релейным модулем и датчиком движения типа PIR (вместо лампы можно использовать и другое устройство, управляемое при помощи переменного тока).
Описание
Реле – это устройство, предназначенное для замыкания/размыкания электроцепи. Включая и выключая реле, вы можете управлять тем, будет ли проходить через него электроток или нет. Управлять реле при помощи Arduino так же просто, как и светодиодом. То, как выглядит реле, можно посмотреть на картинке ниже:
Этот реле-модуль – 2-канальный (см. два синих куба). Также встречаются 4-канальные и 8-канальные реле-модули.
Подключение к сетевому питанию
У реле есть три контакта, предназначенных для подключения к сетевому питанию:
- COM (от «common») – это общий контакт.
- NO (от «normally open») – это нормально разомкнутый контакт. Общий контакт и нормально разомкнутый контакт между собой не соединены. Но когда вы включаете реле, эти контакты соединяются друг с другом, и потребитель начинает получать питание.
- NC (от «normally closed») – это нормально замкнутый контакт. Общий контакт и нормально замкнутый контакт соединены друг с другом, даже если реле выключено. Но когда вы включаете реле, цепь размыкается, и потребитель перестает получать питание.
Если вы хотите управлять, к примеру, лампой, то лучше использовать нормально разомкнутый контакт, потому что лампа не будет гореть всегда (но вы будете включать ее время от времени).
Подключение контактов
В подключении реле к Arduino нет ничего сложного:
- Контакт GND на реле – к контакту GND на плате Arduino
- Контакт IN1 (управляет первым реле) – к цифровому контакту
- Контакт IN2 (управляет вторым реле) – тоже к цифровому контакту; но подключайте его, только если действительно используете второе реле
- Контакт VCC – к контакту 5V
Где купить?
Реле-модуль можно купить примерно за 2 доллара (см. на eBay).
Скетч: Управление лампочкой при помощи реле-модуля и датчика движения типа PIR
Ниже будет рассказываться, как сделать цепь с лампой, реагирующей на движение. После того, как датчик заметит движение, лампочка будет гореть в течение 10 секунд. Движение будет определяться при помощи датчика движения типа PIR. Более подробно о том, как использовать датчик типа PIR вместе с платой Arduino, читайте тут.
Техника безопасности
Перед тем, как приступить к проекту, обязательно ознакомьтесь с техникой безопасности, потому что в этом проекте придется иметь дело с сетевым напряжением.
Внимание! Работая над проектами, где используется сетевое напряжение, вы должны хорошо понимать, что делаете, т.к. при неосторожности можно получить удар электрическим током. Это очень серьезно, и я не хочу, чтобы вы пострадали. Если вы не на 100% уверены в том, что делаете, ничего не трогайте. Попросите помочь того, кто хорошо в этом разбирается.
Необходимые компоненты
Для этого проекта понадобятся следующие компоненты:
- Реле-модуль (см. на eBay)
- Плата Arduino (см. наeBay)
- Датчик движения PIR (см. на eBay)
- Шнур-соединитель для лампы (см. на eBay)
Код
Скопируйте код, показанный ниже, в IDE Arduino, а затем загрузите его на плату Arduino.
Внимание! Не загружайте код, когда Arduino подключена к реле.
/*********
Автор – Руи Сантос (Rui Santos)
Более подробно о проекте на: http://randomnerdtutorials.com
*********/
// реле управляется при помощи контакта D8 (фазный провод подключен
// к нормально замкнутому и общему контактам):
int relay = 8;
volatile byte relayState = LOW;
// датчик движения PIR подключен к контакту D2:
int PIRInterrupt = 2;
// переменные для хранения данных о времени:
long lastDebounceTime = 0;
long debounceDelay = 10000;
void setup() {
// контакт для реле выставляем в режим OUTPUT:
pinMode(relay, OUTPUT);
digitalWrite(relay, HIGH);
// контакт для датчика выставляем в режим INPUT:
pinMode(PIRInterrupt, INPUT);
// если датчик заметил движение, переводим функцию detectMotion()
// в режим RISING, тем самым включая реле:
attachInterrupt(digitalPinToInterrupt(PIRInterrupt), detectMotion, RISING);
// запускаем последовательную коммуникацию (в отладочных целях):
Serial.begin(9600);
}
void loop() {
// когда пройдут 10 секунд, выключаем реле:
if((millis() - lastDebounceTime) > debounceDelay && relayState == HIGH){
digitalWrite(relay, HIGH);
relayState = LOW;
Serial.println("OFF"); // "Выключение лампы"
}
delay(50);
}
void detectMotion() {
Serial.println("Motion"); // "Движение"
if(relayState == LOW){
digitalWrite(relay, LOW);
}
relayState = HIGH;
Serial.println("ON"); // "Включение лампы"
lastDebounceTime = millis();
}
Схема
Соедините компоненты как показано на картинке ниже:
Внимание! Не трогайте провода, подключенные к сетевому напряжению. Убедитесь, что затянули все шурупы.
Демонстрация
Вот так проект выглядит в действии. Определив движение, датчик передает сообщение об этом на плату Arduino, а та зажигает лампочку.
См.также
Внешние ссылки
Arduino продукты | |
---|---|
Начальный уровень | Arduino Uno • Arduino Leonardo • Arduino 101 • Arduino Robot • Arduino Esplora • Arduino Micro • Arduino Nano • Arduino Mini • Arduino Starter Kit • Arduino Basic Kit • MKR2UNO • TFT-дисплей Arduino |
Продвинутые функции | Arduino Mega 2560 • Arduino Zero • Arduino Due • Arduino Mega ADK • Arduino Pro • Arduino Motor Shield • Arduino USB Host Shield • Arduino Proto Shield • MKR Proto Shield • MKR Proto Large Shield • Arduino ISP • Arduino USB 2 Serial Micro • Arduino Mini USB Serial Adapter |
Интернет вещей | Arduino Yun • Arduino Ethernet • Arduino MKR1000 • Arduino WiFi 101 Shield • Arduino GSM Shield V2 • Arduino WiFi Shield • Arduino Wireless SD Shield • Arduino Wireless Proto Shield • Arduino Ethernet Shield V2 • Arduino Yun Shield • Arduino MKR1000 Bundle |
Носимые устройства | Arduino Gemma • Lilypad Arduino Simple • Lilypad Arduino Main Board • Lilypad Arduino USB • LilyPad Arduino SimpleSnap |
3D-печать | Arduino Materia 101 |
Устаревшие устройства | - |
Примеры Arduino | |
---|---|
Стандартные функции | |
Основы |
|
Цифровой сигнал |
|
Аналоговый сигнал |
|
Связь |
|
Управляющие структуры |
|
Датчики |
|
Дисплей |
Примеры, объясняющие основы управления дисплеем:
|
Строки |
|
USB (для Leonardo, Micro и Due плат) |
В этой секции имеют место примеры, которые демонстрируют использование библиотек, уникальных для плат Leonardo, Micro и Due.
|
Клавиатура |
|
Мышь |
|
Разное |
- Страницы, использующие повторяющиеся аргументы в вызовах шаблонов
- Справочник языка Arduino
- Arduino
- Перевод от Сubewriter
- Проверка:myagkij
- Оформление:myagkij
- Редактирование:myagkij
- Страницы, где используется шаблон "Навигационная таблица/Телепорт"
- Страницы с телепортом
- Пример
- Примеры
- Пример программирования Arduino
- Примеры программирования Arduino