A simple example for analog input and EPD usage.
Dependencies: GDEP015OC1 acn_nrf52_saadc aconno_bsp
Fork of acd52832_3_Analog_In by
Diff: main.cpp
- Revision:
- 9:eef3ea422bfe
- Parent:
- 8:c9f0aea93832
- Child:
- 10:8a9eb611624e
--- a/main.cpp Wed Jul 05 13:04:57 2017 +0000
+++ b/main.cpp Fri Jul 07 11:50:24 2017 +0000
@@ -16,6 +16,7 @@
#define VOLTAGE_DIVIDER_RATION (4.42)
#define VOLTAGE_LOSS (0.4)
#define CURRENT_FACTOR (36.0)
+#define BATTERY_CHARGED_V (13)
#define BATTERY_MAX_V (12.6)
#define BATTERY_MIN_V (11.85)
#define BATTERY_STEP (0.15)
@@ -27,6 +28,10 @@
#define LOW_CURRENT_STATE (1)
#define QUICK_CURRENT_STATE (2)
+#define _CH_4 (9)
+#define _CH_3 (8)
+#define _CH_2 (7)
+#define _CH_1 (6)
#define _BS_5 (5)
#define _BS_4 (4)
#define _BS_3 (3)
@@ -42,7 +47,19 @@
AnalogIn usb2 (p30);
uint8_t get_battery_level(float battery_voltage){
- if(battery_voltage > BATTERY_MAX_V - BATTERY_STEP){
+ if (battery_voltage > BATTERY_CHARGED_V * 4){
+ return _CH_4;
+ }
+ else if ((battery_voltage > BATTERY_CHARGED_V + BATTERY_STEP * 3) && (battery_voltage > BATTERY_CHARGED_V + BATTERY_STEP * 4)){
+ return _CH_3;
+ }
+ else if ((battery_voltage > BATTERY_CHARGED_V + BATTERY_STEP * 2) && (battery_voltage > BATTERY_CHARGED_V + BATTERY_STEP * 3)){
+ return _CH_2;
+ }
+ else if ((battery_voltage > BATTERY_CHARGED_V + BATTERY_STEP * 1) && (battery_voltage > BATTERY_CHARGED_V + BATTERY_STEP * 2)){
+ return _CH_1;
+ }
+ else if((battery_voltage > BATTERY_MAX_V - BATTERY_STEP) && (battery_voltage < BATTERY_CHARGED_V)){
return _BS_5;
}
else if((battery_voltage > BATTERY_MAX_V - BATTERY_STEP * 2) && (battery_voltage < BATTERY_MAX_V - BATTERY_STEP * 1)){
@@ -159,9 +176,28 @@
epd.fill(BS_5[x], x);
break;
}
+ case(6):{
+ for(uint16_t x=0;x<5000;x++)
+ epd.fill(charged_1[x], x);
+ break;
+ }
+ case(7):{
+ for(uint16_t x=0;x<5000;x++)
+ epd.fill(charged_2[x], x);
+ break;
+ }
+ case(8):{
+ for(uint16_t x=0;x<5000;x++)
+ epd.fill(charged_3[x], x);
+ break;
+ }
+ case(9):{
+ for(uint16_t x=0;x<5000;x++)
+ epd.fill(charged_4[x], x);
+ break;
+ }
default: break;
}
-
epd.write();
}
