/control remoto sony disparo camara //puede convertir la trama en un entero //para cualquier tecla
Fork of irda_V_aula by
Revision 4:150bc6a5f5b4, committed 2016-04-26
- Comitter:
- tony63
- Date:
- Tue Apr 26 04:23:42 2016 +0000
- Parent:
- 3:82bebaf2a06a
- Commit message:
- /control remoto sony disparo camara; //puede convertir la trama en un entero y facilitar la comparacion; //para cualquier tecla
Changed in this revision
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
diff -r 82bebaf2a06a -r 150bc6a5f5b4 main.cpp --- a/main.cpp Thu May 08 00:38:39 2014 +0000 +++ b/main.cpp Tue Apr 26 04:23:42 2016 +0000 @@ -1,20 +1,29 @@ #include "mbed.h" #include <Pulse1.h> -//control remoto videobeam aula +#include "stdio.h" +#include "math.h" +//control remoto sony disparo camara +//puede convertir la trama en un entero +//para cualquier tecla 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 = 9120; //+10% medida con osciloscopio en microsegundos -const int head_L = 8939;//-10% medida con osciloscopio -int i=0; -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 +const int head_H = 2976; //+10% medida con osciloscopio en microsegundos +const int head_L = 1984;//-10% medida con osciloscopio +int i=0, bin, potencia; +const int T_alto=1200;//ponga su tiempo de la prueba +const int T_bajo=639;//ponga su tiempo de la prueba +const int num_bits = 20;//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 numero; +int binM[20]; +int bin_max[20]; + + + int main(){ while(1){ ini1: fflush( stdin ); @@ -27,23 +36,52 @@ seguir: //leo los datos de la trama y se meten a un arreglo - wait_us(4500);// ES EL TIEMPO DE HEADER QUE NO SE Lee O EL ALTO - led2=0; + wait_us(400);// ES EL TIEMPO DE HEADER QUE NO SE Lee O EL ALTO + led2=1; 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 + dato = irda.read_low_us(); //leer un bit de datos que es pulso arriba en este control num[i]=dato; - wait_us(300); + wait_us(400); } wait(0.5); //espero un poquito luego de leer todo el arreglo y ponerlo en pantalla - pc.printf(",%d",header); + //pc.printf(",%d",header); for(i=0;i<(num_bits-1);++i){ - pc.printf(",%d",num[i]); + //pc.printf(",%d",num[i]); } wait(0.1); //espero e imprimo en binario - pc.printf("\n\n"); + //pc.printf("\n\n"); for(i=0;i<(num_bits-1);++i){ - if(num[i] > ((T_alto+T_bajo)/2)) pc.printf("1"); - else pc.printf("0"); + if(num[i] > ((T_alto+T_bajo)/2)){ + bin_max[i]=1; + } + else{ + bin_max[i]=0; + } + + } + binM[0]=1; + for(i=1;i<(num_bits-1);++i){ + binM[i]=binM[i-1]*2; + + } + numero=0; + for(i=0;i<(num_bits-1);++i){ + + numero=numero+(binM[i]*bin_max[i]); + } + pc.printf("numero=%d",numero); + if (numero==466221){ + led2=0; + wait(4); + led2=1; + goto ini1; + } + if (numero==466231){ + led=0; + wait(4); + led=1; + goto ini1; + } } } \ No newline at end of file