708 lines
25 KiB
C++
Executable File
708 lines
25 KiB
C++
Executable File
#define PWRLED 5
|
|
#define CHGLED 6
|
|
#define PWRBTN 8
|
|
#define CHGBTN 9
|
|
#define PWRMFT 11
|
|
#define VIN A0
|
|
#define LED1 A1
|
|
#define LED2 A2
|
|
#define LED3 A3
|
|
#define LED4 A4
|
|
#define LED5 A5
|
|
#define IN1 A6
|
|
#define IN2 A7
|
|
|
|
int i = 0;
|
|
int buttonPState = 0;
|
|
int buttonCState = 0;
|
|
boolean IsPowerOn = 0;
|
|
boolean isCharging = 0;
|
|
int sensorVal = 0;
|
|
float voltage = 0;
|
|
float countVal = 0;
|
|
void setup() {
|
|
pinMode(LED1, OUTPUT);
|
|
pinMode(LED2, OUTPUT);
|
|
pinMode(LED3, OUTPUT);
|
|
pinMode(LED4, OUTPUT);
|
|
pinMode(LED5, OUTPUT);
|
|
pinMode(PWRLED, OUTPUT);
|
|
pinMode(CHGLED, OUTPUT);
|
|
pinMode(PWRBTN, INPUT_PULLUP);
|
|
pinMode(CHGBTN, INPUT_PULLUP);
|
|
pinMode(PWRMFT, OUTPUT);
|
|
pinMode(VIN, INPUT);
|
|
digitalWrite (PWRMFT, LOW);
|
|
pinMode(IN1, INPUT);
|
|
pinMode(IN2, INPUT);
|
|
//Serial.begin(19200);
|
|
}
|
|
|
|
void loop() {
|
|
DidActionTakePlace();
|
|
ChechChg();
|
|
|
|
if (i>5000 && IsPowerOn == 1){
|
|
CheckVoltage();}
|
|
i++;
|
|
|
|
//Serial.println(voltage);
|
|
|
|
}
|
|
void BlinkPow() {
|
|
|
|
delay(200);
|
|
analogWrite(PWRLED, 0.00); delay(12);
|
|
analogWrite(PWRLED, 0.00); delay(12);
|
|
analogWrite(PWRLED, 0.02); delay(12);
|
|
analogWrite(PWRLED, 0.05); delay(12);
|
|
analogWrite(PWRLED, 0.09); delay(12);
|
|
analogWrite(PWRLED, 0.15); delay(12);
|
|
analogWrite(PWRLED, 0.23); delay(12);
|
|
analogWrite(PWRLED, 0.32); delay(12);
|
|
analogWrite(PWRLED, 0.43); delay(12);
|
|
analogWrite(PWRLED, 0.55); delay(12);
|
|
analogWrite(PWRLED, 0.70); delay(12);
|
|
analogWrite(PWRLED, 0.85); delay(12);
|
|
analogWrite(PWRLED, 1.01); delay(12);
|
|
analogWrite(PWRLED, 1.20); delay(12);
|
|
analogWrite(PWRLED, 1.42); delay(12);
|
|
analogWrite(PWRLED, 1.63); delay(12);
|
|
analogWrite(PWRLED, 1.85); delay(12);
|
|
analogWrite(PWRLED, 2.12); delay(12);
|
|
analogWrite(PWRLED, 2.40); delay(12);
|
|
analogWrite(PWRLED, 2.67); delay(12);
|
|
analogWrite(PWRLED, 2.99); delay(12);
|
|
analogWrite(PWRLED, 3.30); delay(12);
|
|
analogWrite(PWRLED, 3.65); delay(12);
|
|
analogWrite(PWRLED, 4.00); delay(12);
|
|
analogWrite(PWRLED, 4.39); delay(12);
|
|
analogWrite(PWRLED, 4.77); delay(12);
|
|
analogWrite(PWRLED, 5.16); delay(12);
|
|
analogWrite(PWRLED, 5.65); delay(12);
|
|
analogWrite(PWRLED, 6.08); delay(12);
|
|
analogWrite(PWRLED, 6.54); delay(12);
|
|
analogWrite(PWRLED, 7.01); delay(12);
|
|
analogWrite(PWRLED, 7.54); delay(12);
|
|
analogWrite(PWRLED, 8.10); delay(12);
|
|
analogWrite(PWRLED, 8.63); delay(12);
|
|
analogWrite(PWRLED, 9.23); delay(12);
|
|
analogWrite(PWRLED, 9.80); delay(12);
|
|
analogWrite(PWRLED, 10.45); delay(12);
|
|
analogWrite(PWRLED, 11.23); delay(12);
|
|
analogWrite(PWRLED, 11.98); delay(12);
|
|
analogWrite(PWRLED, 12.76); delay(12);
|
|
analogWrite(PWRLED, 13.70); delay(12);
|
|
analogWrite(PWRLED, 14.55); delay(12);
|
|
analogWrite(PWRLED, 15.43); delay(12);
|
|
analogWrite(PWRLED, 16.41); delay(12);
|
|
analogWrite(PWRLED, 17.43); delay(12);
|
|
analogWrite(PWRLED, 18.42); delay(12);
|
|
analogWrite(PWRLED, 19.52); delay(12);
|
|
analogWrite(PWRLED, 20.58); delay(12);
|
|
analogWrite(PWRLED, 21.75); delay(12);
|
|
analogWrite(PWRLED, 22.97); delay(12);
|
|
analogWrite(PWRLED, 24.15); delay(12);
|
|
analogWrite(PWRLED, 25.36); delay(12);
|
|
analogWrite(PWRLED, 26.80); delay(12);
|
|
analogWrite(PWRLED, 28.10); delay(12);
|
|
analogWrite(PWRLED, 29.44); delay(12);
|
|
analogWrite(PWRLED, 30.92); delay(12);
|
|
analogWrite(PWRLED, 32.45); delay(12);
|
|
analogWrite(PWRLED, 33.93); delay(12);
|
|
analogWrite(PWRLED, 35.56); delay(12);
|
|
analogWrite(PWRLED, 37.12); delay(12);
|
|
analogWrite(PWRLED, 38.85); delay(12);
|
|
analogWrite(PWRLED, 40.63); delay(12);
|
|
analogWrite(PWRLED, 42.35); delay(12);
|
|
analogWrite(PWRLED, 44.11); delay(12);
|
|
analogWrite(PWRLED, 46.18); delay(12);
|
|
analogWrite(PWRLED, 48.04); delay(12);
|
|
analogWrite(PWRLED, 49.95); delay(12);
|
|
analogWrite(PWRLED, 52.06); delay(12);
|
|
analogWrite(PWRLED, 54.22); delay(12);
|
|
analogWrite(PWRLED, 56.44); delay(12);
|
|
analogWrite(PWRLED, 58.57); delay(12);
|
|
analogWrite(PWRLED, 60.75); delay(12);
|
|
analogWrite(PWRLED, 63.30); delay(12);
|
|
analogWrite(PWRLED, 65.59); delay(12);
|
|
analogWrite(PWRLED, 67.93); delay(12);
|
|
analogWrite(PWRLED, 70.50); delay(12);
|
|
analogWrite(PWRLED, 73.12); delay(12);
|
|
analogWrite(PWRLED, 75.63); delay(12);
|
|
analogWrite(PWRLED, 78.37); delay(12);
|
|
analogWrite(PWRLED, 80.98); delay(12);
|
|
analogWrite(PWRLED, 83.84); delay(12);
|
|
analogWrite(PWRLED, 86.75); delay(12);
|
|
analogWrite(PWRLED, 89.52); delay(12);
|
|
analogWrite(PWRLED, 92.35); delay(12);
|
|
analogWrite(PWRLED, 95.63); delay(12);
|
|
analogWrite(PWRLED, 98.55); delay(12);
|
|
analogWrite(PWRLED, 101.52); delay(12);
|
|
analogWrite(PWRLED, 105.41); delay(12);
|
|
analogWrite(PWRLED, 108.92); delay(12);
|
|
analogWrite(PWRLED, 112.71); delay(12);
|
|
analogWrite(PWRLED, 116.33); delay(12);
|
|
analogWrite(PWRLED, 120.23); delay(12);
|
|
analogWrite(PWRLED, 124.19); delay(12);
|
|
analogWrite(PWRLED, 127.95); delay(12);
|
|
analogWrite(PWRLED, 131.99); delay(12);
|
|
analogWrite(PWRLED, 136.08); delay(12);
|
|
analogWrite(PWRLED, 139.95); delay(12);
|
|
analogWrite(PWRLED, 144.09); delay(12);
|
|
analogWrite(PWRLED, 148.26); delay(12);
|
|
analogWrite(PWRLED, 152.20); delay(12);
|
|
analogWrite(PWRLED, 156.40); delay(12);
|
|
analogWrite(PWRLED, 160.60); delay(12);
|
|
analogWrite(PWRLED, 164.81); delay(12);
|
|
analogWrite(PWRLED, 168.76); delay(12);
|
|
analogWrite(PWRLED, 172.70); delay(12);
|
|
analogWrite(PWRLED, 177.11); delay(12);
|
|
analogWrite(PWRLED, 181.01); delay(12);
|
|
analogWrite(PWRLED, 185.11); delay(12);
|
|
analogWrite(PWRLED, 189.17); delay(12);
|
|
analogWrite(PWRLED, 192.94); delay(12);
|
|
analogWrite(PWRLED, 196.89); delay(12);
|
|
analogWrite(PWRLED, 200.55); delay(12);
|
|
analogWrite(PWRLED, 204.59); delay(12);
|
|
analogWrite(PWRLED, 208.10); delay(12);
|
|
analogWrite(PWRLED, 211.52); delay(12);
|
|
analogWrite(PWRLED, 215.27); delay(12);
|
|
analogWrite(PWRLED, 218.50); delay(12);
|
|
analogWrite(PWRLED, 221.63); delay(12);
|
|
analogWrite(PWRLED, 224.83); delay(12);
|
|
analogWrite(PWRLED, 227.90); delay(12);
|
|
analogWrite(PWRLED, 230.83); delay(12);
|
|
analogWrite(PWRLED, 233.46); delay(12);
|
|
analogWrite(PWRLED, 236.10); delay(12);
|
|
analogWrite(PWRLED, 238.58); delay(12);
|
|
analogWrite(PWRLED, 240.76); delay(12);
|
|
analogWrite(PWRLED, 242.90); delay(12);
|
|
analogWrite(PWRLED, 244.87); delay(12);
|
|
analogWrite(PWRLED, 246.56); delay(12);
|
|
analogWrite(PWRLED, 248.17); delay(12);
|
|
analogWrite(PWRLED, 249.58); delay(12);
|
|
analogWrite(PWRLED, 250.80); delay(12);
|
|
analogWrite(PWRLED, 251.76); delay(12);
|
|
analogWrite(PWRLED, 252.59); delay(12);
|
|
analogWrite(PWRLED, 253.21); delay(12);
|
|
analogWrite(PWRLED, 253.60); delay(12);
|
|
analogWrite(PWRLED, 253.81); delay(12);
|
|
analogWrite(PWRLED, 253.8); delay(12);
|
|
analogWrite(PWRLED, 253.08); delay(12);
|
|
analogWrite(PWRLED, 253.54); delay(12);
|
|
analogWrite(PWRLED, 253.79); delay(12);
|
|
analogWrite(PWRLED, 253.84); delay(12);
|
|
analogWrite(PWRLED, 253.68); delay(12);
|
|
analogWrite(PWRLED, 253.32); delay(12);
|
|
analogWrite(PWRLED, 252.79); delay(12);
|
|
analogWrite(PWRLED, 252.03); delay(12);
|
|
analogWrite(PWRLED, 251.06); delay(12);
|
|
analogWrite(PWRLED, 249.96); delay(12);
|
|
analogWrite(PWRLED, 248.60); delay(12);
|
|
analogWrite(PWRLED, 247.05); delay(12);
|
|
analogWrite(PWRLED, 245.31); delay(12);
|
|
analogWrite(PWRLED, 243.50); delay(12);
|
|
analogWrite(PWRLED, 241.53); delay(12);
|
|
analogWrite(PWRLED, 239.14); delay(12);
|
|
analogWrite(PWRLED, 236.84); delay(12);
|
|
analogWrite(PWRLED, 234.25); delay(12);
|
|
analogWrite(PWRLED, 231.50); delay(12);
|
|
analogWrite(PWRLED, 228.78); delay(12);
|
|
analogWrite(PWRLED, 225.75); delay(12);
|
|
analogWrite(PWRLED, 222.77); delay(12);
|
|
analogWrite(PWRLED, 219.49); delay(12);
|
|
analogWrite(PWRLED, 216.09); delay(12);
|
|
analogWrite(PWRLED, 212.78); delay(12);
|
|
analogWrite(PWRLED, 208.96); delay(12);
|
|
analogWrite(PWRLED, 205.47); delay(12);
|
|
analogWrite(PWRLED, 201.91); delay(12);
|
|
analogWrite(PWRLED, 197.81); delay(12);
|
|
analogWrite(PWRLED, 194.11); delay(12);
|
|
analogWrite(PWRLED, 190.12); delay(12);
|
|
analogWrite(PWRLED, 186.31); delay(12);
|
|
analogWrite(PWRLED, 182.22); delay(12);
|
|
analogWrite(PWRLED, 178.09); delay(12);
|
|
analogWrite(PWRLED, 174.17); delay(12);
|
|
analogWrite(PWRLED, 169.75); delay(12);
|
|
analogWrite(PWRLED, 165.80); delay(12);
|
|
analogWrite(PWRLED, 161.84); delay(12);
|
|
analogWrite(PWRLED, 157.64); delay(12);
|
|
analogWrite(PWRLED, 153.43); delay(12);
|
|
analogWrite(PWRLED, 149.24); delay(12);
|
|
analogWrite(PWRLED, 145.32); delay(12);
|
|
analogWrite(PWRLED, 141.16); delay(12);
|
|
analogWrite(PWRLED, 137.04); delay(12);
|
|
analogWrite(PWRLED, 133.19); delay(12);
|
|
analogWrite(PWRLED, 129.37); delay(12);
|
|
analogWrite(PWRLED, 125.12); delay(12);
|
|
analogWrite(PWRLED, 121.39); delay(12);
|
|
analogWrite(PWRLED, 117.47); delay(12);
|
|
analogWrite(PWRLED, 113.61); delay(12);
|
|
analogWrite(PWRLED, 110.03); delay(12);
|
|
analogWrite(PWRLED, 106.28); delay(12);
|
|
analogWrite(PWRLED, 102.81); delay(12);
|
|
analogWrite(PWRLED, 98.97); delay(12);
|
|
analogWrite(PWRLED, 96.04); delay(12);
|
|
analogWrite(PWRLED, 93.16); delay(12);
|
|
analogWrite(PWRLED, 89.92); delay(12);
|
|
analogWrite(PWRLED, 87.15); delay(12);
|
|
analogWrite(PWRLED, 84.42); delay(12);
|
|
analogWrite(PWRLED, 81.55); delay(12);
|
|
analogWrite(PWRLED, 78.74); delay(12);
|
|
analogWrite(PWRLED, 76.17); delay(12);
|
|
analogWrite(PWRLED, 73.48); delay(12);
|
|
analogWrite(PWRLED, 71.02); delay(12);
|
|
analogWrite(PWRLED, 68.44); delay(12);
|
|
analogWrite(PWRLED, 65.92); delay(12);
|
|
analogWrite(PWRLED, 63.62); delay(12);
|
|
analogWrite(PWRLED, 61.38); delay(12);
|
|
analogWrite(PWRLED, 58.88); delay(12);
|
|
analogWrite(PWRLED, 56.74); delay(12);
|
|
analogWrite(PWRLED, 54.66); delay(12);
|
|
analogWrite(PWRLED, 52.49); delay(12);
|
|
analogWrite(PWRLED, 50.37); delay(12);
|
|
analogWrite(PWRLED, 48.45); delay(12);
|
|
analogWrite(PWRLED, 46.44); delay(12);
|
|
analogWrite(PWRLED, 44.62); delay(12);
|
|
analogWrite(PWRLED, 42.72); delay(12);
|
|
analogWrite(PWRLED, 40.88); delay(12);
|
|
analogWrite(PWRLED, 39.20); delay(12);
|
|
analogWrite(PWRLED, 37.58); delay(12);
|
|
analogWrite(PWRLED, 35.78); delay(12);
|
|
analogWrite(PWRLED, 34.25); delay(12);
|
|
analogWrite(PWRLED, 32.66); delay(12);
|
|
analogWrite(PWRLED, 31.22); delay(12);
|
|
analogWrite(PWRLED, 29.73); delay(12);
|
|
analogWrite(PWRLED, 28.29); delay(12);
|
|
analogWrite(PWRLED, 26.98); delay(12);
|
|
analogWrite(PWRLED, 25.71); delay(12);
|
|
analogWrite(PWRLED, 24.32); delay(12);
|
|
analogWrite(PWRLED, 23.14); delay(12);
|
|
analogWrite(PWRLED, 21.99); delay(12);
|
|
analogWrite(PWRLED, 20.81); delay(12);
|
|
analogWrite(PWRLED, 19.66); delay(12);
|
|
analogWrite(PWRLED, 18.64); delay(12);
|
|
analogWrite(PWRLED, 17.57); delay(12);
|
|
analogWrite(PWRLED, 16.61); delay(12);
|
|
analogWrite(PWRLED, 15.62); delay(12);
|
|
analogWrite(PWRLED, 14.67); delay(12);
|
|
analogWrite(PWRLED, 13.82); delay(12);
|
|
analogWrite(PWRLED, 12.99); delay(12);
|
|
analogWrite(PWRLED, 12.09); delay(12);
|
|
analogWrite(PWRLED, 11.33); delay(12);
|
|
analogWrite(PWRLED, 10.60); delay(12);
|
|
analogWrite(PWRLED, 9.85); delay(12);
|
|
analogWrite(PWRLED, 9.23); delay(12);
|
|
analogWrite(PWRLED, 8.68); delay(12);
|
|
analogWrite(PWRLED, 8.10); delay(12);
|
|
analogWrite(PWRLED, 7.58); delay(12);
|
|
analogWrite(PWRLED, 7.09); delay(12);
|
|
analogWrite(PWRLED, 6.58); delay(12);
|
|
analogWrite(PWRLED, 6.08); delay(12);
|
|
analogWrite(PWRLED, 5.65); delay(12);
|
|
analogWrite(PWRLED, 5.23); delay(12);
|
|
analogWrite(PWRLED, 4.77); delay(12);
|
|
analogWrite(PWRLED, 4.39); delay(12);
|
|
analogWrite(PWRLED, 4.03); delay(12);
|
|
analogWrite(PWRLED, 3.65); delay(12);
|
|
analogWrite(PWRLED, 3.33); delay(12);
|
|
analogWrite(PWRLED, 2.99); delay(12);
|
|
analogWrite(PWRLED, 2.70); delay(12);
|
|
analogWrite(PWRLED, 2.40); delay(12);
|
|
analogWrite(PWRLED, 2.14); delay(12);
|
|
analogWrite(PWRLED, 1.87); delay(12);
|
|
analogWrite(PWRLED, 1.63); delay(12);
|
|
analogWrite(PWRLED, 1.42); delay(12);
|
|
analogWrite(PWRLED, 1.22); delay(12);
|
|
analogWrite(PWRLED, 1.04); delay(12);
|
|
analogWrite(PWRLED, 0.85); delay(12);
|
|
analogWrite(PWRLED, 0.70); delay(12);
|
|
analogWrite(PWRLED, 0.56); delay(12);
|
|
analogWrite(PWRLED, 0.43); delay(12);
|
|
analogWrite(PWRLED, 0.33); delay(12);
|
|
analogWrite(PWRLED, 0.23); delay(12);
|
|
analogWrite(PWRLED, 0.15); delay(12);
|
|
analogWrite(PWRLED, 0.09); delay(12);
|
|
analogWrite(PWRLED, 0.05); delay(12);
|
|
analogWrite(PWRLED, 0.02); delay(12);
|
|
}
|
|
void BlinkChg() {
|
|
delay(200);
|
|
analogWrite(CHGLED, 0.00); delay(12);
|
|
analogWrite(CHGLED, 0.00); delay(12);
|
|
analogWrite(CHGLED, 0.02); delay(12);
|
|
analogWrite(CHGLED, 0.05); delay(12);
|
|
analogWrite(CHGLED, 0.09); delay(12);
|
|
analogWrite(CHGLED, 0.15); delay(12);
|
|
analogWrite(CHGLED, 0.23); delay(12);
|
|
analogWrite(CHGLED, 0.32); delay(12);
|
|
analogWrite(CHGLED, 0.43); delay(12);
|
|
analogWrite(CHGLED, 0.55); delay(12);
|
|
analogWrite(CHGLED, 0.70); delay(12);
|
|
analogWrite(CHGLED, 0.85); delay(12);
|
|
analogWrite(CHGLED, 1.01); delay(12);
|
|
analogWrite(CHGLED, 1.20); delay(12);
|
|
analogWrite(CHGLED, 1.42); delay(12);
|
|
analogWrite(CHGLED, 1.63); delay(12);
|
|
analogWrite(CHGLED, 1.85); delay(12);
|
|
analogWrite(CHGLED, 2.12); delay(12);
|
|
analogWrite(CHGLED, 2.40); delay(12);
|
|
analogWrite(CHGLED, 2.67); delay(12);
|
|
analogWrite(CHGLED, 2.99); delay(12);
|
|
analogWrite(CHGLED, 3.30); delay(12);
|
|
analogWrite(CHGLED, 3.65); delay(12);
|
|
analogWrite(CHGLED, 4.00); delay(12);
|
|
analogWrite(CHGLED, 4.39); delay(12);
|
|
analogWrite(CHGLED, 4.77); delay(12);
|
|
analogWrite(CHGLED, 5.16); delay(12);
|
|
analogWrite(CHGLED, 5.65); delay(12);
|
|
analogWrite(CHGLED, 6.08); delay(12);
|
|
analogWrite(CHGLED, 6.54); delay(12);
|
|
analogWrite(CHGLED, 7.01); delay(12);
|
|
analogWrite(CHGLED, 7.54); delay(12);
|
|
analogWrite(CHGLED, 8.10); delay(12);
|
|
analogWrite(CHGLED, 8.63); delay(12);
|
|
analogWrite(CHGLED, 9.23); delay(12);
|
|
analogWrite(CHGLED, 9.80); delay(12);
|
|
analogWrite(CHGLED, 10.45); delay(12);
|
|
analogWrite(CHGLED, 11.23); delay(12);
|
|
analogWrite(CHGLED, 11.98); delay(12);
|
|
analogWrite(CHGLED, 12.76); delay(12);
|
|
analogWrite(CHGLED, 13.70); delay(12);
|
|
analogWrite(CHGLED, 14.55); delay(12);
|
|
analogWrite(CHGLED, 15.43); delay(12);
|
|
analogWrite(CHGLED, 16.41); delay(12);
|
|
analogWrite(CHGLED, 17.43); delay(12);
|
|
analogWrite(CHGLED, 18.42); delay(12);
|
|
analogWrite(CHGLED, 19.52); delay(12);
|
|
analogWrite(CHGLED, 20.58); delay(12);
|
|
analogWrite(CHGLED, 21.75); delay(12);
|
|
analogWrite(CHGLED, 22.97); delay(12);
|
|
analogWrite(CHGLED, 24.15); delay(12);
|
|
analogWrite(CHGLED, 25.36); delay(12);
|
|
analogWrite(CHGLED, 26.80); delay(12);
|
|
analogWrite(CHGLED, 28.10); delay(12);
|
|
analogWrite(CHGLED, 29.44); delay(12);
|
|
analogWrite(CHGLED, 30.92); delay(12);
|
|
analogWrite(CHGLED, 32.45); delay(12);
|
|
analogWrite(CHGLED, 33.93); delay(12);
|
|
analogWrite(CHGLED, 35.56); delay(12);
|
|
analogWrite(CHGLED, 37.12); delay(12);
|
|
analogWrite(CHGLED, 38.85); delay(12);
|
|
analogWrite(CHGLED, 40.63); delay(12);
|
|
analogWrite(CHGLED, 42.35); delay(12);
|
|
analogWrite(CHGLED, 44.11); delay(12);
|
|
analogWrite(CHGLED, 46.18); delay(12);
|
|
analogWrite(CHGLED, 48.04); delay(12);
|
|
analogWrite(CHGLED, 49.95); delay(12);
|
|
analogWrite(CHGLED, 52.06); delay(12);
|
|
analogWrite(CHGLED, 54.22); delay(12);
|
|
analogWrite(CHGLED, 56.44); delay(12);
|
|
analogWrite(CHGLED, 58.57); delay(12);
|
|
analogWrite(CHGLED, 60.75); delay(12);
|
|
analogWrite(CHGLED, 63.30); delay(12);
|
|
analogWrite(CHGLED, 65.59); delay(12);
|
|
analogWrite(CHGLED, 67.93); delay(12);
|
|
analogWrite(CHGLED, 70.50); delay(12);
|
|
analogWrite(CHGLED, 73.12); delay(12);
|
|
analogWrite(CHGLED, 75.63); delay(12);
|
|
analogWrite(CHGLED, 78.37); delay(12);
|
|
analogWrite(CHGLED, 80.98); delay(12);
|
|
analogWrite(CHGLED, 83.84); delay(12);
|
|
analogWrite(CHGLED, 86.75); delay(12);
|
|
analogWrite(CHGLED, 89.52); delay(12);
|
|
analogWrite(CHGLED, 92.35); delay(12);
|
|
analogWrite(CHGLED, 95.63); delay(12);
|
|
analogWrite(CHGLED, 98.55); delay(12);
|
|
analogWrite(CHGLED, 101.52); delay(12);
|
|
analogWrite(CHGLED, 105.41); delay(12);
|
|
analogWrite(CHGLED, 108.92); delay(12);
|
|
analogWrite(CHGLED, 112.71); delay(12);
|
|
analogWrite(CHGLED, 116.33); delay(12);
|
|
analogWrite(CHGLED, 120.23); delay(12);
|
|
analogWrite(CHGLED, 124.19); delay(12);
|
|
analogWrite(CHGLED, 127.95); delay(12);
|
|
analogWrite(CHGLED, 131.99); delay(12);
|
|
analogWrite(CHGLED, 136.08); delay(12);
|
|
analogWrite(CHGLED, 139.95); delay(12);
|
|
analogWrite(CHGLED, 144.09); delay(12);
|
|
analogWrite(CHGLED, 148.26); delay(12);
|
|
analogWrite(CHGLED, 152.20); delay(12);
|
|
analogWrite(CHGLED, 156.40); delay(12);
|
|
analogWrite(CHGLED, 160.60); delay(12);
|
|
analogWrite(CHGLED, 164.81); delay(12);
|
|
analogWrite(CHGLED, 168.76); delay(12);
|
|
analogWrite(CHGLED, 172.70); delay(12);
|
|
analogWrite(CHGLED, 177.11); delay(12);
|
|
analogWrite(CHGLED, 181.01); delay(12);
|
|
analogWrite(CHGLED, 185.11); delay(12);
|
|
analogWrite(CHGLED, 189.17); delay(12);
|
|
analogWrite(CHGLED, 192.94); delay(12);
|
|
analogWrite(CHGLED, 196.89); delay(12);
|
|
analogWrite(CHGLED, 200.55); delay(12);
|
|
analogWrite(CHGLED, 204.59); delay(12);
|
|
analogWrite(CHGLED, 208.10); delay(12);
|
|
analogWrite(CHGLED, 211.52); delay(12);
|
|
analogWrite(CHGLED, 215.27); delay(12);
|
|
analogWrite(CHGLED, 218.50); delay(12);
|
|
analogWrite(CHGLED, 221.63); delay(12);
|
|
analogWrite(CHGLED, 224.83); delay(12);
|
|
analogWrite(CHGLED, 227.90); delay(12);
|
|
analogWrite(CHGLED, 230.83); delay(12);
|
|
analogWrite(CHGLED, 233.46); delay(12);
|
|
analogWrite(CHGLED, 236.10); delay(12);
|
|
analogWrite(CHGLED, 238.58); delay(12);
|
|
analogWrite(CHGLED, 240.76); delay(12);
|
|
analogWrite(CHGLED, 242.90); delay(12);
|
|
analogWrite(CHGLED, 244.87); delay(12);
|
|
analogWrite(CHGLED, 246.56); delay(12);
|
|
analogWrite(CHGLED, 248.17); delay(12);
|
|
analogWrite(CHGLED, 249.58); delay(12);
|
|
analogWrite(CHGLED, 250.80); delay(12);
|
|
analogWrite(CHGLED, 251.76); delay(12);
|
|
analogWrite(CHGLED, 252.59); delay(12);
|
|
analogWrite(CHGLED, 253.21); delay(12);
|
|
analogWrite(CHGLED, 253.60); delay(12);
|
|
analogWrite(CHGLED, 253.81); delay(12);
|
|
analogWrite(CHGLED, 253.8); delay(12);
|
|
analogWrite(CHGLED, 253.08); delay(12);
|
|
analogWrite(CHGLED, 253.54); delay(12);
|
|
analogWrite(CHGLED, 253.79); delay(12);
|
|
analogWrite(CHGLED, 253.84); delay(12);
|
|
analogWrite(CHGLED, 253.68); delay(12);
|
|
analogWrite(CHGLED, 253.32); delay(12);
|
|
analogWrite(CHGLED, 252.79); delay(12);
|
|
analogWrite(CHGLED, 252.03); delay(12);
|
|
analogWrite(CHGLED, 251.06); delay(12);
|
|
analogWrite(CHGLED, 249.96); delay(12);
|
|
analogWrite(CHGLED, 248.60); delay(12);
|
|
analogWrite(CHGLED, 247.05); delay(12);
|
|
analogWrite(CHGLED, 245.31); delay(12);
|
|
analogWrite(CHGLED, 243.50); delay(12);
|
|
analogWrite(CHGLED, 241.53); delay(12);
|
|
analogWrite(CHGLED, 239.14); delay(12);
|
|
analogWrite(CHGLED, 236.84); delay(12);
|
|
analogWrite(CHGLED, 234.25); delay(12);
|
|
analogWrite(CHGLED, 231.50); delay(12);
|
|
analogWrite(CHGLED, 228.78); delay(12);
|
|
analogWrite(CHGLED, 225.75); delay(12);
|
|
analogWrite(CHGLED, 222.77); delay(12);
|
|
analogWrite(CHGLED, 219.49); delay(12);
|
|
analogWrite(CHGLED, 216.09); delay(12);
|
|
analogWrite(CHGLED, 212.78); delay(12);
|
|
analogWrite(CHGLED, 208.96); delay(12);
|
|
analogWrite(CHGLED, 205.47); delay(12);
|
|
analogWrite(CHGLED, 201.91); delay(12);
|
|
analogWrite(CHGLED, 197.81); delay(12);
|
|
analogWrite(CHGLED, 194.11); delay(12);
|
|
analogWrite(CHGLED, 190.12); delay(12);
|
|
analogWrite(CHGLED, 186.31); delay(12);
|
|
analogWrite(CHGLED, 182.22); delay(12);
|
|
analogWrite(CHGLED, 178.09); delay(12);
|
|
analogWrite(CHGLED, 174.17); delay(12);
|
|
analogWrite(CHGLED, 169.75); delay(12);
|
|
analogWrite(CHGLED, 165.80); delay(12);
|
|
analogWrite(CHGLED, 161.84); delay(12);
|
|
analogWrite(CHGLED, 157.64); delay(12);
|
|
analogWrite(CHGLED, 153.43); delay(12);
|
|
analogWrite(CHGLED, 149.24); delay(12);
|
|
analogWrite(CHGLED, 145.32); delay(12);
|
|
analogWrite(CHGLED, 141.16); delay(12);
|
|
analogWrite(CHGLED, 137.04); delay(12);
|
|
analogWrite(CHGLED, 133.19); delay(12);
|
|
analogWrite(CHGLED, 129.37); delay(12);
|
|
analogWrite(CHGLED, 125.12); delay(12);
|
|
analogWrite(CHGLED, 121.39); delay(12);
|
|
analogWrite(CHGLED, 117.47); delay(12);
|
|
analogWrite(CHGLED, 113.61); delay(12);
|
|
analogWrite(CHGLED, 110.03); delay(12);
|
|
analogWrite(CHGLED, 106.28); delay(12);
|
|
analogWrite(CHGLED, 102.81); delay(12);
|
|
analogWrite(CHGLED, 98.97); delay(12);
|
|
analogWrite(CHGLED, 96.04); delay(12);
|
|
analogWrite(CHGLED, 93.16); delay(12);
|
|
analogWrite(CHGLED, 89.92); delay(12);
|
|
analogWrite(CHGLED, 87.15); delay(12);
|
|
analogWrite(CHGLED, 84.42); delay(12);
|
|
analogWrite(CHGLED, 81.55); delay(12);
|
|
analogWrite(CHGLED, 78.74); delay(12);
|
|
analogWrite(CHGLED, 76.17); delay(12);
|
|
analogWrite(CHGLED, 73.48); delay(12);
|
|
analogWrite(CHGLED, 71.02); delay(12);
|
|
analogWrite(CHGLED, 68.44); delay(12);
|
|
analogWrite(CHGLED, 65.92); delay(12);
|
|
analogWrite(CHGLED, 63.62); delay(12);
|
|
analogWrite(CHGLED, 61.38); delay(12);
|
|
analogWrite(CHGLED, 58.88); delay(12);
|
|
analogWrite(CHGLED, 56.74); delay(12);
|
|
analogWrite(CHGLED, 54.66); delay(12);
|
|
analogWrite(CHGLED, 52.49); delay(12);
|
|
analogWrite(CHGLED, 50.37); delay(12);
|
|
analogWrite(CHGLED, 48.45); delay(12);
|
|
analogWrite(CHGLED, 46.44); delay(12);
|
|
analogWrite(CHGLED, 44.62); delay(12);
|
|
analogWrite(CHGLED, 42.72); delay(12);
|
|
analogWrite(CHGLED, 40.88); delay(12);
|
|
analogWrite(CHGLED, 39.20); delay(12);
|
|
analogWrite(CHGLED, 37.58); delay(12);
|
|
analogWrite(CHGLED, 35.78); delay(12);
|
|
analogWrite(CHGLED, 34.25); delay(12);
|
|
analogWrite(CHGLED, 32.66); delay(12);
|
|
analogWrite(CHGLED, 31.22); delay(12);
|
|
analogWrite(CHGLED, 29.73); delay(12);
|
|
analogWrite(CHGLED, 28.29); delay(12);
|
|
analogWrite(CHGLED, 26.98); delay(12);
|
|
analogWrite(CHGLED, 25.71); delay(12);
|
|
analogWrite(CHGLED, 24.32); delay(12);
|
|
analogWrite(CHGLED, 23.14); delay(12);
|
|
analogWrite(CHGLED, 21.99); delay(12);
|
|
analogWrite(CHGLED, 20.81); delay(12);
|
|
analogWrite(CHGLED, 19.66); delay(12);
|
|
analogWrite(CHGLED, 18.64); delay(12);
|
|
analogWrite(CHGLED, 17.57); delay(12);
|
|
analogWrite(CHGLED, 16.61); delay(12);
|
|
analogWrite(CHGLED, 15.62); delay(12);
|
|
analogWrite(CHGLED, 14.67); delay(12);
|
|
analogWrite(CHGLED, 13.82); delay(12);
|
|
analogWrite(CHGLED, 12.99); delay(12);
|
|
analogWrite(CHGLED, 12.09); delay(12);
|
|
analogWrite(CHGLED, 11.33); delay(12);
|
|
analogWrite(CHGLED, 10.60); delay(12);
|
|
analogWrite(CHGLED, 9.85); delay(12);
|
|
analogWrite(CHGLED, 9.23); delay(12);
|
|
analogWrite(CHGLED, 8.68); delay(12);
|
|
analogWrite(CHGLED, 8.10); delay(12);
|
|
analogWrite(CHGLED, 7.58); delay(12);
|
|
analogWrite(CHGLED, 7.09); delay(12);
|
|
analogWrite(CHGLED, 6.58); delay(12);
|
|
analogWrite(CHGLED, 6.08); delay(12);
|
|
analogWrite(CHGLED, 5.65); delay(12);
|
|
analogWrite(CHGLED, 5.23); delay(12);
|
|
analogWrite(CHGLED, 4.77); delay(12);
|
|
analogWrite(CHGLED, 4.39); delay(12);
|
|
analogWrite(CHGLED, 4.03); delay(12);
|
|
analogWrite(CHGLED, 3.65); delay(12);
|
|
analogWrite(CHGLED, 3.33); delay(12);
|
|
analogWrite(CHGLED, 2.99); delay(12);
|
|
analogWrite(CHGLED, 2.70); delay(12);
|
|
analogWrite(CHGLED, 2.40); delay(12);
|
|
analogWrite(CHGLED, 2.14); delay(12);
|
|
analogWrite(CHGLED, 1.87); delay(12);
|
|
analogWrite(CHGLED, 1.63); delay(12);
|
|
analogWrite(CHGLED, 1.42); delay(12);
|
|
analogWrite(CHGLED, 1.22); delay(12);
|
|
analogWrite(CHGLED, 1.04); delay(12);
|
|
analogWrite(CHGLED, 0.85); delay(12);
|
|
analogWrite(CHGLED, 0.70); delay(12);
|
|
analogWrite(CHGLED, 0.56); delay(12);
|
|
analogWrite(CHGLED, 0.43); delay(12);
|
|
analogWrite(CHGLED, 0.33); delay(12);
|
|
analogWrite(CHGLED, 0.23); delay(12);
|
|
analogWrite(CHGLED, 0.15); delay(12);
|
|
analogWrite(CHGLED, 0.09); delay(12);
|
|
analogWrite(CHGLED, 0.05); delay(12);
|
|
analogWrite(CHGLED, 0.02); delay(12);
|
|
|
|
}
|
|
void DidActionTakePlace() {
|
|
buttonPState = digitalRead(PWRBTN);
|
|
if(buttonPState == LOW){
|
|
delay(100);
|
|
if(buttonPState == LOW){
|
|
if(IsPowerOn == 0){TurnOn();}
|
|
else{TurnOff();}
|
|
}
|
|
}
|
|
|
|
buttonCState = digitalRead(CHGBTN);
|
|
if(buttonCState == LOW){
|
|
DisplayBattTings();}
|
|
}
|
|
void TurnOn() {
|
|
BlinkPow();
|
|
digitalWrite(PWRMFT, HIGH);
|
|
IsPowerOn = 1;
|
|
}
|
|
void TurnOff() {
|
|
BlinkPow();
|
|
digitalWrite(PWRMFT, LOW);
|
|
IsPowerOn = 0;
|
|
}
|
|
void DisplayBattTings() {
|
|
BlinkChg();
|
|
GetVoltage();
|
|
if(IsPowerOn == 0){CapAtOff();}
|
|
else{CapAtOn();}
|
|
}
|
|
void CapAtOff () {
|
|
if(voltage > 3.60){digitalWrite(LED1, HIGH); delay(500);}
|
|
if(voltage > 3.70){digitalWrite(LED2, HIGH); delay(500);}
|
|
if(voltage > 3.75){digitalWrite(LED3, HIGH); delay(500);}
|
|
if(voltage > 3.85){digitalWrite(LED4, HIGH); delay(500);}
|
|
if(voltage > 4.10){digitalWrite(LED5, HIGH); delay(500);}
|
|
if(voltage < 3.25){
|
|
for (int i = 0; i < 11; i++) {
|
|
digitalWrite(LED1, HIGH); delay(200); digitalWrite(LED1, LOW); delay(200); }
|
|
}
|
|
delay(5000);
|
|
digitalWrite(LED1, LOW);digitalWrite(LED2, LOW);digitalWrite(LED3, LOW);digitalWrite(LED4, LOW);digitalWrite(LED5, LOW);
|
|
}
|
|
void CapAtOn () {
|
|
if(voltage > 3.40){digitalWrite(LED1, HIGH); delay(500);}
|
|
if(voltage > 3.60){digitalWrite(LED2, HIGH); delay(500);}
|
|
if(voltage > 3.65){digitalWrite(LED3, HIGH); delay(500);}
|
|
if(voltage > 3.75){digitalWrite(LED4, HIGH); delay(500);}
|
|
if(voltage > 4.00){digitalWrite(LED5, HIGH); delay(500);}
|
|
if(voltage < 3.25){
|
|
for (int i = 0; i < 11; i++) {
|
|
digitalWrite(LED1, HIGH); delay(200); digitalWrite(LED1, LOW); delay(200); }
|
|
}
|
|
delay(5000);
|
|
digitalWrite(LED1, LOW);digitalWrite(LED2, LOW);digitalWrite(LED3, LOW);digitalWrite(LED4, LOW);digitalWrite(LED5, LOW);
|
|
}
|
|
void CapAtCharge(){
|
|
delay(500);
|
|
if(voltage >= 4.185){digitalWrite(LED1, LOW);digitalWrite(LED2, LOW);digitalWrite(LED3, LOW);digitalWrite(LED4, LOW);digitalWrite(LED5, LOW);}
|
|
if(voltage < 4.185){
|
|
if(voltage > 3.40){digitalWrite(LED1, HIGH); delay(500);}
|
|
if(voltage > 3.60){digitalWrite(LED2, HIGH); delay(500);}
|
|
if(voltage > 3.70){digitalWrite(LED3, HIGH); delay(500);}
|
|
if(voltage > 4.00){digitalWrite(LED4, HIGH); delay(500);}
|
|
if(voltage > 4.17){digitalWrite(LED5, HIGH); delay(500);}
|
|
delay(500);
|
|
digitalWrite(LED1, LOW);digitalWrite(LED2, LOW);digitalWrite(LED3, LOW);digitalWrite(LED4, LOW);digitalWrite(LED5, LOW);}
|
|
}
|
|
void ChechChg(){
|
|
if((analogRead(IN1) > 700) || (analogRead(IN2) > 700)){
|
|
isCharging = 1;
|
|
GetVoltage();
|
|
CapAtCharge();
|
|
}
|
|
if((analogRead(IN1) < 700) && (analogRead(IN2) < 700)){
|
|
isCharging = 0;
|
|
digitalWrite(LED1, LOW);digitalWrite(LED2, LOW);digitalWrite(LED3, LOW);digitalWrite(LED4, LOW);digitalWrite(LED5, LOW);
|
|
}
|
|
}
|
|
void CheckVoltage(){
|
|
GetVoltage();
|
|
if(voltage < 3.20){
|
|
delay(50);
|
|
if(voltage < 3.20){
|
|
digitalWrite(LED1, HIGH);digitalWrite(LED2, HIGH);digitalWrite(LED3, HIGH);digitalWrite(LED4, HIGH);digitalWrite(LED5, HIGH);
|
|
delay(5000);
|
|
digitalWrite(LED1, LOW);digitalWrite(LED2, LOW);digitalWrite(LED3, LOW);digitalWrite(LED4, LOW);digitalWrite(LED5, LOW);
|
|
TurnOff();
|
|
}
|
|
}
|
|
}
|
|
void GetVoltage(){
|
|
for (int q = 0; q < 10; q++) {
|
|
countVal = countVal + analogRead(VIN);
|
|
delay(5);
|
|
}
|
|
sensorVal = countVal / 10;
|
|
voltage = sensorVal * (5.10 / 1023.0);
|
|
countVal = 0;
|
|
}
|