33
Dependencies: DISCO_L475VG_IOT01A_wifi
dustsensor.cpp@3:32b328935a54, 2019-08-21 (annotated)
- Committer:
- ascension2
- Date:
- Wed Aug 21 08:45:28 2019 +0000
- Revision:
- 3:32b328935a54
- Parent:
- 2:a460007a35c7
55
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ascension2 | 2:a460007a35c7 | 1 | #include"init_pin.h" |
ascension2 | 2:a460007a35c7 | 2 | #include"Motorcontrol.h" |
ascension2 | 2:a460007a35c7 | 3 | #include "mbed.h" |
ascension2 | 2:a460007a35c7 | 4 | |
ascension2 | 2:a460007a35c7 | 5 | AnalogIn dustIn(A5); |
ascension2 | 2:a460007a35c7 | 6 | DigitalOut dustled(D10); |
ascension2 | 2:a460007a35c7 | 7 | |
ascension2 | 2:a460007a35c7 | 8 | float dustValue = 0; |
ascension2 | 2:a460007a35c7 | 9 | float calcVoltage = 0; |
ascension2 | 2:a460007a35c7 | 10 | float dustDensity = 0; |
ascension2 | 2:a460007a35c7 | 11 | |
ascension2 | 2:a460007a35c7 | 12 | int T_dust_value; |
ascension2 | 2:a460007a35c7 | 13 | extern int AutoMode; |
ascension2 | 2:a460007a35c7 | 14 | |
ascension2 | 2:a460007a35c7 | 15 | extern int window_state; |
ascension2 | 2:a460007a35c7 | 16 | int M_dust; |
ascension2 | 3:32b328935a54 | 17 | uint8_t dustCount; |
ascension2 | 2:a460007a35c7 | 18 | void Dustcheck() |
ascension2 | 2:a460007a35c7 | 19 | { |
ascension2 | 2:a460007a35c7 | 20 | M_dust=0; |
ascension2 | 2:a460007a35c7 | 21 | dustled=0; |
ascension2 | 2:a460007a35c7 | 22 | wait_ms(0.28); |
ascension2 | 2:a460007a35c7 | 23 | |
ascension2 | 2:a460007a35c7 | 24 | dustValue = dustIn.read(); |
ascension2 | 2:a460007a35c7 | 25 | wait_ms(0.04); |
ascension2 | 2:a460007a35c7 | 26 | |
ascension2 | 2:a460007a35c7 | 27 | dustled=1; |
ascension2 | 2:a460007a35c7 | 28 | // wait_ms(9.68); |
ascension2 | 2:a460007a35c7 | 29 | dustValue=dustValue*5; |
ascension2 | 2:a460007a35c7 | 30 | if(dustValue <0.6) |
ascension2 | 2:a460007a35c7 | 31 | { |
ascension2 | 2:a460007a35c7 | 32 | dustValue =0.6; |
ascension2 | 2:a460007a35c7 | 33 | } |
ascension2 | 2:a460007a35c7 | 34 | |
ascension2 | 2:a460007a35c7 | 35 | dustDensity =((dustValue-0.6)/1.25)*1000.0; |
ascension2 | 2:a460007a35c7 | 36 | |
ascension2 | 2:a460007a35c7 | 37 | |
ascension2 | 2:a460007a35c7 | 38 | if(dustDensity >80) // standard of korea |
ascension2 | 2:a460007a35c7 | 39 | { |
ascension2 | 2:a460007a35c7 | 40 | T_dust_value=1; |
ascension2 | 2:a460007a35c7 | 41 | M_dust=1; |
ascension2 | 3:32b328935a54 | 42 | if(dustCount<5) |
ascension2 | 3:32b328935a54 | 43 | { |
ascension2 | 3:32b328935a54 | 44 | dustCount++; |
ascension2 | 3:32b328935a54 | 45 | } |
ascension2 | 2:a460007a35c7 | 46 | } |
ascension2 | 2:a460007a35c7 | 47 | else |
ascension2 | 2:a460007a35c7 | 48 | { |
ascension2 | 2:a460007a35c7 | 49 | T_dust_value=0; |
ascension2 | 2:a460007a35c7 | 50 | M_dust=2; |
ascension2 | 3:32b328935a54 | 51 | if(dustCount>0) |
ascension2 | 3:32b328935a54 | 52 | { |
ascension2 | 3:32b328935a54 | 53 | dustCount--; |
ascension2 | 3:32b328935a54 | 54 | } |
ascension2 | 2:a460007a35c7 | 55 | } |
ascension2 | 3:32b328935a54 | 56 | if((AutoMode==1)&&(M_dust==1)&&(window_state==1)&&(dustCount==5)) |
ascension2 | 2:a460007a35c7 | 57 | { |
ascension2 | 3:32b328935a54 | 58 | motor1CCW(10); // close |
ascension2 | 2:a460007a35c7 | 59 | M_dust=0; |
ascension2 | 2:a460007a35c7 | 60 | } |
ascension2 | 3:32b328935a54 | 61 | if((AutoMode==1)&&(M_dust==2)&&(window_state==0)&&(dustCount==0)) |
ascension2 | 2:a460007a35c7 | 62 | { |
ascension2 | 3:32b328935a54 | 63 | motor1CW(10); // Open |
ascension2 | 2:a460007a35c7 | 64 | M_dust=0; |
ascension2 | 2:a460007a35c7 | 65 | } |
ascension2 | 3:32b328935a54 | 66 | |
ascension2 | 2:a460007a35c7 | 67 | } |