Aplicación para envío de mediciones analógicas a través de bluetooth y serial. Recepción de parámetros de configuración de PWM enviados desde aplicación Android

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 
00003 DigitalOut myled(LED_GREEN); //Parpadear led;
00004 Serial pc(USBTX, USBRX); //Configurar salida serial para PC;
00005 AnalogIn volt(PTB2); //Configirar puerto análogo;
00006 Serial bt(PTE0,PTE1);  //puertos del FRDM para el modem bluetooth;
00007 PwmOut PWM1(PTB3); //Configuro una salida PWM; 
00008 int main()
00009 {
00010     bt.baud(9600);   // asigno baudios y configuro puerto serie de la usart
00011     bt.format(8,Serial::None,1); //8bits - No parity bit - one stop bit
00012     int i = 0;
00013     int lectura =0; //Variable para leer desde el BT
00014     float voltaje=0; //Voltaje como float;
00015     float periodo = 0; //Periodo;
00016     int voltint; //Voltaje como entero
00017     float dutyC =0; //Ciclo de dureza;  
00018     //int comando=0; //Variable que usaré para saber qué parámetro está siendo enviado;
00019     pc.printf("Digital voltmeter using KL25z: \n\r Ing. Pablo Viana\n\r ");
00020     //bt.printf("Digital voltmeter using KL25z: \n\r Ing. Pablo Viana\n\r ");
00021     while (true) 
00022     { //Loop...
00023         voltaje = volt*3.3; //Leo el valor de la entrada analógica;
00024         voltint=volt*255;//Convierto a entero;
00025         
00026         wait(0.5); // wait a small period of time
00027         pc.printf("Voltage: %f \r\n", voltaje); // print the value of variable i
00028         i++; // increment the variable
00029         myled = !myled; // toggle a led
00030         
00031         /*Escribir en el bluetooth para enviar al appInventor*/
00032          if(voltint<256)
00033             {           //debo generar dos casos a APP inventor solo me recibe hex asi: 0xhhhh (4 cifras)    
00034            //bt.putc(0);     //si el numero es hasta 255 se le ponen dos ceros adelante a la secuencia de bits
00035            bt.putc(voltint);     //luego la cifra menos significativa
00036             }
00037             
00038             //Leer información del bluetooth
00039        if (bt.readable())
00040        {    
00041             
00042             lectura = bt.getc(); //Leo el valor del bluetooth;
00043             pc.printf("%i", lectura);
00044             wait(1);
00045             if (lectura <101)
00046             {
00047                 dutyC=lectura/100.0; //calculo el ciclo de dureza;
00048                 PWM1.write(dutyC);
00049                 pc.printf("DC: %f\n\r", dutyC);
00050                 wait(1);
00051             }
00052             
00053             if (lectura >100)
00054             {
00055                 periodo=1.0/lectura; //Calocular periodo del PWM;
00056                 PWM1.period (periodo);
00057                 
00058                 pc.printf("Periodo: %f\n\r", periodo);
00059                 wait(1);
00060             }        
00061 
00062         }
00063  
00064         
00065        
00066     }
00067 }