![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Muestra el color mediante reconocimineto de voz y appinventor.
Diff: main.cpp
- Revision:
- 0:08228390b7cf
- Child:
- 1:047ac18a6a5e
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Sun Nov 26 22:59:28 2017 +0000 @@ -0,0 +1,72 @@ +#include "mbed.h" +#include "TextLCD.h" + + +Serial device(PTE0, PTE1); // tx, rx +Serial pc(USBTX,USBRX); // pc +TextLCD lcd(PTE0, PTE1, PTE2, PTE3, PTE4, PTE5); // rs, e, d4-d7 + +char buffer[10]; // TAMAÑO DEL BUFER +Timer t; //VALOR DEL TIEMPO +int c=0,d; + +DigitalOut ledrojo(LED1); //rojo +DigitalOut ledverde(LED2); //verde +DigitalOut ledazul(LED3); //azul + + + +int readBuffer(char *buffer,int count) //esta funcion lee un bufer de datos +{ + int i=0; + t.start(); //CUENTA EL TIEMPO DE CONEXION E INICIA + while(1) { + while (device.readable()) { + char c = device.getc(); + if (c == '\r' || c == '\n') c = '$';//si se envia fin de linea o de caracter inserta $ + buffer[i++] = c;//mete al bufer el caracter leido + if(i > count)break;//sale del loop si ya detecto terminacion + } + if(i > count)break; + if(t.read() > 1) { //MAS DE UN SEGUNDO DE ESPERA SE SALE Y REINICA EL RELOJ Y SE SALE + t.stop(); + t.reset(); + break; + } + } + return 0; +} + +void cleanBuffer(char *buffer, int count) //esta funcion limpia el bufer +{ + for(int i=0; i < count; i++) { + buffer[i] = '\0'; + } +} + +int main() +{ + pc.baud(9600); // asigno baudios y configuro puerto serie de la PC + pc.format(8,Serial::None,1); + + device.baud(9600); // asigno baudios y configuro device + device.format(8,Serial::None,1); + + lcd.printf("ok"); // indica lcd funciona + ledverde=0; + ledrojo=1; + ledazul=1; + wait(1.5); + lcd.cls(); //limpiar lcd + ledverde=1; + + while(1) { + if (device.readable()) { + readBuffer(buffer,10); + lcd.cls(); + lcd.printf("%s", buffer); + ledazul=0; + cleanBuffer(buffer, 10); + } + } +}