![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Proyect for Digital Electronics II
Diff: Main/main.cpp
- 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); + } }