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

Dependencies:   mbed

Committer:
demo71
Date:
Wed Nov 25 04:24:21 2015 +0000
Revision:
0:f27d7354d96c
Voltimetro en una aplicacion android para smartphone, mide el voltaje en un potenciometro y controla el brillo de un led

Who changed what in which revision?

UserRevisionLine numberNew contents of line
demo71 0:f27d7354d96c 1 #include "mbed.h"
demo71 0:f27d7354d96c 2 #include <stdio.h>
demo71 0:f27d7354d96c 3
demo71 0:f27d7354d96c 4 DigitalOut LedVerde(LED2);
demo71 0:f27d7354d96c 5 DigitalOut LedRojo(LED1);
demo71 0:f27d7354d96c 6 DigitalOut LedAzul(LED3);
demo71 0:f27d7354d96c 7
demo71 0:f27d7354d96c 8 Serial GSM(PTE0,PTE1); //puertos del FRDM para el modem
demo71 0:f27d7354d96c 9 Serial pc(USBTX,USBRX);
demo71 0:f27d7354d96c 10 PwmOut PWM1 (PTB0);
demo71 0:f27d7354d96c 11 int med,num,i,j,k;
demo71 0:f27d7354d96c 12 float ciclo =0;
demo71 0:f27d7354d96c 13 float periodo =0;
demo71 0:f27d7354d96c 14 float read=0;
demo71 0:f27d7354d96c 15 int leer=0;
demo71 0:f27d7354d96c 16 AnalogIn input(PTC2);
demo71 0:f27d7354d96c 17
demo71 0:f27d7354d96c 18 int main(void)
demo71 0:f27d7354d96c 19 {
demo71 0:f27d7354d96c 20
demo71 0:f27d7354d96c 21 GSM.baud(9600); // asigno baudios y configuro puerto serie de la usart
demo71 0:f27d7354d96c 22 GSM.format(8,Serial::None,1);
demo71 0:f27d7354d96c 23
demo71 0:f27d7354d96c 24 while(1){
demo71 0:f27d7354d96c 25 //leer el puerto analógico
demo71 0:f27d7354d96c 26 wait(0.5);
demo71 0:f27d7354d96c 27 num = input*1000; //se escala el numero
demo71 0:f27d7354d96c 28 //pc.printf("num=%d\n", num);
demo71 0:f27d7354d96c 29
demo71 0:f27d7354d96c 30 if(num<256){ //debo generar dos casos a APP inventor solo me recibe hex asi: 0xhhhh (4 cifras)
demo71 0:f27d7354d96c 31 GSM.putc(0); //si el número es hasta 255 se le ponen dos ceros adelante a la secuencia de bits
demo71 0:f27d7354d96c 32 GSM.putc(i); //luego la cifra menos significativa
demo71 0:f27d7354d96c 33 }
demo71 0:f27d7354d96c 34 if(num>255){ //pero si es mayor a 255 las cifras deben ser convertidas a un hex de dos bytes de la siguiente forma
demo71 0:f27d7354d96c 35 j=num/256; //calculo la cifra mas significativa
demo71 0:f27d7354d96c 36 k=num-j*256; //calculo la cifra menos significativa
demo71 0:f27d7354d96c 37 GSM.putc(j); //las envío a la usart para que se las ponga al modulo bluetooth y la lleve al android
demo71 0:f27d7354d96c 38 GSM.putc(k); //mas significativa primero, menos después si no no funciona!!! y con la orden PUTC solo asi le envia binarios
demo71 0:f27d7354d96c 39
demo71 0:f27d7354d96c 40 }
demo71 0:f27d7354d96c 41 //Se empieza a capturar datos del Celular
demo71 0:f27d7354d96c 42 if (GSM.readable())
demo71 0:f27d7354d96c 43 {
demo71 0:f27d7354d96c 44 leer = GSM.getc(); //Leo el valor del bluetooth;
demo71 0:f27d7354d96c 45 if (leer <101) {
demo71 0:f27d7354d96c 46 ciclo=leer/100.0; //Se calcula el ciclo de dureza;
demo71 0:f27d7354d96c 47 PWM1.write(ciclo);
demo71 0:f27d7354d96c 48
demo71 0:f27d7354d96c 49 // Para observar el valor que se recibe del celular
demo71 0:f27d7354d96c 50 //pc.printf("ciclo: %f\n\r", ciclo);
demo71 0:f27d7354d96c 51 }
demo71 0:f27d7354d96c 52
demo71 0:f27d7354d96c 53 if (leer >101) {
demo71 0:f27d7354d96c 54 read=leer;
demo71 0:f27d7354d96c 55 periodo=((read-100.0))/100+0.1; //Calocular periodo del PWM;
demo71 0:f27d7354d96c 56 PWM1.period(periodo);
demo71 0:f27d7354d96c 57 // Para observar el valor que se recibe del celular
demo71 0:f27d7354d96c 58 // pc.printf("periodo: %f\n\r", periodo);
demo71 0:f27d7354d96c 59 }
demo71 0:f27d7354d96c 60
demo71 0:f27d7354d96c 61 }
demo71 0:f27d7354d96c 62 }
demo71 0:f27d7354d96c 63 }