Christian Hernandez
/
Tarea_slider_3_led
Recibe codigo ascii desde app inventor y enciende 3 leds proporcional a la posicion cada slider
Diff: main.cpp
- 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 + + + + + + + } + + + + + } +} + +