steven Castro / Mbed 2 deprecated 00_LAB_COLOR_SENSOR_TCS3200

Dependencies:   mbed

Files at this revision

API Documentation at this revision

Comitter:
stevencastro
Date:
Thu Mar 07 21:26:34 2019 +0000
Parent:
1:334b40b47233
Commit message:
sensordecoloresfine

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/main.cpp	Thu Feb 28 22:33:57 2019 +0000
+++ b/main.cpp	Thu Mar 07 21:26:34 2019 +0000
@@ -46,22 +46,34 @@
  1 | 1  |           100%           |        |  1 | 1  |         Green       | 
              
 ******************************************************************************/
+#define INITCMD 0xFF // comando de sonido ff 01 3
+#define INITELE 0xFE // comando de sensor de colores fe 01
+#define CMD  0x01 // 
 
-#define INITELE 0xFE
-#define CMD  0x01
+#define DO  104 
+#define RE  153
+#define MI  166
+#define FA  184
+#define SO  205
 
 
 
 Serial command(USBTX, USBRX);
 //                     S0,    S1,   S2,   S3,    OUT
 scolor_TCS3200 scolor(PA_8, PB_10, PB_4, PB_5, PB_3);
+PwmOut mybuzzer(PB_9);
 
 // definición de las funciones
-void setup_uart();
-void leer_datos();
-void leer_color();
+
+void setup_uart(); // funcion conexion pc
+void leer_datos(); // funcion de lectura de comandos HEX
+void leer_color();// recepcion de la lectura de frecuencia del sensor 
+
+void buzzer_on(uint8_t tono, uint8_t tiempo);
 
 uint8_t cmd;
+uint8_t tono;    // variable almacena la frecuencia del buzzer
+uint8_t tiempo;    // varable almacena los tiempos del buzzer leer_datos()
 
 int main() {
 
@@ -70,20 +82,30 @@
         leer_datos();
         if (cmd==CMD){}
             leer_color();
+           buzzer_on(tono, tiempo);        
     }    
 }
 
 
 
 void setup_uart(){
+    
     command.baud(115200);
+    printf ("hola mundo sonido vicion");
+
+    
 }
 
 
 void leer_datos(){
+    
     while(command.getc()!= INITELE);
     cmd=command.getc();
 
+   while(command.getc()!= INITCMD);
+    tono=command.getc();
+    tiempo=command.getc();
+    
     
 }
 
@@ -97,11 +119,46 @@
     long     blue = scolor.ReadBlue();
     long     clear = scolor.ReadClear();
  
-    printf("RED: %5d     GREEN: %5d     BLUE: %5d     CLEAR: %5d    \n ", red, green, blue, clear);
+    //printf("RED: %5d     GREEN: %5d     BLUE: %5d     CLEAR: %5d    \n ", red, green, blue, clear);
+    
+    if (red < blue && green > blue && red < 35) 
+  {  
+   printf ("   Rojo");    
+  }   
+  else if (blue < red && blue < green && green < red)  
+  {  
+   printf ("   Azul");        
+  }    
+    else if (red > green && blue > green )  
+  {  
+   printf("   Verde");       
+  }  
+  else{
+  printf("  ");  
+  }   
+  }  
     
-    }
+
+void buzzer_on(uint8_t tono, uint8_t tiempo){
+        
+/* complementar el código necesario
+ */
 
-
+     mybuzzer.write(0);
+     switch(tono){
+        case 1: mybuzzer.period_us(DO);break;
+        case 2: mybuzzer.period_us(RE);break;
+        case 3: mybuzzer.period_us(MI);break;
+        case 4: mybuzzer.period_us(FA);break;
+        default:mybuzzer.period_us(SO); break;
+        }
+     mybuzzer.write(0.5);
+     
+     wait(tiempo);
+     mybuzzer.write(0);
+     
+   
+}
 
     
     
\ No newline at end of file