Raspberry Pi PICOでバッテリーの残量を取得するコードです。バッテリーの電圧を測って、残量を推測します。
from machine import Pin, ADC
PIN_BATTERY_VOLT = 29 #バッテリー電圧測定ピン
PIN_USB_POWER = 24 #USB電源検出ピン
BATTERY_CONV = 3.3 / 65535 * 3 #生の値 --> 電圧値 変換係数
usb_power = Pin(PIN_USB_POWER, Pin.IN)
battery_volt = Pin(PIN_BATTERY_VOLT, Pin.IN)
adc_battery = ADC(battery_volt)
#USB電源検出
def detect_usb_power():
return usb_power.value()
#電源電圧取得
def measure_battery_volt():
return adc_battery.read_u16() * BATTERY_CONV
#リチウムイオン電池残量割合取得
def battery_remaining():
volt = measure_battery_volt()
if volt >= 4.2:
rate = 1
elif volt >= 3.8:
rate = 0.8
elif volt >=3.6:
rate = 0.6
elif volt >= 3.3:
rate = 0.4
elif volt >= 2.7:
rate = 0.2
else:
rate = 0
return volt, rate
if __name__ == '__main__':
print(f'USB電源:{"検出" if detect_usb_power() == 1 else "非検出"}')
volt, rate = battery_remaining()
print(f'電源電圧:{volt:.2f}V\n電池残量:{rate:.0%}')