final

Dependencies:   DISCO_L475VG_IOT01A_wifi

Committer:
ascension2
Date:
Thu Aug 22 08:16:51 2019 +0000
Revision:
4:33b80026a3ee
Parent:
3:32b328935a54
final
;

Who changed what in which revision?

UserRevisionLine numberNew 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 4:33b80026a3ee 39 cds_state=1;
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 4:33b80026a3ee 50 cds_state=0;
ascension2 0:dc1150daf908 51 }
ascension2 4:33b80026a3ee 52
ascension2 3:32b328935a54 53 if((AutoMode==1)&&(blind_state==1)&&(cdsCount==5))
ascension2 3:32b328935a54 54 {
ascension2 3:32b328935a54 55 motor2CCW(10); // close
ascension2 3:32b328935a54 56
ascension2 3:32b328935a54 57 }
ascension2 3:32b328935a54 58 if((AutoMode==1)&&(blind_state==0)&&(cdsCount==0))
ascension2 3:32b328935a54 59 {
ascension2 3:32b328935a54 60 motor2CW(10); // Open
ascension2 3:32b328935a54 61
ascension2 3:32b328935a54 62 }
ascension2 0:dc1150daf908 63
ascension2 0:dc1150daf908 64
ascension2 0:dc1150daf908 65 }
ascension2 0:dc1150daf908 66 else
ascension2 0:dc1150daf908 67 {
ascension2 1:98939393d0db 68 if(cdsData<0.7f)
ascension2 1:98939393d0db 69 {
ascension2 4:33b80026a3ee 70 cds_state=1;
ascension2 1:98939393d0db 71 }
ascension2 1:98939393d0db 72 else
ascension2 1:98939393d0db 73 {
ascension2 4:33b80026a3ee 74 cds_state=0;
ascension2 1:98939393d0db 75 }
ascension2 0:dc1150daf908 76 pwmRed.write(red_value);
ascension2 0:dc1150daf908 77 pwmGreen.write(green_value);
ascension2 0:dc1150daf908 78 pwmBlue.write(blue_value);
ascension2 3:32b328935a54 79
ascension2 0:dc1150daf908 80 }
ascension2 4:33b80026a3ee 81
ascension2 0:dc1150daf908 82 }
ascension2 0:dc1150daf908 83 void setRGB(float Red,float Green,float Blue,int led_info)
ascension2 0:dc1150daf908 84 {
ascension2 3:32b328935a54 85 if(firstCycle==1)
ascension2 3:32b328935a54 86 {
ascension2 3:32b328935a54 87 red_value=255;
ascension2 3:32b328935a54 88 green_value=255;
ascension2 3:32b328935a54 89 blue_value=255;
ascension2 3:32b328935a54 90 cds_state=0;
ascension2 3:32b328935a54 91 led_state=0;
ascension2 3:32b328935a54 92
ascension2 3:32b328935a54 93 }
ascension2 0:dc1150daf908 94
ascension2 0:dc1150daf908 95 if (led_info ==0) // led off
ascension2 0:dc1150daf908 96 {
ascension2 0:dc1150daf908 97 red_value =0;
ascension2 0:dc1150daf908 98 blue_value =0;
ascension2 0:dc1150daf908 99 green_value =0;
ascension2 1:98939393d0db 100 led_state=0;
ascension2 0:dc1150daf908 101 }
ascension2 0:dc1150daf908 102 else if(led_info ==1) // led on
ascension2 0:dc1150daf908 103 {
ascension2 3:32b328935a54 104 red_value = Red*variation;
ascension2 3:32b328935a54 105 blue_value = Blue*variation;
ascension2 3:32b328935a54 106 green_value = Green*variation;
ascension2 1:98939393d0db 107 led_state=1;
ascension2 0:dc1150daf908 108 }
ascension2 4:33b80026a3ee 109
ascension2 4:33b80026a3ee 110 if((led_info ==2)||(AutoMode==1)) //user input value
ascension2 0:dc1150daf908 111 {
ascension2 0:dc1150daf908 112 red_value = Red*variation;
ascension2 0:dc1150daf908 113 blue_value = Blue*variation;
ascension2 0:dc1150daf908 114 green_value = Green*variation;
ascension2 1:98939393d0db 115 led_state=2;
ascension2 0:dc1150daf908 116 }
ascension2 0:dc1150daf908 117
ascension2 0:dc1150daf908 118 pwmLed();
ascension2 0:dc1150daf908 119
ascension2 0:dc1150daf908 120 }
ascension2 0:dc1150daf908 121
ascension2 0:dc1150daf908 122