Recibe codigo ascii desde app inventor y enciende 3 leds proporcional a la posicion cada slider

Dependencies:   mbed

Revision:
0:940609834a0a
diff -r 000000000000 -r 940609834a0a main.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Tue Nov 21 23:21:02 2017 +0000
@@ -0,0 +1,153 @@
+
+//Christian Hernandez 
+//Jorge Montero
+//Fernando Suarez
+
+
+#include "mbed.h"
+ 
+
+Serial pc(USBTX, USBRX); //Configurar salida serial para PC;
+Serial bt(PTE22,PTE23);  //RX-TX  puertos del FRDM para el modem bluetooth;
+PwmOut PWM1(PTB3); //Configuro una salida PWM; 
+PwmOut ledR(LED1);
+PwmOut ledV(LED2);
+PwmOut ledA(LED3);
+
+
+
+int main()
+{
+    bt.baud(9600);   // asigno baudios y configuro puerto serie de la usart
+    bt.format(8,Serial::None,1); //8bits - No parity bit - one stop bit
+    //int nu ;
+    int v;
+    
+    char lectura ; //Variable para leer desde el BT
+
+    
+    
+    //int comando=0; //Variable que usaré para saber qué parámetro está siendo enviado;
+    pc.printf("Slider y led RGB: \n\r   Procesadores 2017\n\r ");
+    
+    while (1) 
+    { //Loop...
+        
+       
+            
+            //Leer información del bluetooth
+       if (bt.readable())
+       {    
+            
+            lectura = bt.getc(); //Leo el valor del bluetooth;
+            
+            
+            //pc.printf("caracter %c\n", lectura);
+            
+            //aca comienza condicional
+            //el primer slider entrega valores entre 0-100
+            if ((lectura>0) && (lectura<=100)){
+            
+            v= (int)(lectura);
+            
+            
+            pc.printf("numero %i\n", v);
+            float p1= float(v);
+            
+            float p2=p1/100;
+            if (p2<0.2){
+                p2=0;
+                }
+            ledR=(1-p2);
+            
+            pc.printf("val p %.2f\n", p2);
+            wait(0.2);
+                
+            }//aca termina condicional
+            
+            
+            
+            //aca comienza segundo condicional
+            //el segundo slider entrega valores entre 100-200
+            if ((lectura>100) && (lectura<=200)){
+            
+            
+            //pc.printf("segundo %c\n", lectura);
+            v= (int)(lectura);
+            v=v-100;   //para que quede valor entre 0-100
+            
+            //pc.printf("numero %i\n", v);
+            float p1= float(v);  //el entero v se convierte en flotante para dividir
+            
+            float p2=p1/100;
+            if (p2<0.2){   //apaga en valores cercanos a 0
+                p2=0;
+                }
+            ledV=(1-p2);  //el pwm se enciende entre 0-1
+            
+            pc.printf("val p %.2f\n", p2);
+            wait(0.2);
+                
+            }//aca termina condicional
+            
+            
+            //aca comienza tercer condicional
+            if ((lectura>200) && (lectura<=300)){
+                        //version 100
+                        //limitacion 8bit  
+                        if(lectura>255){
+                        ledA=0;    
+                        ledR=1;
+                        ledV=1;
+                        }
+                        
+                        / 
+                        else {
+                        
+                        //pc.printf("tercero %c\n", lectura);
+                        v= (int)(lectura);
+                        
+                        v=v-200;
+                        
+                        
+                        pc.printf("numero %i\n", v);
+                        float p1= float(v);
+                        
+                        float p3=p1/100;  //lleva a rango [0-1]
+                        if (p3<0.2){      //en valores pequeños apaga
+                            p3=0;
+                            }
+                            
+                        
+                        
+                        
+                        ledA=(1-p3);
+                        ledR=1;
+                        ledV=1;
+                        
+                        
+                        //fin limitacion
+                        
+                        //pc.printf("val p %.2f\n", p2);
+                        //wait(0.2);
+                        }
+                        
+                        
+                        
+                        
+            }//aca termina condicional
+            
+            
+            
+            
+            
+             
+        }
+        
+ 
+        
+       
+    }
+}
+ 
+