Paso 4: Codificación de tiempo!
Una vez tengas el código hexadecimal para los botones que desea, nos podemos bajar codificación de tu Arduino para reaccionar!Al igual que en el programa IRrecord, necesita que la línea include:
#include < IRremote.h >
Ahora necesitas decirle a tu Arduino que está usando pin 11 para el receptor de infrarrojos:
int RECV_PIN = 11;
Inicializar las variables:
Cadena de ;
Cur de cadena = "";
Cur2 de cadena = "";
Añadir este material de lujo:
IRrecv irrecv(RECV_PIN);
9
10 resultados de la decode_results;
Ahora hacer su configuración:
void setup()
{
Serial.Begin(9600);
irrecv.enableIRIn(); Inicio del receptor
}
Ahora, en su ciclo, usted necesitará un bloque if() , Arduino sabe que está en busca de IR:
si (irrecv.decode (y resultados))
Dentro de este bloque if() , debe decir el Arduino para hacer la variable "en" una cadena de lo que el código hexadecimal es, dilo para obtener el siguiente valor de IR. Mi código imprime "en" a la SM para propósitos de depuración.
{
en = String(int(results.value), hexagonal);
irrecv.resume(); Recibir el siguiente valor
Serial.println(in);
}
Ahora necesita bloques if() y else if() para decirle a tu arduino qué hacer. Aquí es lo que tengo:
si (en == "8422" || en == "422" || en == "906f" || en == "38c7"){hold();}
else if (en == "841e" || en == "41e" || en == "18e7" || en == "a857"){straight();}
else if (en == "841f" || en == "41f" || en == "4ab5" || en == "e01f"){backup();}
else if (en == "8420" || en == "420" || en == "10ef" || en == "22dd"){left_turn();}
else if (en == "8421" || en == "421" || en == "5aa5" || en == "2fd"){right_turn();}
La primera if() busca el botón 5 para ser pulsado (lo tengo configurado para que funcionan varios mandos a distancia). Después de eso, usted puede tener más bloques if() , que ralentizará el Arduino si tienes suficiente de ellos, o puede utilizar bloques if() otra cosa . Cada bloque contiene una llamada de subrutina, que llama a esa subrutina específica para actuar. Esto impide que el código ser chatarra para arriba. Una subrutina del ejemplo se ve así:
straight() vacío
{
left.Write(82);
Right.Write(101);
}
Es decir el Arduino para activar los servos de izquierda y derecho en una cantidad específica por lo que conducen a velocidades iguales.
Ahora que ya tenemos las piezas de base juntas, nos podemos poner todos juntos!
#include < IRremote.h > De la secuencia Irrecv(RECV_PIN) de IRrecv; void setup() void loop() en = String(int(results.value), hexagonal);
int RECV_PIN = 11;
resultados de la decode_results;
{
Serial.Begin(9600);
irrecv.enableIRIn(); Inicio del receptor
}
{
Si (irrecv.decode (y resultados)) {}
irrecv.resume(); Recibir el siguiente valor
Serial.println(in);
Si (en ==
else if (en == < valor Hex > ) {< código >}
else if (en == < valor Hex >) {< código >}
else if (en == < valor Hex >) {< código >}
else if (en == < valor Hex >) {< código >}
}
}
Ahora usted puede simplemente modificar, subir y empezar a controlar tu Arduino con un control remoto de TV! ¡ Increíble!