33
Dependencies: DISCO_L475VG_IOT01A_wifi
LEDcontrol.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 | 0:dc1150daf908 | 1 | #include "mbed.h" |
ascension2 | 0:dc1150daf908 | 2 | #include "init_pin.h" |
ascension2 | 3:32b328935a54 | 3 | #include"Motorcontrol.h" |
ascension2 | 0:dc1150daf908 | 4 | |
ascension2 | 2:a460007a35c7 | 5 | PwmOut pwmRed(D0); |
ascension2 | 2:a460007a35c7 | 6 | PwmOut pwmGreen(D1); |
ascension2 | 2:a460007a35c7 | 7 | PwmOut pwmBlue(D2); |
ascension2 | 3:32b328935a54 | 8 | uint8_t cdsCount; |
ascension2 | 2:a460007a35c7 | 9 | AnalogIn CDS(A0); |
ascension2 | 0:dc1150daf908 | 10 | |
ascension2 | 3:32b328935a54 | 11 | extern int firstCycle; |
ascension2 | 0:dc1150daf908 | 12 | float const variation = 0.00392; |
ascension2 | 0:dc1150daf908 | 13 | float red_value; |
ascension2 | 0:dc1150daf908 | 14 | float green_value; |
ascension2 | 0:dc1150daf908 | 15 | float blue_value; |
ascension2 | 3:32b328935a54 | 16 | extern int AutoMode; |
ascension2 | 3:32b328935a54 | 17 | extern int blind_state; |
ascension2 | 1:98939393d0db | 18 | int cds_state; |
ascension2 | 1:98939393d0db | 19 | int led_state; |
ascension2 | 0:dc1150daf908 | 20 | |
ascension2 | 0:dc1150daf908 | 21 | void pwmLed() |
ascension2 | 3:32b328935a54 | 22 | { |
ascension2 | 3:32b328935a54 | 23 | |
ascension2 | 1:98939393d0db | 24 | float cdsData; |
ascension2 | 1:98939393d0db | 25 | cdsData = CDS.read(); |
ascension2 | 3:32b328935a54 | 26 | if (AutoMode==1) |
ascension2 | 0:dc1150daf908 | 27 | { |
ascension2 | 0:dc1150daf908 | 28 | |
ascension2 | 1:98939393d0db | 29 | |
ascension2 | 0:dc1150daf908 | 30 | if(cdsData<0.7f) |
ascension2 | 0:dc1150daf908 | 31 | { |
ascension2 | 3:32b328935a54 | 32 | if(cdsCount<5) |
ascension2 | 3:32b328935a54 | 33 | { |
ascension2 | 3:32b328935a54 | 34 | cdsCount++; |
ascension2 | 3:32b328935a54 | 35 | } |
ascension2 | 0:dc1150daf908 | 36 | pwmRed.write(0); |
ascension2 | 0:dc1150daf908 | 37 | pwmGreen.write(0); |
ascension2 | 0:dc1150daf908 | 38 | pwmBlue.write(0); |
ascension2 | 1:98939393d0db | 39 | cds_state=0; |
ascension2 | 0:dc1150daf908 | 40 | } |
ascension2 | 0:dc1150daf908 | 41 | else |
ascension2 | 0:dc1150daf908 | 42 | { |
ascension2 | 3:32b328935a54 | 43 | if(cdsCount>0) |
ascension2 | 3:32b328935a54 | 44 | { |
ascension2 | 3:32b328935a54 | 45 | cdsCount--; |
ascension2 | 3:32b328935a54 | 46 | } |
ascension2 | 0:dc1150daf908 | 47 | pwmRed.write(red_value); |
ascension2 | 0:dc1150daf908 | 48 | pwmGreen.write(green_value); |
ascension2 | 0:dc1150daf908 | 49 | pwmBlue.write(blue_value); |
ascension2 | 1:98939393d0db | 50 | cds_state=1; |
ascension2 | 0:dc1150daf908 | 51 | } |
ascension2 | 3:32b328935a54 | 52 | if((AutoMode==1)&&(blind_state==1)&&(cdsCount==5)) |
ascension2 | 3:32b328935a54 | 53 | { |
ascension2 | 3:32b328935a54 | 54 | motor2CCW(10); // close |
ascension2 | 3:32b328935a54 | 55 | |
ascension2 | 3:32b328935a54 | 56 | } |
ascension2 | 3:32b328935a54 | 57 | if((AutoMode==1)&&(blind_state==0)&&(cdsCount==0)) |
ascension2 | 3:32b328935a54 | 58 | { |
ascension2 | 3:32b328935a54 | 59 | motor2CW(10); // Open |
ascension2 | 3:32b328935a54 | 60 | |
ascension2 | 3:32b328935a54 | 61 | } |
ascension2 | 0:dc1150daf908 | 62 | |
ascension2 | 0:dc1150daf908 | 63 | |
ascension2 | 0:dc1150daf908 | 64 | } |
ascension2 | 0:dc1150daf908 | 65 | else |
ascension2 | 0:dc1150daf908 | 66 | { |
ascension2 | 1:98939393d0db | 67 | if(cdsData<0.7f) |
ascension2 | 1:98939393d0db | 68 | { |
ascension2 | 1:98939393d0db | 69 | cds_state=0; |
ascension2 | 1:98939393d0db | 70 | } |
ascension2 | 1:98939393d0db | 71 | else |
ascension2 | 1:98939393d0db | 72 | { |
ascension2 | 1:98939393d0db | 73 | cds_state=1; |
ascension2 | 1:98939393d0db | 74 | } |
ascension2 | 0:dc1150daf908 | 75 | pwmRed.write(red_value); |
ascension2 | 0:dc1150daf908 | 76 | pwmGreen.write(green_value); |
ascension2 | 0:dc1150daf908 | 77 | pwmBlue.write(blue_value); |
ascension2 | 3:32b328935a54 | 78 | |
ascension2 | 0:dc1150daf908 | 79 | } |
ascension2 | 0:dc1150daf908 | 80 | } |
ascension2 | 0:dc1150daf908 | 81 | void setRGB(float Red,float Green,float Blue,int led_info) |
ascension2 | 0:dc1150daf908 | 82 | { |
ascension2 | 3:32b328935a54 | 83 | if(firstCycle==1) |
ascension2 | 3:32b328935a54 | 84 | { |
ascension2 | 3:32b328935a54 | 85 | red_value=255; |
ascension2 | 3:32b328935a54 | 86 | green_value=255; |
ascension2 | 3:32b328935a54 | 87 | blue_value=255; |
ascension2 | 3:32b328935a54 | 88 | cds_state=0; |
ascension2 | 3:32b328935a54 | 89 | led_state=0; |
ascension2 | 3:32b328935a54 | 90 | |
ascension2 | 3:32b328935a54 | 91 | } |
ascension2 | 0:dc1150daf908 | 92 | |
ascension2 | 0:dc1150daf908 | 93 | if (led_info ==0) // led off |
ascension2 | 0:dc1150daf908 | 94 | { |
ascension2 | 0:dc1150daf908 | 95 | red_value =0; |
ascension2 | 0:dc1150daf908 | 96 | blue_value =0; |
ascension2 | 0:dc1150daf908 | 97 | green_value =0; |
ascension2 | 1:98939393d0db | 98 | led_state=0; |
ascension2 | 0:dc1150daf908 | 99 | } |
ascension2 | 0:dc1150daf908 | 100 | else if(led_info ==1) // led on |
ascension2 | 0:dc1150daf908 | 101 | { |
ascension2 | 3:32b328935a54 | 102 | red_value = Red*variation; |
ascension2 | 3:32b328935a54 | 103 | blue_value = Blue*variation; |
ascension2 | 3:32b328935a54 | 104 | green_value = Green*variation; |
ascension2 | 1:98939393d0db | 105 | led_state=1; |
ascension2 | 0:dc1150daf908 | 106 | } |
ascension2 | 0:dc1150daf908 | 107 | else if(led_info ==2) //user input value |
ascension2 | 0:dc1150daf908 | 108 | { |
ascension2 | 0:dc1150daf908 | 109 | red_value = Red*variation; |
ascension2 | 0:dc1150daf908 | 110 | blue_value = Blue*variation; |
ascension2 | 0:dc1150daf908 | 111 | green_value = Green*variation; |
ascension2 | 1:98939393d0db | 112 | led_state=2; |
ascension2 | 0:dc1150daf908 | 113 | } |
ascension2 | 0:dc1150daf908 | 114 | |
ascension2 | 0:dc1150daf908 | 115 | pwmLed(); |
ascension2 | 0:dc1150daf908 | 116 | |
ascension2 | 0:dc1150daf908 | 117 | } |
ascension2 | 0:dc1150daf908 | 118 | |
ascension2 | 0:dc1150daf908 | 119 |