CAPTURAS DE CÓDIGOS IRDA SIN OSCILOSCOPIO, MIDE LA CANTIDAD DE ESPACIOS EN MODO NORMAL LA DURACIÓN Y EL PROMEDIO DE ELLOS. CON LA AYUDA DE PULSAR BAJO UN BOTÓN DEVUELVE EL CODIGO COMPLETO

Dependencies:   Pulse1 mbed

CÓDIGO PARA LA FRDMKL25Z PARA USAR ESTE PROGRAMA SE DEBE USAR UNA TERMINAL SERIE RECOMIENDO TERMITE SE BAJA DE ESTA PAGINA https://www.compuphase.com/software_termite.htm

RECUERDE QUE UNA VEZ CONECTADA LA FREEDOM BOARD DEBE CONSULTAR EL PUERTO ASIGNADO POR WINDOWS AUNQUE TERMITE DETECTA ESO AUTOMATICAMENTE.

PONER UN SENSOR IRDA DE 3,3V EN EL PUERTO PTD5 Y UN SUICHE EN PTD0 CON EL PUERTO DE SUICHE SIN ACCIONAR DISPARE CON EL CONTROL REMOTO ESPERE A QUE HAGA LA CAPTURA Y ENTREGUE EL PROMEDIO Y NUMERO DE DATOS

LUEGO ACCIONE EL SUICHE DE PTD0 O PONGA EL PUENTE INDICADO EN EL CÓDIGO A TIERRA Y VUELVA A DISPARAR ESPERE UNOS SEGUNDOS Y EL PROGRAMA LE ENTREGARA UN PATRÓN BINARIO DEL CÓDIGO RECIBIDO

NO REQUIERE NI SE DEBE HACER RESET ENTRE EL ACCIONAMIENTO DEL SUICHE TODOS LOS CÓDIGOS QUE SIGA DISPARANDO SERÁN RECONOCIDOS EN MODO NORMAL NO ESTA PROBADO EN CONTROLES SONY PERO PUEDE FUNCIONAR

Committer:
tony63
Date:
Sat Mar 18 00:59:20 2017 +0000
Revision:
0:86c0c1652dd4
Child:
1:69f833c768c8
CAPTURAS DE C?DIGOS IRDA SIN OSCILOSCOPIO, MIDE LA CANTIDAD DE ESPACIOS EN MODO NORMAL LA DURACI?N Y EL PROMEDIO DE ELLOS. CON LA AYUDA DE PULSAR BAJO UN BOT?N DEVUELVE EL CODIGO COMPLETO

Who changed what in which revision?

UserRevisionLine numberNew contents of line
tony63 0:86c0c1652dd4 1 #include "mbed.h"
tony63 0:86c0c1652dd4 2 #include <Pulse1.h>
tony63 0:86c0c1652dd4 3 PulseInOut irda(PTD5);// en este puerto se pone el sensor infrarrojo
tony63 0:86c0c1652dd4 4
tony63 0:86c0c1652dd4 5 Serial pc(USBTX, USBRX);
tony63 0:86c0c1652dd4 6 DigitalOut led(LED1);
tony63 0:86c0c1652dd4 7 DigitalOut led2(LED2);
tony63 0:86c0c1652dd4 8 DigitalIn mode(PTD0);
tony63 0:86c0c1652dd4 9 int numN[70];//cadena para almacenar todos los tiempos que conforman los bits de datos
tony63 0:86c0c1652dd4 10 int numP[70];//cadena para almacenar todos los tiempos que conforman los bits de datos
tony63 0:86c0c1652dd4 11 int dato; // tiempo de cada dato que se lee
tony63 0:86c0c1652dd4 12 int pul_low;
tony63 0:86c0c1652dd4 13 int i,j,k,header,proL,proH;
tony63 0:86c0c1652dd4 14 int r;
tony63 0:86c0c1652dd4 15 int main(){
tony63 0:86c0c1652dd4 16 Timer t;
tony63 0:86c0c1652dd4 17 fflush( stdin );
tony63 0:86c0c1652dd4 18 lop1: header = irda.read_low_us();
tony63 0:86c0c1652dd4 19 if(header>8000) goto seguir;
tony63 0:86c0c1652dd4 20 goto lop1;
tony63 0:86c0c1652dd4 21 seguir:
tony63 0:86c0c1652dd4 22 for(i=0;i<35;++i){
tony63 0:86c0c1652dd4 23 if(mode){
tony63 0:86c0c1652dd4 24 numN[i] = irda.read_low_us(); //funcion para leer un pulso de caida o bajo en header
tony63 0:86c0c1652dd4 25 }
tony63 0:86c0c1652dd4 26 if(!mode){
tony63 0:86c0c1652dd4 27 numP[i] = irda.read_high_us(); //funcion para leer un pulso de caida o bajo en header
tony63 0:86c0c1652dd4 28 }
tony63 0:86c0c1652dd4 29 //funcion para leer un pulso de caida o bajo en header
tony63 0:86c0c1652dd4 30 }
tony63 0:86c0c1652dd4 31
tony63 0:86c0c1652dd4 32 pc.printf("Header=%d \n",header," uS");
tony63 0:86c0c1652dd4 33 for(i=0;i<36;++i){
tony63 0:86c0c1652dd4 34 pc.printf(",%d, %d, %d \n",numN[i],i,numP[i]);
tony63 0:86c0c1652dd4 35
tony63 0:86c0c1652dd4 36 if(numN[i]>8000){
tony63 0:86c0c1652dd4 37 pc.printf("\n");
tony63 0:86c0c1652dd4 38 pc.printf("espacios=%d\n",i);
tony63 0:86c0c1652dd4 39 k=i;
tony63 0:86c0c1652dd4 40 proL=0;
tony63 0:86c0c1652dd4 41 for(i=0;i<k;++i){
tony63 0:86c0c1652dd4 42 proL=proL+numN[i];
tony63 0:86c0c1652dd4 43 }
tony63 0:86c0c1652dd4 44 proL=proL/k;
tony63 0:86c0c1652dd4 45 pc.printf("promedio_E=%d\n",proL);
tony63 0:86c0c1652dd4 46 wait(3);
tony63 0:86c0c1652dd4 47 pc.printf("\n");
tony63 0:86c0c1652dd4 48
tony63 0:86c0c1652dd4 49 if(!mode){
tony63 0:86c0c1652dd4 50 for(i=0;i<k-1;++i){
tony63 0:86c0c1652dd4 51 if(numP[i]>(2*proL)){
tony63 0:86c0c1652dd4 52 pc.printf("1");
tony63 0:86c0c1652dd4 53 }
tony63 0:86c0c1652dd4 54 if(numP[i]<(2*proL)){
tony63 0:86c0c1652dd4 55 pc.printf("0");
tony63 0:86c0c1652dd4 56 }
tony63 0:86c0c1652dd4 57 }
tony63 0:86c0c1652dd4 58 }
tony63 0:86c0c1652dd4 59
tony63 0:86c0c1652dd4 60 goto lop1;
tony63 0:86c0c1652dd4 61
tony63 0:86c0c1652dd4 62 }
tony63 0:86c0c1652dd4 63 }
tony63 0:86c0c1652dd4 64 }
tony63 0:86c0c1652dd4 65
tony63 0:86c0c1652dd4 66