Estoy trabajando en Arduino en un mini pro. Tengo un viejo control remoto de MP3 que transmite infrarrojos a aproximadamente 38 kHz. Tengo un programa escrito que cuando mi sensor de infrarrojos está captando una señal del control remoto, le dice a un pin de relé que esté bajo y que el pin de relé esté alto si no detecta una señal del control remoto. El bucle se ejecuta constantemente y se comprueba de modo que "si (recibiendo) pin - > bajo" y "si (no recibiendo) pin - > alto". Mi problema es que el control remoto de MP3 no envía una señal constante. Se enciende y se apaga constantemente, lo que hace que el relé se encienda y apague cuando debería permanecer apagado.
Estoy tratando de averiguar cuánto tiempo se debe establecer una demora para compensar perfectamente el parpadeo de la señal del control remoto. Si no puedo compensar el parpadeo, ¿existen otras soluciones para usar el IR en la misma longitud de onda sin parpadeo?
¡Toda la ayuda es muy bienvenida y estoy abierto a ideas y sugerencias!
Este es el código que ya tengo, pero me ha costado un tiempo y no tengo mucha confianza con el código de Arduino.
#include <boarddefs.h>
#include <ir_Lego_PF_BitStreamEncoder.h>
#include <IRremote.h>
#include <IRremoteInt.h>
int RECV_PIN = 11;
int OUTPUT_PIN = 4;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
pinMode(OUTPUT_PIN, OUTPUT);
pinMode(13, OUTPUT);
irrecv.enableIRIn(); // Start the receiver
}
int on = 0;
unsigned long last = millis();
void loop() {
if (digitalRead(RECV_PIN) == LOW) {
digitalWrite(OUTPUT_PIN, LOW);
}
else if (digitalRead(RECV_PIN) == HIGH){
digitalWrite(OUTPUT_PIN, HIGH);
}
irrecv.resume(); // Receive the next value
}