![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Cambia intensidad de color del led, recibe valores de los sliders aplicación de app inventor
slider.cpp@0:9575c67ccb2d, 2017-11-28 (annotated)
- Committer:
- PROCESADORES_2017_2
- Date:
- Tue Nov 28 19:52:24 2017 +0000
- Revision:
- 0:9575c67ccb2d
Cambia intensidad de color del led, recibe valores de los sliders aplicaci?n de app inventor.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
PROCESADORES_2017_2 | 0:9575c67ccb2d | 1 | |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 2 | #include "mbed.h" |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 3 | |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 4 | |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 5 | Serial pc(USBTX, USBRX); //Configurar salida serial para PC; |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 6 | Serial BT(PTE22,PTE23); //RX-TX puertos del FRDM para el modem bluetooth; |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 7 | PwmOut PWM1(PTB1); //Configuro una salida PWM; |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 8 | PwmOut ledR(LED1); |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 9 | PwmOut ledV(LED2); |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 10 | PwmOut ledA(LED3); |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 11 | |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 12 | |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 13 | |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 14 | int main() |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 15 | { |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 16 | ledR=ledV=ledA=1; |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 17 | BT.baud(9600); // asigno baudios y configuro puerto serie de la usart |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 18 | BT.format(8,Serial::None,1); //8bits - No parity bit - one stop bit |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 19 | //int nu ; |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 20 | int val; |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 21 | |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 22 | char c ; //Variable para leer desde el BT |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 23 | |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 24 | |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 25 | |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 26 | //int comando=0; //Variable que usaré para saber qué parámetro está siendo enviado; |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 27 | pc.printf("Slider y led RGB: \n\r Procesadores 2017\n\r "); |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 28 | |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 29 | while (1) |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 30 | { //Loop... |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 31 | |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 32 | |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 33 | |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 34 | //Leer información del bluetooth |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 35 | if (BT.readable()) |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 36 | { |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 37 | |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 38 | c = BT.getc(); //Leo el valor del bluetooth; |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 39 | //LED ROJO--------------------------------------------------------- |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 40 | |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 41 | //el primer slider entrega valores entre 0-100 |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 42 | |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 43 | if ((c>0) && (c<=100)){ |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 44 | |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 45 | val= (int)(c); |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 46 | |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 47 | float p1= float(val); |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 48 | float p2=p1/100; |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 49 | if (p2<0.2){ |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 50 | p2=0; |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 51 | } |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 52 | ledR=(1-p2); |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 53 | |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 54 | //pc.printf("val p %.2f\n", p2); |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 55 | //wait(0.2); |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 56 | |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 57 | } |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 58 | |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 59 | //LED VERDE |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 60 | |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 61 | //el segundo slider entrega valores entre 100-200 |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 62 | if ((c>100) && (c<=200)){ |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 63 | |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 64 | val= (int)(c); |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 65 | val=val-100; //para que quede valor entre 0-100 |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 66 | |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 67 | float p1= float(val); //el entero v se convierte en flotante para dividir |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 68 | |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 69 | float p2=p1/100; |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 70 | if (p2<0.2){ //apaga en valores cercanos a 0 |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 71 | p2=0; |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 72 | } |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 73 | ledV=(1-p2); //el pwm se enciende entre 0-1 |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 74 | |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 75 | //pc.printf("val p %.2f\n", p2); |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 76 | //wait(0.2); |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 77 | |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 78 | } |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 79 | |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 80 | //LED AZUL |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 81 | if ((c>200) && (c<=300)){ |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 82 | |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 83 | if(c>255){ |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 84 | ledA=0; |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 85 | ledR=1; |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 86 | ledV=1; |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 87 | } |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 88 | |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 89 | else { |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 90 | |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 91 | val= (int)(c); |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 92 | val=val-200; |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 93 | |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 94 | //pc.printf("numero %i\n", v); |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 95 | float p1= float(val); |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 96 | |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 97 | float p3=p1/100; //lleva a rango [0-1] |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 98 | if (p3<0.2){ //en valores pequeños apaga |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 99 | p3=0; |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 100 | } |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 101 | ledA=(1-p3); |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 102 | ledR=1; |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 103 | ledV=1; |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 104 | //pc.printf("val p %.2f\n", p2); |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 105 | //wait(0.2); |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 106 | } |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 107 | } |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 108 | } |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 109 | } |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 110 | } |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 111 | |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 112 | |
PROCESADORES_2017_2 | 0:9575c67ccb2d | 113 |