sensor color con joystick y motores paso a paso mas pantalla LCD

Dependencies:   mbed

Revision:
2:d168f964c331
Parent:
1:334b40b47233
Child:
3:3454cb7584e1
--- a/main.cpp	Thu Feb 28 22:33:57 2019 +0000
+++ b/main.cpp	Fri Mar 08 05:49:38 2019 +0000
@@ -49,7 +49,11 @@
 
 #define INITELE 0xFE
 #define CMD  0x01
-
+#define DO  1300
+#define RE  1500 
+#define MI  1600
+#define FA  1800
+#define SO  2000 
 
 
 Serial command(USBTX, USBRX);
@@ -60,8 +64,8 @@
 void setup_uart();
 void leer_datos();
 void leer_color();
-
 uint8_t cmd;
+PwmOut mybuzzer(PA_10);
 
 int main() {
 
@@ -82,26 +86,111 @@
 
 void leer_datos(){
     while(command.getc()!= INITELE);
-    cmd=command.getc();
-
-    
+    cmd=command.getc();   
 }
 
 
 void leer_color(){
     
- 
-    
+    mybuzzer.write(0);
     long     red = scolor.ReadRed();
     long     green = scolor.ReadGreen();
     long     blue = scolor.ReadBlue();
     long     clear = scolor.ReadClear();
- 
+    
+    long frqred;
+    long frqgreen;
+    long frqblue;
+    long frqclear;
     printf("RED: %5d     GREEN: %5d     BLUE: %5d     CLEAR: %5d    \n ", red, green, blue, clear);
     
+    frqred = ( ( 1.0/red )* 1000.0 );
+    frqgreen = ( ( 1.0/green ) * 1000.0);
+    frqblue = ( (1.0/blue) *1000.0 );
+    frqclear = ( (1.0/clear) *1000.0 );
+    printf("RED: %5d     GREEN: %5d     BLUE: %5d     CLEAR: %5d    \n ", frqred, frqgreen, frqblue);
+ ///////////////////////////////////////////////////////////////////////////////
+ /*||||||||||||||||Seleccionando los diferentes colores.||||||||||||||||||||||*/
+ /*||||||||||||||||||||||||||||||Color rojo|||||||||||||||||||||||||||||||||||*/
+ /////////////////////////////////////////////////////////////////////////////// 
+    if ( frqred >= 84.0 and frqred <= 105.0) {
+        printf ( "entro al 1" );
+        if( frqgreen >= 0.0 and frqgreen <= 12.0 ) {
+            printf ( "entro al 2" );
+            if ( 5.0 >= frqblue <= 21.0 ) {  
+                
+                mybuzzer.period_us(DO);
+                mybuzzer.write(0.5);
+                wait(5);
+                mybuzzer.write(0);
+                printf ( "tiende a rojo" );
+            }
+        }
+    }
+////////////////////////////////////////////////////////////////////////////////
+ /*°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°Color verde°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°*/
+ ///////////////////////////////////////////////////////////////////////////////      
+    if ( frqgreen >= 57.0 and frqgreen <= 80.0) {
+        printf ( "entro al 1" );
+        if( frqred >= 9.0 and frqred <= 27.0 ) {
+            printf ( "entro al 2" );
+            if ( 8.0 >= frqblue <= 28.0 ) { 
+            
+            mybuzzer.period_us(RE);
+            mybuzzer.write(0.5);
+            wait(5);
+            mybuzzer.write(0);
+            printf ( "tiende a verde" );
+            }
+        }
+    }
+////////////////////////////////////////////////////////////////////////////////
+ /*°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°Color azul°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°*/
+ ///////////////////////////////////////////////////////////////////////////////       
+    if ( frqblue >= 61.0 and frqblue <= 84.0) {
+        printf ( "entro al 1" );
+        if( frqgreen >= 22.0 and frqgreen <= 43.0 ) {
+            printf ( "entro al 2" );
+            if ( 0.0 >= frqred <= 6.0 ) { 
+            
+            mybuzzer.period_us(MI);
+            mybuzzer.write(0.5);
+            wait(5);
+            mybuzzer.write(0);
+            printf ( "tiende a azul" ); 
+            }
+        }
+    }
+/////////////////////////////////////////////////////////////////////////////////
+/*°°°°°°°°°°°°°°°°°°°°°°°°°°°°°Color amarillo°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°*/
+ ////////////////////////////////////////////////////////////////////////////////
+    if ( frqblue >= 0.0 and frqblue <= 12.0 ) {
+        printf ( "entro al 1" );
+        if( frqgreen >= 20.0 and frqgreen <= 60.0 ) {
+            printf ( "entro al 2" );
+            if ( 0.0 >= frqred <= 6.0 ) {
+                
+            mybuzzer.period_us(FA);
+            mybuzzer.write(0.5);
+            wait(5);
+            mybuzzer.write(0);    
+            printf ( "tiende a amarillo" );
+            
+            }
+        }
+    }
+/////////////////////////////////////////////////////////////////////////////////
+/*°°°°°°°°°°°°°°°°°°°°°°°°°°°°°Color no found°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°*/
+ ////////////////////////////////////////////////////////////////////////////////
+ if ( frqclear >= 12.5 and frqclear <= 19.7 ) {}
+ else {
+     
+    mybuzzer.period_us(DO);
+    mybuzzer.write(0.5);
+    wait(5);
+    mybuzzer.write(0);
+    printf( "Color no found" );
+    
     }
-
-
+}
 
-    
-    
\ No newline at end of file