Read input voltage via code?
-
Hi! I have a GPy with the Makr board and a battery connected on the battery +/- 2-pin connector on the board. I want to be able to read how much input voltage I am getting from the battery on the GPy so that I can notify myself in advance before the battery runs out of power.
So, I am wondering if there is there any way I can read how much power the PyCom are receiving from the battery connector in my code? If not, is there anything else I can do?
-
@robert-hh Thanks! :)
-
@techykermit If the BAT jumper of the expansion board (pymakr, as you call it) is on place, the battery is connected by a voltage divider to P16. You can get it e.g. with this little script:
import machine adc = machine.ADC() # create an ADC object apin = adc.channel(pin='P16', attn=adc.ATTN_11DB) # create an analog pin on P16 val = apin.voltage() # read the value from ADC print(val * 2) # compensate for the voltage divider
Please note, that the voltage only allows to estimate the charge. For a LiPo battery, you can assume the battery as almost empty when the voltage is below 3.3V.