Muestra el color mediante reconocimineto de voz y appinventor.

Dependencies:   TextLCD mbed

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);
+        }
+    }
+}