Prometheus / Mbed 2 deprecated Prom_Roebi

Dependencies:   Farbsensor IRSensorLib PID_Control Servo mbed PixyLib

Revision:
8:077d0bb213a2
Parent:
6:d611637e7cad
Child:
9:b83994ef4b08
--- a/Farbauswertung.cpp	Wed May 17 07:38:41 2017 +0000
+++ b/Farbauswertung.cpp	Thu May 18 09:12:46 2017 +0000
@@ -29,7 +29,7 @@
     merker_rot1 = 0;
     merker_gruen =0;
     ausschaltZeit = 0;
-    einschlatZeit = 120;
+    einschlatZeit = 50;
 }
 
 void Farbauswertung::setSerialOutput(Serial *pc)
@@ -44,23 +44,33 @@
 
 void Farbauswertung::auswertung()
 {
-
-    if ((farbsensor.readg()>=68 && farbsensor.readg()<=70.5 && farbsensor.readr()>=69 && farbsensor.readr()<=72) || (farbsensor.readg()>=77 && farbsensor.readg()<=78 && farbsensor.readr()>=74 && farbsensor.readr()<=77) || (farbsensor.readg()>=75 && farbsensor.readg()<=76 && farbsensor.readr()>=75 && farbsensor.readr()<=77)) {
+merker_gruen=0;
+    if ((farbsensor.readg()>=68 && farbsensor.readg()<=70 && farbsensor.readr()>=70 && farbsensor.readr()<=71.6)|| (farbsensor.readg()>=77.2 && farbsensor.readg()<=77.39 && farbsensor.readr()>=75 && farbsensor.readr()<=77) || (farbsensor.readg()>=75 && farbsensor.readg()<=76 && farbsensor.readr()>=73 && farbsensor.readr()<=74)) {
 
-        zustand =rot;
-        if (merker_gruen==1) {   //Wenn wechsel Grün auf Rot Ausschaltzeit um X erhöhen
-            ausschaltZeit+=100;
-            if(ausschaltZeit !=0) { //Wenn die einschaltzeit nicht gleich Null ist muss die zeit plus die Einschaltverzögerung verlängert werden
-                ausschaltZeit+=(einschlatZeit+100);
-            }
+        merker_gruen=1;
+      
+        
+       if (zustand ==1 && ausschaltZeit ==0) {   //Wenn wechsel Grün auf Rot Ausschaltzeit um X erhöhen
+            ausschaltZeit+=180;
+            
+            zustand =0;
         }
-        merker_gruen = 0;
-    } else {
-        merker_gruen=1;
-        zustand=gruen; //Grünes oder gar kein Lego
+        if(zustand ==1 && ausschaltZeit !=0) { //Wenn die einschaltzeit nicht gleich Null ist muss die zeit plus die Einschaltverzögerung verlängert werden
+                ausschaltZeit+=(180);
+                
+                zustand =0;
+            
+        }
+       zustand =0;
+       wait(0.5);
+        
+    } 
+    if(merker_gruen==0) {
+        
+        zustand=1; //Grünes oder gar kein Lego
     }
 
-    if(zustand == rot || (merker_rot >=1 && merker_rot < einschlatZeit)) { //Einschaltverzögerung
+    if(zustand == 0 || (merker_rot >=1 && merker_rot < einschlatZeit)) { //Einschaltverzögerung
         merker_rot ++;
     }
     if (merker_rot == einschlatZeit) { //wenn einschaltzeit abgelaufen => MerkerRot1 setzen + MerkerRot zurücksetzen
@@ -86,9 +96,10 @@
         //Ausgaben an Konsole******************************************************
         if (pc) {
             pc->printf("\n\r");
-            pc->printf("Gruen:%f\n\r", farbsensor.readg());
-            pc->printf("Rot:%f\n\r", farbsensor.readr());
+           // pc->printf("Gruen:%f\n\r", farbsensor.readg());
+           // pc->printf("Rot:%f\n\r", farbsensor.readr());
             pc->printf("Status:%d\n\r",zustand);
+            pc->printf("Status Merker gruen:%d\n\r",merker_gruen);
             pc->printf("Status Merker rt:%d\n\r",merker_rot);
             pc->printf("Status Merker rot1:%d\n\r",merker_rot1);
             pc->printf("Ausschaltzeit:%d\n\r",ausschaltZeit);