Procesadores 2017
/
TAREA_1_MBEB
Cambia intensidad de color del led, recibe valores de los sliders aplicación de app inventor
Diff: slider.cpp
- Revision:
- 0:9575c67ccb2d
diff -r 000000000000 -r 9575c67ccb2d slider.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/slider.cpp Tue Nov 28 19:52:24 2017 +0000 @@ -0,0 +1,113 @@ + +#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(PTB1); //Configuro una salida PWM; +PwmOut ledR(LED1); +PwmOut ledV(LED2); +PwmOut ledA(LED3); + + + +int main() +{ + ledR=ledV=ledA=1; + 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 val; + + char c ; //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()) + { + + c = BT.getc(); //Leo el valor del bluetooth; + //LED ROJO--------------------------------------------------------- + + //el primer slider entrega valores entre 0-100 + + if ((c>0) && (c<=100)){ + + val= (int)(c); + + float p1= float(val); + float p2=p1/100; + if (p2<0.2){ + p2=0; + } + ledR=(1-p2); + + //pc.printf("val p %.2f\n", p2); + //wait(0.2); + + } + + //LED VERDE + + //el segundo slider entrega valores entre 100-200 + if ((c>100) && (c<=200)){ + + val= (int)(c); + val=val-100; //para que quede valor entre 0-100 + + float p1= float(val); //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); + + } + + //LED AZUL + if ((c>200) && (c<=300)){ + + if(c>255){ + ledA=0; + ledR=1; + ledV=1; + } + + else { + + val= (int)(c); + val=val-200; + + //pc.printf("numero %i\n", v); + float p1= float(val); + + 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; + //pc.printf("val p %.2f\n", p2); + //wait(0.2); + } + } + } + } +} + + + \ No newline at end of file