A simple example for analog input and EPD usage.

Dependencies:   GDEP015OC1 acn_nrf52_saadc aconno_bsp

Fork of acd52832_3_Analog_In by aconno dev team

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();
             }