![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Programa para detectar tres teclas deun control LG
Dependencies: Pulse1 TextLCD mbed
Fork of irda_V_aula by
Diff: main.cpp
- Revision:
- 3:82bebaf2a06a
- Parent:
- 2:6a15ab0305c8
- Child:
- 4:f802aeaec9d0
diff -r 6a15ab0305c8 -r 82bebaf2a06a main.cpp --- a/main.cpp Fri Nov 08 07:40:04 2013 +0000 +++ b/main.cpp Thu May 08 00:38:39 2014 +0000 @@ -1,39 +1,40 @@ #include "mbed.h" #include <Pulse1.h> - +//control remoto videobeam aula PulseInOut irda(PTD5);// en este puerto se pone el sensor infrarrojo Serial pc(USBTX, USBRX); DigitalOut led(LED1); DigitalOut led2(LED2); int header =0; //tiempo de cabecera pulso abajo -const int head_H = 9100; //+20% medida con osciloscopio en microsegundos -const int head_L = 8500;//-20% medida con osciloscopio +const int head_H = 9120; //+10% medida con osciloscopio en microsegundos +const int head_L = 8939;//-10% medida con osciloscopio int i=0; -const int T_alto=1680;//ponga su tiempo de la prueba -const int T_bajo=526;//ponga su tiempo de la prueba -const int num_bits = 32;//ponga su numero de bits +const int T_alto=1630;//ponga su tiempo de la prueba +const int T_bajo=533;//ponga su tiempo de la prueba +const int num_bits = 64;//ponga su numero de bits int num[num_bits];//cadena para almacenar todos los tiempos que conforman los bits de datos int dato; // tiempo de cada dato que se lee int main(){ while(1){ -ini1: header=0; +ini1: fflush( stdin ); + header=0; led2=1; led=1; - header = irda.read_low_us(); //funcion para leer un pulso de caida o bajo + header = irda.read_low_us(); //funcion para leer un pulso de caida o bajo en header if (header > head_L && header < head_H) goto seguir;//verificar que este en la tolerancia +-20% else goto ini1; seguir: //leo los datos de la trama y se meten a un arreglo - wait_us(5000); + wait_us(4500);// ES EL TIEMPO DE HEADER QUE NO SE Lee O EL ALTO led2=0; for(i=0;i<(num_bits-1);++i){ // POR OSCILOSCOPIO se determina que llegan (num_bits),datos dato = irda.read_high_us(); //leer un bit de datos que es pulso arriba en este control num[i]=dato; wait_us(300); } - wait(0.5); //espero un poquito antes de leer todo el arreglo y ponerlo en pantalla + wait(0.5); //espero un poquito luego de leer todo el arreglo y ponerlo en pantalla pc.printf(",%d",header); for(i=0;i<(num_bits-1);++i){ pc.printf(",%d",num[i]);