Paso 3: La programación
Antes de hacer esto es necesario instalar la librería IRremote. Entonces, antes de copiar esto, ir a sketch, incluyen la biblioteca y entonces incluya la librería IRremote.
int RECV_PIN = 11;
Irrecv(RECV_PIN) de IRrecv;
resultados de la decode_results;
sin firmar largo CurrentValue = 0;
unsigned StoredCode largo = 0;
const int buttonPin = 6; el número de pin pulsador
const int ledPin = 4; el número de los pines del LED
const int outputPin = 3; el número de los pines de salida LED
const int relayPin = 2; el número de relés del perno de la
int buttonState = 0; variable para lectura del estado del pulsador
int RecordState = 0; es el receptor en modo de grabación
int outputState = 1; es la salida de encendido o apagado
void setup()
{
Serial.Begin(9600);
irrecv.enableIRIn(); Inicio del receptor
Inicializa el pin LED como salida: pinMode (ledPin, salida);
inicializar el perno pulsador como entrada:
pinMode (outputPin, salida);
inicializar el perno pulsador como entrada: pinMode (buttonPin, entrada);
pinMode (relayPin, salida);
inicializar el perno pulsador como entrada: pinMode (buttonPin, entrada);
}
void loop() {}
leer el estado del pulsador valor:
buttonState = digitalRead(buttonPin);
Si se detecta una señal, almacenar el valor
Si (irrecv.decode (y resultados)) {}
CurrentValue = (results.value);
Si el valor recibido es igual al valor programado, entonces cambiar el estado de salida
if(currentValue == StoredCode) {}
outputState =! outputState; }
Si está activado el modo de grabación almacenar el valor actual como el valor programado
Si (RecordState == 1) {}
StoredCode = CurrentValue;
RecordState = 0;
digitalWrite (ledPin, LOW);
Serial.println(StoredCode); Visualiza el código almacenado por referencia}
Recibir el siguiente valor
irrecv.resume();
}
else //if que se detecte ninguna señal, entonces el valor actual es de 0
{
CurrentValue = 0;
}
comprobar si se presiona el botón de grabación.
Si es así, el buttonState es alta:
Si (buttonState == HIGH) {}
esperar el botón para
mientras que (buttonState == HIGH) {}
buttonState = digitalRead(buttonPin); }
enciende el LED para indicar que ese modo de grabación está en
digitalWrite (ledPin, HIGH);
RecordState = 1; }
establecer el estado de salida adecuado
if(outputState == 1) {}
digitalWrite (outputPin, HIGH);
digitalWrite (relayPin, HIGH); }
Else {}
digitalWrite (outputPin, bajo);
digitalWrite (relayPin, bajo); }
}