Christian Hernandez
/
Tarea_slider_3_led
Recibe codigo ascii desde app inventor y enciende 3 leds proporcional a la posicion cada slider
main.cpp
- Committer:
- Christianh
- Date:
- 2017-11-21
- Revision:
- 0:940609834a0a
File content as of revision 0:940609834a0a:
//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 } } }