Voltimetro en una aplicacion android para smartphone, mide el voltaje en un potenciometro y controla el brillo de un led

Dependencies:   mbed

main.cpp

Committer:
demo71
Date:
2015-11-25
Revision:
0:f27d7354d96c

File content as of revision 0:f27d7354d96c:

#include "mbed.h"
#include <stdio.h>

DigitalOut LedVerde(LED2);
DigitalOut LedRojo(LED1);
DigitalOut LedAzul(LED3);

Serial GSM(PTE0,PTE1);  //puertos del FRDM para el modem
Serial pc(USBTX,USBRX);
PwmOut PWM1 (PTB0);
int med,num,i,j,k;
float ciclo =0;
float periodo =0;
float read=0;
int leer=0;
AnalogIn input(PTC2);
  
int main(void)
 { 
       
GSM.baud(9600);         // asigno baudios y configuro puerto serie de la usart
GSM.format(8,Serial::None,1); 
               
while(1){ 
                              //leer el puerto analógico
wait(0.5);
num = input*1000;      //se escala el numero 
           //pc.printf("num=%d\n", num);

if(num<256){          //debo generar dos casos a APP inventor solo me recibe hex asi: 0xhhhh (4 cifras)    
GSM.putc(0);      //si el número es hasta 255 se le ponen dos ceros adelante a la secuencia de bits
           GSM.putc(i);      //luego la cifra menos significativa
       }
       if(num>255){          //pero si es mayor a 255 las cifras deben ser convertidas a un hex de dos bytes de la siguiente forma   
           j=num/256;        //calculo la cifra mas significativa
           k=num-j*256;      //calculo la cifra menos significativa
           GSM.putc(j);      //las envío a la usart para que se las ponga al modulo bluetooth y la lleve al android
           GSM.putc(k);      //mas significativa primero, menos después si no no funciona!!! y con la orden PUTC solo asi le envia binarios
    
       }
        //Se empieza a capturar datos del Celular
    if (GSM.readable())
       {    
    leer = GSM.getc(); //Leo el valor del bluetooth;          
    if (leer <101) {
    ciclo=leer/100.0; //Se calcula el ciclo de dureza;
    PWM1.write(ciclo); 
    
    // Para observar el valor que se recibe del celular
    //pc.printf("ciclo: %f\n\r", ciclo);
    }

    if (leer >101) {
    read=leer;
    periodo=((read-100.0))/100+0.1; //Calocular periodo del PWM;
    PWM1.period(periodo);
    // Para observar el valor que se recibe del celular
    // pc.printf("periodo: %f\n\r", periodo);  
}      
 
}
}
}