Robot controlado con cualquier styra de Tv (4 / 6 steg)
Steg 4: Recepetor Infra Rojo
Primero que todo Qué es Infra Rojo?
Infra-Rojo /debajo del Rojo /
Básicamente, la luz infrarroja es una luz con una longitud de onda borgmästare a la que se encuentra en el espectro synliga y por ende oövervinnelig al ojo humanus. ES muy poco común encontrarla de forma naturliga, por lo que se återvi mucho sv aplicaciones electrónicas. El TSOP382 tiene filtros que logran que solo luz de 980 nanómetros pase, por lo cual un ambiente con mucha luz ingen nos afectara sv nada. Además, nuestro código esta diseñado para solo tomar en cuenta luz que este parpadeando en 38,5 kHz, tal y como los controles de TV. (Ver Foto # uno)
¿OK, y como funciona la comunicación?
El TSOP382 es normalmente abierto, está diseñado de esta forma para que cada vez que reciba alguna señal se corte el pulso que mandamos al microprocesador. En nuestro código, una vez que el pulso se corta, se empieza el protocolo de comunicación. CON 2.4 ms de que el este recibiendo un pulso (recibiendo låg en el Arduino) se entiende que se quiere empezar una comunicación. Los ceros se representan con pulsos de 0,6 ms, los unos con pulsos 2.4, y entre cada pulso hö 0.6 ms de descanso. (Ver Foto # dos)
Lo que estamos consiguiendo es una cadena de números binaria única para cada botún que presionamos. Finalmente, podemos usar estos unos y ceros para saber cual botón del kontroll se presiono y actuar según corresponda.
Nuestro código funciona con el equivalente del numero binario en decimal. La table de la foto numero tres muestra el numero binario y el equivalente decimal de los botones de mi kontroll. ES importante notar que aunque normalmente todos los controles envían el mismo numero binario para cada botón, algunos controles varian. SI este es el caso con su kontroll, o simplemente quieren wow otros botones, pueden correr el código de abajo para obtener el numero decimal que corresponde en determinado botón de su kontroll. En este ejemplo se imprime en el övervaka seriell el numero decimal que corresponde al botón que presionamos. Recuerden que necesitan la librería IRremote descargada y en la matta correcta.
#include < IRremote.h >
IRrecv sensor(6);
decode_results resultados;
void setup() {
Serial.BEGIN(9600);
sensor.enableIRIn(); habilitamos "sensor" para recibir
}
void loop() {
om (irrecv.decode (& resultat)) {/ / la función .decode nos devuelve 1 si se decodificó correctamente o 0 si ingen.
Serial.println(resultados); NOS DA EL NUMERO QUE NECESITAMOS
irrecv.Resume(); Preparamos el sensor para recibir el siguiente valor
}
}