Proyect for Digital Electronics II

Dependencies:   PIR mbed BH1750

Revision:
2:2a51bb467d8d
Parent:
1:31d8b73f51e6
Child:
4:1454e3abad62
--- a/Main/main.cpp	Sat Jul 06 23:35:51 2019 +0000
+++ b/Main/main.cpp	Sat Jul 06 23:58:30 2019 +0000
@@ -5,15 +5,45 @@
 //BH1750  lightSensor(I2C_SDA, I2C_SCL);
 BH1750  lightSensor(PB_9, PB_8);
 Serial pc(SERIAL_TX, SERIAL_RX);
+PwmOut led(PA_3);
 
 int main() 
 {
    lightSensor.init();
-
   
+   float Max_Level=54612.5;
+   float period=0.001;
+   float duty=1.0f;
+  float Desired_Level_1= Max_Level*10/100;
+  float Desired_Level_2= Max_Level*50/100;
+  float Desired_Level_3= Max_Level*90/100;
   
-   while(1) {
+while(1) 
+    {
+     float Actual_Level=lightSensor.readIntesity(); //Sample Time 120ms  Res 1 lx
+     if (Actual_Level<=Desired_Level_1)
+         {
+         duty=0.9f;    
+         }
+    else if ((Actual_Level>Desired_Level_1)&&(Actual_Level<=Desired_Level_2))
+        {
+        duty=0.5f;      
+        }
+    else if ((Actual_Level>Desired_Level_2)&&(Actual_Level<=Desired_Level_3))
+        {
+         duty=0.1f;     
+        }
+    else 
+        {
+         duty=1.0f;    
+        }
+    
+    
+    led.period(period);
+    led.write(duty);
+    
        pc.printf("Light intensity: %.4f Lux\r\n", lightSensor.readIntesity());
-       wait(3);
-   }
+       pc.printf("PWM Duty Cycle: %.2f %\r\n", duty*100);
+       wait(1);
+    }
 }