33

Dependencies:   DISCO_L475VG_IOT01A_wifi

Revision:
3:32b328935a54
Parent:
2:a460007a35c7
--- a/LEDcontrol.cpp	Wed Aug 21 07:25:27 2019 +0000
+++ b/LEDcontrol.cpp	Wed Aug 21 08:45:28 2019 +0000
@@ -1,30 +1,38 @@
 #include "mbed.h"
 #include "init_pin.h"
+#include"Motorcontrol.h"
 
 PwmOut pwmRed(D0);
 PwmOut pwmGreen(D1);
 PwmOut pwmBlue(D2);
-
+uint8_t cdsCount;
 AnalogIn CDS(A0);
 
+extern int firstCycle;
 float const variation = 0.00392;  
 float red_value;
 float green_value;
 float blue_value;
-int automode;
+extern int AutoMode;
+extern int blind_state;
 int cds_state;
 int led_state;
 
 void pwmLed()
-{   
+{
+   
     float cdsData;
     cdsData = CDS.read();   
-    if (automode==1)
+    if (AutoMode==1)
     {
        
             
         if(cdsData<0.7f)
         {
+            if(cdsCount<5)
+            {
+                cdsCount++;
+            }
             pwmRed.write(0);     
             pwmGreen.write(0);  
             pwmBlue.write(0);
@@ -32,16 +40,28 @@
         }
        else 
         {   
+            if(cdsCount>0)
+            {
+              cdsCount--;
+            }
             pwmRed.write(red_value);     
             pwmGreen.write(green_value);  
             pwmBlue.write(blue_value); 
             cds_state=1;
         }
-
+    if((AutoMode==1)&&(blind_state==1)&&(cdsCount==5))
+     {
+        motor2CCW(10); // close
+        
+     }
+    if((AutoMode==1)&&(blind_state==0)&&(cdsCount==0))
+     {
+        motor2CW(10); // Open
+       
+     }  
         
  
     }
-
     else 
     { 
       if(cdsData<0.7f)
@@ -55,11 +75,20 @@
         pwmRed.write(red_value);     
         pwmGreen.write(green_value);  
         pwmBlue.write(blue_value);  
- 
+     
     }    
 }   
 void setRGB(float Red,float Green,float Blue,int led_info)
 {
+      if(firstCycle==1)
+    {
+        red_value=255;
+        green_value=255;
+        blue_value=255;
+        cds_state=0;
+        led_state=0; 
+             
+    }  
 
     if (led_info ==0) // led off
     {
@@ -70,10 +99,9 @@
     }
     else if(led_info ==1) // led on
     {
-        red_value =255*variation;
-        blue_value =255*variation;
-        green_value =255*variation;
-        automode =1;
+        red_value = Red*variation;
+        blue_value = Blue*variation;
+        green_value = Green*variation;
         led_state=1;
     }
     else if(led_info ==2) //user input value
@@ -81,7 +109,6 @@
         red_value = Red*variation;
         blue_value = Blue*variation;
         green_value = Green*variation;
-        automode = 0;
         led_state=2;
     }