YAS's VB.NET Tips
 
ラズベリーパイ活用
ラズベリーパイ活用 >> 記事詳細

2022/11/11

PICOでバッテリー残量確認

| by:YAS
 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%}')


23:14