Paso 3: El código de Arduino
#include < IRremote.h >
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 almacenada el código para 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);
}
}