33

Dependencies:   DISCO_L475VG_IOT01A_wifi

Committer:
ascension2
Date:
Wed Aug 21 08:45:28 2019 +0000
Revision:
3:32b328935a54
Parent:
2:a460007a35c7
55

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 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