Juan Moreno
/
TotalSmartLights
Proyect for Digital Electronics II
Main/main.cpp@4:1454e3abad62, 2019-07-11 (annotated)
- Committer:
- junmorenodi
- Date:
- Thu Jul 11 13:42:21 2019 +0000
- Revision:
- 4:1454e3abad62
- Parent:
- 2:2a51bb467d8d
Con Libreria PIR;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
junmorenodi | 0:8e048063034d | 1 | #include "mbed.h" |
junmorenodi | 0:8e048063034d | 2 | #include "BH1750.h" |
junmorenodi | 4:1454e3abad62 | 3 | #include "PIR.h" |
junmorenodi | 1:31d8b73f51e6 | 4 | |
junmorenodi | 0:8e048063034d | 5 | //BH1750 lightSensor(I2C_SDA, I2C_SCL); |
junmorenodi | 0:8e048063034d | 6 | BH1750 lightSensor(PB_9, PB_8); |
junmorenodi | 0:8e048063034d | 7 | Serial pc(SERIAL_TX, SERIAL_RX); |
junmorenodi | 4:1454e3abad62 | 8 | PwmOut led(LED3); |
junmorenodi | 4:1454e3abad62 | 9 | PIR pir_obj(A0); |
junmorenodi | 4:1454e3abad62 | 10 | DigitalOut led_PIR(LED2); |
junmorenodi | 0:8e048063034d | 11 | |
junmorenodi | 0:8e048063034d | 12 | int main() |
junmorenodi | 0:8e048063034d | 13 | { |
junmorenodi | 0:8e048063034d | 14 | lightSensor.init(); |
junmorenodi | 0:8e048063034d | 15 | |
junmorenodi | 2:2a51bb467d8d | 16 | float Max_Level=54612.5; |
junmorenodi | 2:2a51bb467d8d | 17 | float period=0.001; |
junmorenodi | 2:2a51bb467d8d | 18 | float duty=1.0f; |
junmorenodi | 2:2a51bb467d8d | 19 | float Desired_Level_1= Max_Level*10/100; |
junmorenodi | 2:2a51bb467d8d | 20 | float Desired_Level_2= Max_Level*50/100; |
junmorenodi | 2:2a51bb467d8d | 21 | float Desired_Level_3= Max_Level*90/100; |
junmorenodi | 1:31d8b73f51e6 | 22 | |
junmorenodi | 2:2a51bb467d8d | 23 | while(1) |
junmorenodi | 2:2a51bb467d8d | 24 | { |
junmorenodi | 4:1454e3abad62 | 25 | |
junmorenodi | 4:1454e3abad62 | 26 | led_PIR=pir_obj.getData(); |
junmorenodi | 4:1454e3abad62 | 27 | |
junmorenodi | 2:2a51bb467d8d | 28 | float Actual_Level=lightSensor.readIntesity(); //Sample Time 120ms Res 1 lx |
junmorenodi | 2:2a51bb467d8d | 29 | if (Actual_Level<=Desired_Level_1) |
junmorenodi | 2:2a51bb467d8d | 30 | { |
junmorenodi | 2:2a51bb467d8d | 31 | duty=0.9f; |
junmorenodi | 2:2a51bb467d8d | 32 | } |
junmorenodi | 2:2a51bb467d8d | 33 | else if ((Actual_Level>Desired_Level_1)&&(Actual_Level<=Desired_Level_2)) |
junmorenodi | 2:2a51bb467d8d | 34 | { |
junmorenodi | 2:2a51bb467d8d | 35 | duty=0.5f; |
junmorenodi | 2:2a51bb467d8d | 36 | } |
junmorenodi | 2:2a51bb467d8d | 37 | else if ((Actual_Level>Desired_Level_2)&&(Actual_Level<=Desired_Level_3)) |
junmorenodi | 2:2a51bb467d8d | 38 | { |
junmorenodi | 2:2a51bb467d8d | 39 | duty=0.1f; |
junmorenodi | 2:2a51bb467d8d | 40 | } |
junmorenodi | 2:2a51bb467d8d | 41 | else |
junmorenodi | 2:2a51bb467d8d | 42 | { |
junmorenodi | 2:2a51bb467d8d | 43 | duty=1.0f; |
junmorenodi | 2:2a51bb467d8d | 44 | } |
junmorenodi | 2:2a51bb467d8d | 45 | |
junmorenodi | 2:2a51bb467d8d | 46 | |
junmorenodi | 2:2a51bb467d8d | 47 | led.period(period); |
junmorenodi | 2:2a51bb467d8d | 48 | led.write(duty); |
junmorenodi | 2:2a51bb467d8d | 49 | |
junmorenodi | 0:8e048063034d | 50 | pc.printf("Light intensity: %.4f Lux\r\n", lightSensor.readIntesity()); |
junmorenodi | 2:2a51bb467d8d | 51 | pc.printf("PWM Duty Cycle: %.2f %\r\n", duty*100); |
junmorenodi | 2:2a51bb467d8d | 52 | wait(1); |
junmorenodi | 2:2a51bb467d8d | 53 | } |
junmorenodi | 0:8e048063034d | 54 | } |