Управление розеткой через ИК пульт
Делать мы будем розетку которая включается и выключается при помощи инфракрасного пульта дистанционного управления.
Сразу говорю если что-то не понятно я всё объясню в комментариях.
Внимание напряжение 220 В
Что нам понадобится:
- Arduino
- ИК приёмник
- ИК пульт
- Перемычки типа папа-мама и папа-папа
- Твёрдотельное реле на 220 В
- Розетка с одним разорванным проводом
- Макетная плата
- Лампочка с патроном-вилкой
Собираем всё это в единое
Для начала мы возьмём розетку открутим 2 винта и вскроем её.
Потом зажмём 2 провода в двух клемах при помощи отвёртки и разрежем один провод пополам. Так чтобы получилось как на картинке.
Далее вставляем два провода которые мы разрезали в твёрдотельное реле на 220 В как показано на картинке только наоборот!
Теперь подключаем всё как на картинке.
ИК датчик :
- левая нога GND
- средняя нога 5В
- правая нога А0
Твёрдотельное реле на 220 В
- vcc - 5 В
- gnd - GND
- IN - D9
А вот и сам скетч
#include <IRremote.h> // подключаем библиотеку для работы с ИК приёмником IRrecv irrecv(A0); // указываем пин, к которому подключен IR приемник decode_results results; void setup() // процедура setup { irrecv.enableIRIn(); // запускаем прием инфракрасного сигнала pinMode(9, OUTPUT); // пин 9 будет выходом (англ. «output») pinMode(A0, INPUT); // пин A0 будет входом (англ. «intput») Serial.begin(9600); // подключаем монитор порта } void loop() // процедура loop { if (irrecv.decode(&results)) // если данные пришли выполняем команды { Serial.println(results.value); // отправляем полученные данные на порт // включаем и выключаем светодиоды, в зависимости от полученного сигнала if (results.value == 16754775) { digitalWrite(9, HIGH); // выключаем лампочку } if (results.value == 16775175) { digitalWrite(9, LOW); // включаем лампочку } irrecv.resume(); // принимаем следующий сигнал на ИК приемнике } }
Скачать скетч sketch_feb18b1_ino.zip [734 b] (скачиваний: 30)
После того как залили скетч открываем монитор порта и нажимаем кнопку на ИК пульте. Результат однократного нажатия записываем вместо
if (results.value == 16775175) {
digitalWrite(9, LOW);
}
Свежие комментарии