You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: internal_filesystem/lib/mpos/battery_voltage.py
+19-15Lines changed: 19 additions & 15 deletions
Original file line number
Diff line number
Diff line change
@@ -4,7 +4,7 @@
4
4
MAX_VOLTAGE=4.15
5
5
6
6
adc=None
7
-
scale_factor=0
7
+
conversion_func=None# Conversion function: ADC value -> voltage
8
8
adc_pin=None
9
9
10
10
# Cache to reduce WiFi interruptions (ADC2 requires WiFi to be disabled)
@@ -19,7 +19,7 @@ def _is_adc2_pin(pin):
19
19
return11<=pin<=20
20
20
21
21
22
-
definit_adc(pinnr, sf):
22
+
definit_adc(pinnr, adc_to_voltage_func):
23
23
"""
24
24
Initialize ADC for battery voltage monitoring.
25
25
@@ -29,13 +29,16 @@ def init_adc(pinnr, sf):
29
29
30
30
Args:
31
31
pinnr: GPIO pin number
32
-
sf: Scale factor to convert raw ADC (0-4095) to battery voltage
32
+
adc_to_voltage_func: Conversion function that takes raw ADC value (0-4095)
33
+
and returns battery voltage in volts
33
34
"""
34
-
globaladc, scale_factor, adc_pin
35
-
scale_factor=sf
35
+
globaladc, conversion_func, adc_pin
36
+
37
+
conversion_func=adc_to_voltage_func
36
38
adc_pin=pinnr
39
+
37
40
try:
38
-
print(f"Initializing ADC pin {pinnr} with scale_factor {sf}")
41
+
print(f"Initializing ADC pin {pinnr} with conversion function")
39
42
if_is_adc2_pin(pinnr):
40
43
print(f" WARNING: GPIO{pinnr} is on ADC2 - WiFi will be disabled during readings")
41
44
frommachineimportADC, Pin
@@ -44,6 +47,9 @@ def init_adc(pinnr, sf):
44
47
exceptExceptionase:
45
48
print(f"Info: this platform has no ADC for measuring battery voltage: {e}")
46
49
50
+
initial_adc_value=read_raw_adc()
51
+
print("Reading ADC at init to fill cache: {initial_adc_value} => {read_battery_voltage(raw_adc_value=initial_adc_value)}V => {get_battery_percentage(raw_adc_value=initial_adc_value)}%")
0 commit comments