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

Dependencies:   mbed

Committer:
Christianh
Date:
Tue Nov 21 23:21:02 2017 +0000
Revision:
0:940609834a0a
Recibe datos desde app inventor y enciende led

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Christianh 0:940609834a0a 1
Christianh 0:940609834a0a 2 //Christian Hernandez
Christianh 0:940609834a0a 3 //Jorge Montero
Christianh 0:940609834a0a 4 //Fernando Suarez
Christianh 0:940609834a0a 5
Christianh 0:940609834a0a 6
Christianh 0:940609834a0a 7 #include "mbed.h"
Christianh 0:940609834a0a 8
Christianh 0:940609834a0a 9
Christianh 0:940609834a0a 10 Serial pc(USBTX, USBRX); //Configurar salida serial para PC;
Christianh 0:940609834a0a 11 Serial bt(PTE22,PTE23); //RX-TX puertos del FRDM para el modem bluetooth;
Christianh 0:940609834a0a 12 PwmOut PWM1(PTB3); //Configuro una salida PWM;
Christianh 0:940609834a0a 13 PwmOut ledR(LED1);
Christianh 0:940609834a0a 14 PwmOut ledV(LED2);
Christianh 0:940609834a0a 15 PwmOut ledA(LED3);
Christianh 0:940609834a0a 16
Christianh 0:940609834a0a 17
Christianh 0:940609834a0a 18
Christianh 0:940609834a0a 19 int main()
Christianh 0:940609834a0a 20 {
Christianh 0:940609834a0a 21 bt.baud(9600); // asigno baudios y configuro puerto serie de la usart
Christianh 0:940609834a0a 22 bt.format(8,Serial::None,1); //8bits - No parity bit - one stop bit
Christianh 0:940609834a0a 23 //int nu ;
Christianh 0:940609834a0a 24 int v;
Christianh 0:940609834a0a 25
Christianh 0:940609834a0a 26 char lectura ; //Variable para leer desde el BT
Christianh 0:940609834a0a 27
Christianh 0:940609834a0a 28
Christianh 0:940609834a0a 29
Christianh 0:940609834a0a 30 //int comando=0; //Variable que usaré para saber qué parámetro está siendo enviado;
Christianh 0:940609834a0a 31 pc.printf("Slider y led RGB: \n\r Procesadores 2017\n\r ");
Christianh 0:940609834a0a 32
Christianh 0:940609834a0a 33 while (1)
Christianh 0:940609834a0a 34 { //Loop...
Christianh 0:940609834a0a 35
Christianh 0:940609834a0a 36
Christianh 0:940609834a0a 37
Christianh 0:940609834a0a 38 //Leer información del bluetooth
Christianh 0:940609834a0a 39 if (bt.readable())
Christianh 0:940609834a0a 40 {
Christianh 0:940609834a0a 41
Christianh 0:940609834a0a 42 lectura = bt.getc(); //Leo el valor del bluetooth;
Christianh 0:940609834a0a 43
Christianh 0:940609834a0a 44
Christianh 0:940609834a0a 45 //pc.printf("caracter %c\n", lectura);
Christianh 0:940609834a0a 46
Christianh 0:940609834a0a 47 //aca comienza condicional
Christianh 0:940609834a0a 48 //el primer slider entrega valores entre 0-100
Christianh 0:940609834a0a 49 if ((lectura>0) && (lectura<=100)){
Christianh 0:940609834a0a 50
Christianh 0:940609834a0a 51 v= (int)(lectura);
Christianh 0:940609834a0a 52
Christianh 0:940609834a0a 53
Christianh 0:940609834a0a 54 pc.printf("numero %i\n", v);
Christianh 0:940609834a0a 55 float p1= float(v);
Christianh 0:940609834a0a 56
Christianh 0:940609834a0a 57 float p2=p1/100;
Christianh 0:940609834a0a 58 if (p2<0.2){
Christianh 0:940609834a0a 59 p2=0;
Christianh 0:940609834a0a 60 }
Christianh 0:940609834a0a 61 ledR=(1-p2);
Christianh 0:940609834a0a 62
Christianh 0:940609834a0a 63 pc.printf("val p %.2f\n", p2);
Christianh 0:940609834a0a 64 wait(0.2);
Christianh 0:940609834a0a 65
Christianh 0:940609834a0a 66 }//aca termina condicional
Christianh 0:940609834a0a 67
Christianh 0:940609834a0a 68
Christianh 0:940609834a0a 69
Christianh 0:940609834a0a 70 //aca comienza segundo condicional
Christianh 0:940609834a0a 71 //el segundo slider entrega valores entre 100-200
Christianh 0:940609834a0a 72 if ((lectura>100) && (lectura<=200)){
Christianh 0:940609834a0a 73
Christianh 0:940609834a0a 74
Christianh 0:940609834a0a 75 //pc.printf("segundo %c\n", lectura);
Christianh 0:940609834a0a 76 v= (int)(lectura);
Christianh 0:940609834a0a 77 v=v-100; //para que quede valor entre 0-100
Christianh 0:940609834a0a 78
Christianh 0:940609834a0a 79 //pc.printf("numero %i\n", v);
Christianh 0:940609834a0a 80 float p1= float(v); //el entero v se convierte en flotante para dividir
Christianh 0:940609834a0a 81
Christianh 0:940609834a0a 82 float p2=p1/100;
Christianh 0:940609834a0a 83 if (p2<0.2){ //apaga en valores cercanos a 0
Christianh 0:940609834a0a 84 p2=0;
Christianh 0:940609834a0a 85 }
Christianh 0:940609834a0a 86 ledV=(1-p2); //el pwm se enciende entre 0-1
Christianh 0:940609834a0a 87
Christianh 0:940609834a0a 88 pc.printf("val p %.2f\n", p2);
Christianh 0:940609834a0a 89 wait(0.2);
Christianh 0:940609834a0a 90
Christianh 0:940609834a0a 91 }//aca termina condicional
Christianh 0:940609834a0a 92
Christianh 0:940609834a0a 93
Christianh 0:940609834a0a 94 //aca comienza tercer condicional
Christianh 0:940609834a0a 95 if ((lectura>200) && (lectura<=300)){
Christianh 0:940609834a0a 96 //version 100
Christianh 0:940609834a0a 97 //limitacion 8bit
Christianh 0:940609834a0a 98 if(lectura>255){
Christianh 0:940609834a0a 99 ledA=0;
Christianh 0:940609834a0a 100 ledR=1;
Christianh 0:940609834a0a 101 ledV=1;
Christianh 0:940609834a0a 102 }
Christianh 0:940609834a0a 103
Christianh 0:940609834a0a 104 /
Christianh 0:940609834a0a 105 else {
Christianh 0:940609834a0a 106
Christianh 0:940609834a0a 107 //pc.printf("tercero %c\n", lectura);
Christianh 0:940609834a0a 108 v= (int)(lectura);
Christianh 0:940609834a0a 109
Christianh 0:940609834a0a 110 v=v-200;
Christianh 0:940609834a0a 111
Christianh 0:940609834a0a 112
Christianh 0:940609834a0a 113 pc.printf("numero %i\n", v);
Christianh 0:940609834a0a 114 float p1= float(v);
Christianh 0:940609834a0a 115
Christianh 0:940609834a0a 116 float p3=p1/100; //lleva a rango [0-1]
Christianh 0:940609834a0a 117 if (p3<0.2){ //en valores pequeños apaga
Christianh 0:940609834a0a 118 p3=0;
Christianh 0:940609834a0a 119 }
Christianh 0:940609834a0a 120
Christianh 0:940609834a0a 121
Christianh 0:940609834a0a 122
Christianh 0:940609834a0a 123
Christianh 0:940609834a0a 124 ledA=(1-p3);
Christianh 0:940609834a0a 125 ledR=1;
Christianh 0:940609834a0a 126 ledV=1;
Christianh 0:940609834a0a 127
Christianh 0:940609834a0a 128
Christianh 0:940609834a0a 129 //fin limitacion
Christianh 0:940609834a0a 130
Christianh 0:940609834a0a 131 //pc.printf("val p %.2f\n", p2);
Christianh 0:940609834a0a 132 //wait(0.2);
Christianh 0:940609834a0a 133 }
Christianh 0:940609834a0a 134
Christianh 0:940609834a0a 135
Christianh 0:940609834a0a 136
Christianh 0:940609834a0a 137
Christianh 0:940609834a0a 138 }//aca termina condicional
Christianh 0:940609834a0a 139
Christianh 0:940609834a0a 140
Christianh 0:940609834a0a 141
Christianh 0:940609834a0a 142
Christianh 0:940609834a0a 143
Christianh 0:940609834a0a 144
Christianh 0:940609834a0a 145 }
Christianh 0:940609834a0a 146
Christianh 0:940609834a0a 147
Christianh 0:940609834a0a 148
Christianh 0:940609834a0a 149
Christianh 0:940609834a0a 150 }
Christianh 0:940609834a0a 151 }
Christianh 0:940609834a0a 152
Christianh 0:940609834a0a 153