En esta tarea se gráfica el voltaje de un potenciometro, en el celular y se cambiará un pwm con botones en el mismo

Dependencies:   mbed

Revision:
0:aa7d0f8f7036
diff -r 000000000000 -r aa7d0f8f7036 main.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Tue Nov 24 04:47:14 2015 +0000
@@ -0,0 +1,66 @@
+#include "mbed.h"
+#include <stdio.h>
+
+PwmOut led(PTD0);   //Salida Pwm
+AnalogIn input(PTC2);    //Entrada potenciometro
+Serial GSM(PTE0,PTE1);   //puertos del FRDM para el modem
+Serial pc(USBTX,USBRX);  //Comunicacion PC
+
+int med,num,i,j,k,C;
+int Lectura
+float B=0,ciclo=0,periodo=0;
+
+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
+    
+       }
+        //Tomo lo que viene del bluetooth:
+        // Como no se como hacer para que la freescale sepa cual de los dos sliders le está mandando el dato de bit,
+        // Entones pongo un slider a mandar bits en un rango de valores y el otro en otro rango y lugo los transformo en número de 0 a 1.
+        
+       if (GSM.readable())
+       {    
+            
+            Lectura = GSM.getc(); //Leo el valor del slider;
+            pc.printf("%i\n\r", Lectura);
+            
+             if (Lectura <101) {      //condición para mostrar el ciclo de trabajo
+             
+                ciclo=Lectura/100.0; //calculo el ciclo de trabajo
+                led.write(ciclo);
+                pc.printf("Ciclo de Dureza: %f\n\r", ciclo);
+                
+            }
+
+            if (Lectura >101) {   //condición para mostrar el periodo
+            
+                B=Lectura;    
+                periodo=((B-100.0))/100+0.1; //Calculo el periodo
+                led.period (periodo);
+
+                pc.printf("Frecuencia: %f\n\r", periodo);
+                
+            }      
+ 
+        }
+}
+}       
\ No newline at end of file