Programa para llenar un tanque de una cisterna por medio de un control de cámara sony. el sistema puede emitir sonidos por medio de un módulo de voz de Parallax EMIC.

Dependencies:   Pulse1 mbed

Fork of irda_Sony by Gustavo Ramirez

Committer:
tony63
Date:
Thu May 08 00:38:39 2014 +0000
Revision:
3:82bebaf2a06a
Parent:
2:6a15ab0305c8
Child:
4:150bc6a5f5b4
programa para el videobeam del aula de clase

Who changed what in which revision?

UserRevisionLine numberNew contents of line
tony63 0:74d57f8ae247 1 #include "mbed.h"
tony63 0:74d57f8ae247 2 #include <Pulse1.h>
tony63 3:82bebaf2a06a 3 //control remoto videobeam aula
tony63 2:6a15ab0305c8 4 PulseInOut irda(PTD5);// en este puerto se pone el sensor infrarrojo
tony63 0:74d57f8ae247 5 Serial pc(USBTX, USBRX);
tony63 0:74d57f8ae247 6 DigitalOut led(LED1);
tony63 2:6a15ab0305c8 7 DigitalOut led2(LED2);
tony63 2:6a15ab0305c8 8 int header =0; //tiempo de cabecera pulso abajo
tony63 3:82bebaf2a06a 9 const int head_H = 9120; //+10% medida con osciloscopio en microsegundos
tony63 3:82bebaf2a06a 10 const int head_L = 8939;//-10% medida con osciloscopio
tony63 2:6a15ab0305c8 11 int i=0;
tony63 3:82bebaf2a06a 12 const int T_alto=1630;//ponga su tiempo de la prueba
tony63 3:82bebaf2a06a 13 const int T_bajo=533;//ponga su tiempo de la prueba
tony63 3:82bebaf2a06a 14 const int num_bits = 64;//ponga su numero de bits
tony63 2:6a15ab0305c8 15 int num[num_bits];//cadena para almacenar todos los tiempos que conforman los bits de datos
tony63 2:6a15ab0305c8 16 int dato; // tiempo de cada dato que se lee
tony63 0:74d57f8ae247 17
tony63 0:74d57f8ae247 18 int main(){
tony63 0:74d57f8ae247 19 while(1){
tony63 3:82bebaf2a06a 20 ini1: fflush( stdin );
tony63 3:82bebaf2a06a 21 header=0;
tony63 2:6a15ab0305c8 22 led2=1;
tony63 0:74d57f8ae247 23 led=1;
tony63 3:82bebaf2a06a 24 header = irda.read_low_us(); //funcion para leer un pulso de caida o bajo en header
tony63 2:6a15ab0305c8 25 if (header > head_L && header < head_H) goto seguir;//verificar que este en la tolerancia +-20%
tony63 2:6a15ab0305c8 26 else goto ini1;
tony63 0:74d57f8ae247 27
tony63 2:6a15ab0305c8 28 seguir:
tony63 2:6a15ab0305c8 29 //leo los datos de la trama y se meten a un arreglo
tony63 3:82bebaf2a06a 30 wait_us(4500);// ES EL TIEMPO DE HEADER QUE NO SE Lee O EL ALTO
tony63 2:6a15ab0305c8 31 led2=0;
tony63 2:6a15ab0305c8 32 for(i=0;i<(num_bits-1);++i){ // POR OSCILOSCOPIO se determina que llegan (num_bits),datos
tony63 2:6a15ab0305c8 33 dato = irda.read_high_us(); //leer un bit de datos que es pulso arriba en este control
tony63 2:6a15ab0305c8 34 num[i]=dato;
tony63 2:6a15ab0305c8 35 wait_us(300);
tony63 2:6a15ab0305c8 36 }
tony63 3:82bebaf2a06a 37 wait(0.5); //espero un poquito luego de leer todo el arreglo y ponerlo en pantalla
tony63 2:6a15ab0305c8 38 pc.printf(",%d",header);
tony63 2:6a15ab0305c8 39 for(i=0;i<(num_bits-1);++i){
tony63 2:6a15ab0305c8 40 pc.printf(",%d",num[i]);
tony63 2:6a15ab0305c8 41 }
tony63 2:6a15ab0305c8 42 wait(0.1); //espero e imprimo en binario
tony63 2:6a15ab0305c8 43 pc.printf("\n\n");
tony63 2:6a15ab0305c8 44 for(i=0;i<(num_bits-1);++i){
tony63 2:6a15ab0305c8 45 if(num[i] > ((T_alto+T_bajo)/2)) pc.printf("1");
tony63 2:6a15ab0305c8 46 else pc.printf("0");
tony63 2:6a15ab0305c8 47 }
tony63 2:6a15ab0305c8 48 }
tony63 2:6a15ab0305c8 49 }