Muestra el color mediante reconocimineto de voz y appinventor.

Dependencies:   TextLCD mbed

Committer:
caapalacioto
Date:
Tue Nov 28 13:02:49 2017 +0000
Revision:
1:047ac18a6a5e
Parent:
0:08228390b7cf
Cambio pines de lcd

Who changed what in which revision?

UserRevisionLine numberNew contents of line
caapalacioto 0:08228390b7cf 1 #include "mbed.h"
caapalacioto 0:08228390b7cf 2 #include "TextLCD.h"
caapalacioto 0:08228390b7cf 3
caapalacioto 0:08228390b7cf 4
caapalacioto 0:08228390b7cf 5 Serial device(PTE0, PTE1); // tx, rx
caapalacioto 0:08228390b7cf 6 Serial pc(USBTX,USBRX); // pc
caapalacioto 1:047ac18a6a5e 7 TextLCD lcd(PTB10, PTB11, PTE2, PTE3, PTE4, PTE5); // rs, e, d4-d7
caapalacioto 0:08228390b7cf 8
caapalacioto 0:08228390b7cf 9 char buffer[10]; // TAMAÑO DEL BUFER
caapalacioto 0:08228390b7cf 10 Timer t; //VALOR DEL TIEMPO
caapalacioto 0:08228390b7cf 11 int c=0,d;
caapalacioto 0:08228390b7cf 12
caapalacioto 0:08228390b7cf 13 DigitalOut ledrojo(LED1); //rojo
caapalacioto 0:08228390b7cf 14 DigitalOut ledverde(LED2); //verde
caapalacioto 0:08228390b7cf 15 DigitalOut ledazul(LED3); //azul
caapalacioto 0:08228390b7cf 16
caapalacioto 0:08228390b7cf 17
caapalacioto 0:08228390b7cf 18
caapalacioto 0:08228390b7cf 19 int readBuffer(char *buffer,int count) //esta funcion lee un bufer de datos
caapalacioto 0:08228390b7cf 20 {
caapalacioto 0:08228390b7cf 21 int i=0;
caapalacioto 0:08228390b7cf 22 t.start(); //CUENTA EL TIEMPO DE CONEXION E INICIA
caapalacioto 0:08228390b7cf 23 while(1) {
caapalacioto 0:08228390b7cf 24 while (device.readable()) {
caapalacioto 0:08228390b7cf 25 char c = device.getc();
caapalacioto 0:08228390b7cf 26 if (c == '\r' || c == '\n') c = '$';//si se envia fin de linea o de caracter inserta $
caapalacioto 0:08228390b7cf 27 buffer[i++] = c;//mete al bufer el caracter leido
caapalacioto 0:08228390b7cf 28 if(i > count)break;//sale del loop si ya detecto terminacion
caapalacioto 0:08228390b7cf 29 }
caapalacioto 0:08228390b7cf 30 if(i > count)break;
caapalacioto 0:08228390b7cf 31 if(t.read() > 1) { //MAS DE UN SEGUNDO DE ESPERA SE SALE Y REINICA EL RELOJ Y SE SALE
caapalacioto 0:08228390b7cf 32 t.stop();
caapalacioto 0:08228390b7cf 33 t.reset();
caapalacioto 0:08228390b7cf 34 break;
caapalacioto 0:08228390b7cf 35 }
caapalacioto 0:08228390b7cf 36 }
caapalacioto 0:08228390b7cf 37 return 0;
caapalacioto 0:08228390b7cf 38 }
caapalacioto 0:08228390b7cf 39
caapalacioto 0:08228390b7cf 40 void cleanBuffer(char *buffer, int count) //esta funcion limpia el bufer
caapalacioto 0:08228390b7cf 41 {
caapalacioto 0:08228390b7cf 42 for(int i=0; i < count; i++) {
caapalacioto 0:08228390b7cf 43 buffer[i] = '\0';
caapalacioto 0:08228390b7cf 44 }
caapalacioto 0:08228390b7cf 45 }
caapalacioto 0:08228390b7cf 46
caapalacioto 0:08228390b7cf 47 int main()
caapalacioto 0:08228390b7cf 48 {
caapalacioto 0:08228390b7cf 49 pc.baud(9600); // asigno baudios y configuro puerto serie de la PC
caapalacioto 0:08228390b7cf 50 pc.format(8,Serial::None,1);
caapalacioto 0:08228390b7cf 51
caapalacioto 0:08228390b7cf 52 device.baud(9600); // asigno baudios y configuro device
caapalacioto 0:08228390b7cf 53 device.format(8,Serial::None,1);
caapalacioto 0:08228390b7cf 54
caapalacioto 0:08228390b7cf 55 lcd.printf("ok"); // indica lcd funciona
caapalacioto 0:08228390b7cf 56 ledverde=0;
caapalacioto 0:08228390b7cf 57 ledrojo=1;
caapalacioto 0:08228390b7cf 58 ledazul=1;
caapalacioto 0:08228390b7cf 59 wait(1.5);
caapalacioto 0:08228390b7cf 60 lcd.cls(); //limpiar lcd
caapalacioto 0:08228390b7cf 61 ledverde=1;
caapalacioto 0:08228390b7cf 62
caapalacioto 0:08228390b7cf 63 while(1) {
caapalacioto 0:08228390b7cf 64 if (device.readable()) {
caapalacioto 0:08228390b7cf 65 readBuffer(buffer,10);
caapalacioto 0:08228390b7cf 66 lcd.cls();
caapalacioto 0:08228390b7cf 67 lcd.printf("%s", buffer);
caapalacioto 0:08228390b7cf 68 ledazul=0;
caapalacioto 0:08228390b7cf 69 cleanBuffer(buffer, 10);
caapalacioto 0:08228390b7cf 70 }
caapalacioto 0:08228390b7cf 71 }
caapalacioto 0:08228390b7cf 72 }