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

Dependencies:   mbed

Files at this revision

API Documentation at this revision

Comitter:
Christianh
Date:
Tue Nov 21 23:21:02 2017 +0000
Commit message:
Recibe datos desde app inventor y enciende led

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
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
+            
+            
+            
+            
+            
+             
+        }
+        
+ 
+        
+       
+    }
+}
+ 
+            
diff -r 000000000000 -r 940609834a0a mbed.bld
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Tue Nov 21 23:21:02 2017 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/fb8e0ae1cceb
\ No newline at end of file