ИК пульт
- Войдите на сайт для отправки комментариев
Сб, 15/04/2017 - 16:36
Всем привет.
Имую дома телевизор и приставку. В итоге два пульта. Хочу что бы пульт от телека упралял приставкой.
Взял пробный скетч 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 = 11; IRrecv irrecv(RECV_PIN); decode_results results; void setup() { Serial.begin(9600); // In case the interrupt driver crashes on setup, give a clue // to the user what's going on. Serial.println("Enabling IRin"); irrecv.enableIRIn(); // Start the receiver Serial.println("Enabled IRin"); } void loop() { if (irrecv.decode(&results)) { Serial.println(results.value, HEX); irrecv.resume(); // Receive the next value } delay(100); }
Далее немного доработал код, что бы одна кнопка включала светодиод вторая выключала, но к сожалению после выполнения условия включения или отключения светодиода, программа перестаёт выполнятся и коды монитор порта не выводятся. Подскажите где я накосячил.
/* * 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> IRsend irsend; int RECV_PIN = 11; IRrecv irrecv(RECV_PIN); decode_results results; int LED = 8; void setup() { Serial.begin(9600); pinMode(LED, OUTPUT); // In case the interrupt driver crashes on setup, give a clue // to the user what's going on. Serial.println("Enabling IRin"); irrecv.enableIRIn(); // Start the receiver Serial.println("Enabled IRin"); } void loop() { if (irrecv.decode(&results)) { Serial.println(results.value, HEX); if (results.value == 0x20DF06F9) //код моей кнопки на обычном пульте "2FD807F". { irsend.sendNEC(0x77E1C09E, 32); // код кнопки меню от приставки digitalWrite(LED, HIGH); Serial.println("LED ON"); } if (results.value == 0x20DF43BC) //код моей кнопки на обычном пульте "2FD807F". { irsend.sendNEC(0x77E13A9E, 32); // код кнопки выбор от приставки digitalWrite(LED, LOW); Serial.println("LED OFF"); } irrecv.resume(); // Receive the next value } delay(100); }
И сразу возникает вопрос, к Arduono UNO ик-светодиод подключать напрямую или через резистор?
Прошу прощения за возможно дилетанские вопросы. Это мой первый скетч.
Закоментировал строки
и скетч начал работать без зависания.
Подскажите, ИК светодиод длинной ного подключил к 3 пину, короткой к земле эти действия верны?
Сделал ещё одну проверку с камерой от телефона, при выполнении условия ИК светодиод моргает и на этом программа виснет. В монитор порта ничего не выдаётся. Светодиод не реагирует.
написал такую программу:
{
for (int i = 0; i < 3; i++) {
irsend.sendNEС(0x1000C, 20);
delay(40);
}
}
пишет что ошибка: stray '\321' in program и выделяет
строчку irsend.sendNEС(0x1000C, 20); подскажите что исправить.
Ошибку надо копировать и вставлять в сообщение полностью, а не вручную частично переписывать.
Убедитесь, что в скобках латинская буква С, а не кириллическая С.