Сегодня я расскажу как сделать управление контроллером Arduino с помощью пульта управления и приемника TSOP 1833.
О проекте
У нас в примере будет использоваться светодиод, но вы можете подключить все что угодно, может быть это будет к примеру силовое реле, которое будет включать люстру, или открывать ворота гаража.
Для того что бы можно было управлять с пульта платой ардуино нам потребуется инфракрасный приемник TSOP1138 и сам контроллер, для начала я думаю Arduino UNO будет оптимальный вариант для экспериментов.
Схема подключения
Приемник подключаем по схеме как на картинке ниже. Далее с помощью библиотеки esp8266-ir-remote-sdk мы будем считавать коды кнопок пульта.
Код проекта
Для начала скачиваем библиотеку:
Как подключить библиотеку, написано в этой статье. Чтобы считать коды кнопок, необходимо запустить среду разработки Arduino IDE и открыть пример:
IRremote -> IRrecvDemo
После чего вас откроется пример скетча для использования инфракрасного датчика:
/* * IRremote: IRrecvDemo - demonstrates receiving IR codes with IRrecv * An IR detector/demodulator must be connected to the input RECV_PIN. * Version 0.1 July, 2009 * Copyright 2009 Ken Shirriff * http://arcfn.com */ #include <IRremote.h> int RECV_PIN = 4; IRrecv irrecv(RECV_PIN); decode_results results; void setup() { Serial.begin(9600); irrecv.enableIRIn(); // Start the receiver } void loop() { if (irrecv.decode(&results)) { Serial.println(results.value, HEX); irrecv.resume(); // Receive the next value } }
На четвертый пин Arduino согласно схемы выше подключаем выход с нашего ИК приемника, в моем случае это TSOP 1833. Итак, далее открываем:
Сервис -> Монитор порта
Смотрим коды кнопок, которые мы нажимаем. Мы указали, что все коды будут выводиться в формате HEX.
Serial.println(results.value, HEX);
Запомним коды двух кнопок (C667A и AB009) и изменим немного наш скетч для тестирования работоспособности:
/* * IRremote: IRrecvDemo - demonstrates receiving IR codes with IRrecv * An IR detector/demodulator must be connected to the input RECV_PIN. * Version 0.1 July, 2009 * Copyright 2009 Ken Shirriff * http://arcfn.com */ #include <IRremote.h> int RECV_PIN = 4; IRrecv irrecv(RECV_PIN); decode_results results; void setup() { Serial.begin(9600); irrecv.enableIRIn(); // Start the receiver pinMode(3, OUTPUT); } void loop() { if (irrecv.decode(&results)) { Serial.println(results.value); if (results.value==0xAB009) {//поменяйте на свой код digitalWrite(3,HIGH); } if (results.value==0xC667A) {//поменяйте на свой код digitalWrite(3,LOW); } irrecv.resume(); // Receive the next value } }
Как видно из скетча, на 3 пин мы добавили светодиод, что бы визуально проверить работоспособность нашего будущего пульта.
Как подключить светодиод, написано в этой статье. Теперь если мы нажмем на кнопку с кодом AB009 - светодиод включится, а по нажатию на кнопку с кодом C667A светодиод выключится.
Теперь можно внедрять данную схему в работу, а где вы ее примените, решать вам.
21 февраля 2022 в 15:23
Хочу купить tsop38238 arduinoХочу купить tsop38238 arduino
10 марта 2022 в 01:11
Нужен tsop38238 arduino