Использование ИК-пульта с Arduino
Я хотел бы использовать ИК-пульт с Arduino для включения светодиода и выключения этого же светодиода при нажатии на пульт.
То есть:
- Если я нажму на 1, я захочу, чтобы светодиод включился
- Если я нажму на 2, я захочу, чтобы светодиод выключился
Вот мой код:
#include <IRremote.h>
const int RECV_PIN = 7;
IRrecv irrecv(RECV_PIN);
decode_results results;
const int L1 = 13;
void setup(){
Serial.begin(9600);
irrecv.enableIRIn();
irrecv.blink13(true);
pinMode(L1, OUTPUT);
}
void loop(){
if (irrecv.decode(&results)){
unsigned int value = results.value;
Serial.println(value);
irrecv.resume();
if(value == 12495){
digitalWrite(L1, HIGH);
delay(1000);
}
else if(value == 6375){
digitalWrite(L1, LOW);
delay(1000);
}
}
}
Но проблема в том, что когда я нажимаю кнопку 1, я вижу, как загорается светодиод, но затем он очень быстро гаснет, хотя я не нажимаю кнопку 2.
Не могли бы вы мне помочь?
@Maria Sanchez, 👍1
Обсуждение1 ответ
Эта строка вашего скетча irrecv.blink13(true);
сообщает объекту IRrecv
о необходимости мигать светодиодом при получении ИК-сигнала. В boarddefs.h
в папке IRremote вывод 13 определен как BLINKLED
по умолчанию. Код, который вы написали в loop()
, пытается сделать что-то другое с тем же светодиодом. Я бы удалил эту строку irrecv.blink13(true);
, а затем снова попробовал бы ваш скетч. Как только светодиод заработает правильно, попробуйте удалить обе эти строки delay(1000);
.
- Arduino IRremote перестает работать
- KY-022 ИК-приемник, светодиод всегда горит, нет выхода
- ИК приемник принимает только 0
- Использование цифрового контакта 11 для DMDCon и ИК-пульта
- Эмулятор Nikon IR remote trigger (ML-L3) не работает
- Звуковые библиотеки UNremote и PCM мешают
- ИК-пульт дистанционного управления на UNO
- MOSFET диммер с ИК-управлением
Не имеет отношения к делу; нет необходимости добавлять
delay(1000);
после включения/выключения светодиода., @Gerben