Voltimetro en una aplicacion android para smartphone, mide el voltaje en un potenciometro y controla el brillo de un led
main.cpp@0:f27d7354d96c, 2015-11-25 (annotated)
- 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?
User | Revision | Line number | New 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 | } |