Paso 1: Código de Arduino
La librería IRremote puede descargarse desde el siguiente enlace si no lo tiene ya.
https://Brainy-bits.com/tutorials/ir-Remote-Arduin...
También, dependiendo de que IR remoto está utilizando le tenga que insertar código diferentes valores para los botones en su control remoto. Por ejemplo, en el código publicado por debajo del valor de la tecla OK en mi mando a distancia era "0xFF02FD". Si vas a usar otro remoto que lo usé necesitará averiguar los valores de sus botones. Usted puede averiguar haciendo algunas investigaciones en google, o puede descargar un bosquejo de decodificador IR. Por ahí hay muchos tutoriales sobre cómo hacer esto.
Si tienes problemas con alguna de esta "FoamboardRC" tiene un excelente instructable sobre el uso de mandos a distancia IR con Arduino. Aquí está el enlace a su instructivo:
Código:
//Gun Lamp
//By: austiwawa
#include <Servo.h> #include <IRremote.h>
unsigned long Value1 = 0xFF02FD; // where XXXXXXXX is on our your remote's values (OK button)
int relay_pin = 13; int recv_pin = 11; int actual_state = LOW;
// Postions for even, odd clicks const byte oddPosition = 84; const byte evenPostion = 40; int clickCount = 0; // # of clicks
IRrecv irrecv(recv_pin); decode_results results;
Servo servo1;
void setup() { pinMode(relay_pin, OUTPUT); Serial.begin(9600); irrecv.enableIRIn(); // Start the receiver servo1.attach(9); // attach servo to digital pin 9 }
void loop() { if (irrecv.decode(&results)) { Serial.println(results.value, HEX); if (results.value == Value1) { // button actual_state = (actual_state == LOW) ? HIGH : LOW; digitalWrite(relay_pin, actual_state); } irrecv.resume(); // Receive the next value if(results.value == Value1) {
// increment click count clickCount++;
// move to even or odd position based on click count servo1.write( (clickCount % 2) ? oddPosition : evenPostion);
}
} }