33
Dependencies: DISCO_L475VG_IOT01A_wifi
Diff: LEDcontrol.cpp
- 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; }