Paso 7: Programa 2
#include
int RECV_PIN = A5;
int BUTTON_PIN = 12;
int STATUS_PIN = 9;
Irrecv(RECV_PIN) de IRrecv;
Irsend de IRsend;
resultados de la decode_results;
void setup()
{Keyboard.begin();
Serial.Begin(9600);
irrecv.enableIRIn(); Inicio del receptor
pinMode (BUTTON_PIN, entrada);
pinMode (STATUS_PIN, salida);
digitalWrite(STATUS_PIN,LOW);
}
Almacenamiento de información para el código grabado
codeType int = -1; El tipo de código
sin firmar largo codeValue; El valor del código si no cruda
unsigned int rawCodes [RAWBUF]; Las duraciones si raw
int codeLen; La longitud del código
conmutador int = 0; El estado de la palanca de RC5/6
Almacena el código para su posterior reproducción
La mayor parte de este código sólo es registro
void storeCode(decode_results *results) {}
codeType = resultados -> decode_type;
int cuenta = resultados -> rawlen;
Si (codeType == NEC) {}
Serial.Print ("recibido NEC:");
Si (resultados -> valor == repetición) {}
No se registra un valor de repetición de NEC como es inútil.
Serial.println ("repetición; ignorar.");
retorno;
}
}
Serial.println (resultados -> valor, hexagonal);
Serial.println (resultados -> valor);
codeValue = resultados -> valor;
codeLen = resultados -> bits;
Si (codeValue == 3724611569) //play
{Keyboard.write(0x70);}
else if (codeValue == 3724611580) //play/pause
{Keyboard.write(0x20);}
else if (codeValue == 3724611540) //mute
{Keyboard.write(0x6D);}
else if (codeValue == 3724611568) //stop
{Keyboard.write(0x73);}
else if (codeValue == 3724611526) //volume hasta
{Keyboard.press(0x80);
Keyboard.Press(0xDA);
Delay(15);
Keyboard.releaseAll();}
else if (codeValue == 3724611558) //volume abajo
{Keyboard.press(0x80);
Keyboard.Press(0xD9);
Delay(15);
Keyboard.releaseAll();}
else if (codeValue == 3724611520) //forward
{Keyboard.press(0x81);
Keyboard.Press(0xD7);
Keyboard.releaseAll();}
else if (codeValue == 3724611552) //backward
{Keyboard.press(0x81);
Keyboard.Press(0xD8);
Keyboard.releaseAll();}
else if (codeValue == 3724611574) //speedup
{Keyboard.write(0x5D);}
else if (codeValue == 3724611541) //speed abajo
{Keyboard.write(0x5B);}
}
int lastButtonState;
void loop() {}
Si presiona el botón, enviar el código.
Si (irrecv.decode (y resultados)) {}
digitalWrite (STATUS_PIN, alto);
storeCode(&results);
irrecv.resume(); reanudar el receptor
digitalWrite (STATUS_PIN, bajo);
}
}