원리
사용시간 = 실제로 꺼낼 수 있는 용량 ÷ 평균 전류
배터리 용량 mAh는 '몇 mA를 몇 시간 흘릴 수 있는가'입니다. 2,000 mAh 배터리는 이론상 2 mA로 1,000시간을 버팁니다. 문제는 IoT 기기의 전류가 일정하지 않다는 점입니다. 센서는 대부분의 시간을 수 µA로 잠들어 있다가 몇 초 동안 수십~수백 mA로 깨어나 측정하고 송신합니다. 그래서 먼저 한 주기의 전하량을 시간으로 나눈 '평균 전류'를 구하고, 라벨 용량에서 컷오프 전압·노화·온도로 줄어드는 몫을 뺀 '실사용 용량'으로 나눠야 현실적인 값이 나옵니다. 전압이 다른 배터리를 비교할 때는 mAh가 아니라 에너지 단위 Wh(= mAh × 전압 ÷ 1000)로 비교해야 합니다.
평균 부하 전류: I_avg = (I_act × t_act + I_slp × t_slp) / (t_act + t_slp) + I_상시 스위칭 변환: I_batt = I_avg × V_load / (V_batt × η) (LDO·직결이면 I_batt = I_avg) 실사용 용량: C_eff = C × 사용가능비율 × 노화계수 × 온도계수 자가방전 환산: I_sd = C × (월 자가방전 %) / 730 h 사용시간: t = C_eff / (I_batt + I_sd)
계산 예 1 — 10분마다 Wi-Fi로 올리는 ESP32 센서
2,000 mAh LiPo, 10분(600초)마다 3초 깨어 평균 120 mA(Wi-Fi 연결·송신), 나머지 597초는 보드 전체 15 µA. I_avg = (120 × 3 + 0.015 × 597) ÷ 600 = 0.615 mA입니다. 라벨 용량으로만 나누면 3,252시간(135일)이지만, 컷오프까지 90%·노화 80%를 반영하면 실사용 용량은 1,440 mAh, 자가방전 월 3%는 0.082 mA에 해당해 약 2,066시간, 즉 86일이 됩니다. 여기서 동작 구간이 부하 전하의 97% 이상을 차지하므로, 슬립 전류를 더 줄이기보다 Wi-Fi 연결 시간을 3초에서 1초로 줄이는 쪽이 사용시간을 거의 세 배로 늘립니다. 반대로 1분마다 깨우면 평균 6 mA가 되어 열흘도 못 갑니다.
계산 예 2 — 1초마다 광고하는 BLE 비콘(CR2032)
CR2032 225 mAh, 1초마다 2 ms 동안 8 mA(광고 송신), 나머지는 2 µA. I_avg = 8 × 0.002 + 0.002 × 0.998 ≈ 0.018 mA(18 µA). 펄스 부하라 사용 가능 비율을 80%로 잡으면 180 mAh ÷ 0.0183 mA ≈ 9,800시간, 약 1.1년입니다. 이 경우는 슬립 2 µA가 전체의 11%나 되므로 슬립 전류와 광고 주기가 모두 중요합니다.
전형값
배터리 종류별 숫자 — 라벨을 그대로 믿지 말 것
| 종류 | 공칭 전압 | 전형 용량 | 컷오프 | 자가방전 | 메모 |
|---|---|---|---|---|---|
| 리튬이온 18650 | 3.6~3.7 V | 2,500~3,500 mAh | 2.5~3.0 V | 월 2~3% | 보호회로 대기전류 포함. 3.3 V LDO 직결이면 약 3.5 V에서 끊김 |
| 리튬폴리머(LiPo) | 3.7 V | 라벨값(저가품 70~80%) | 3.0 V | 월 2~5% | 과방전 시 영구 손상, 보호회로 필수 |
| AA 알카라인 | 1.5 V | 2,500~2,800 mAh(저부하) | 0.9~1.0 V | 연 2~3% | 500 mA 고부하면 1,000~1,500 mAh, 저온에 약함 |
| AA 니켈수소(저자가방전) | 1.2 V | 1,900~2,000 mAh | 1.0 V | 월 1~1.5% | 일반 니켈수소는 월 15~30% |
| CR2032 | 3.0 V | 220~240 mAh | 2.0 V | 연 약 1% | 정격은 0.2 mA 연속 기준, 펄스에 약함 |
| ER14505 (Li-SOCl₂ AA) | 3.6 V | 2,400~2,700 mAh | 2.0~3.0 V | 연 1% 미만 | 10년급, 펄스는 HLC·슈퍼커패시터로 보조 |
온도 계수는 대략 리튬이온 0 °C에서 80~90%, −20 °C에서 50~70% 수준이고, 알카라인은 영하에서 더 급격히 떨어집니다. 노화 계수는 '수명 말기에도 동작해야 하는가'로 정합니다. 리튬이온은 보통 정격 용량의 80%가 되는 시점을 수명 종료로 보므로, 교체 주기를 보장해야 하는 제품은 80%로 계산하는 것이 안전합니다.
주의
자주 하는 실수
- 칩 데이터시트의 슬립 전류를 보드 전류로 쓰기: ESP32 칩은 딥슬립 약 10 µA지만, 개발 보드는 USB-UART 칩, AMS1117 같은 LDO(대기전류 약 5 mA), 전원 LED 때문에 슬립 중에도 수 mA가 흐릅니다. 반드시 완성 보드를 실측하세요.
- LDO 드롭아웃 무시: 3.3 V LDO의 드롭아웃이 200 mV면 리튬이온이 3.5 V 아래로 내려가는 순간 출력이 무너져, 남은 15~20% 용량을 못 씁니다. '사용 가능 비율'을 80% 안팎으로 낮추거나 저드롭아웃·벅부스트를 쓰세요.
- 피크 전류와 평균 전류 혼동: Wi-Fi 송신 피크 300 mA 이상은 평균 계산이 아니라 배터리 내부저항·커패시터 선정의 문제입니다. 평균에는 실측 평균을 넣어야 합니다.
- 전압이 다른 배터리를 mAh로 비교: 3.7 V 2,000 mAh(7.4 Wh)와 1.2 V 2,000 mAh(2.4 Wh)는 에너지가 세 배 차이입니다.
- 자가방전 생략: 평균 전류가 수 µA인 기기는 자가방전이 실제 부하보다 커질 수 있습니다. 일반 니켈수소로 1년짜리 기기를 만들면 배터리가 스스로 먼저 닳습니다.
저전력 설계
ESP32·STM32로 배터리 오래 쓰는 법
- 레귤레이터부터 바꾸기: 대기전류가 수 µA인 LDO(HT7333 약 4 µA, TPS7A02 25 nA급)를 쓰면 AMS1117(약 5 mA) 대비 슬립 전류가 천 배 이상 줄어듭니다.
- Wi-Fi 연결 시간 줄이기: 고정 IP, 마지막 AP의 채널·BSSID 저장, 송신 후 즉시 슬립으로 ESP32의 깨어 있는 시간을 수 초에서 수백 ms로 줄일 수 있습니다. 대부분의 배터리 수명이 여기서 결정됩니다.
- STM32는 저전력 계열로: STM32L4·U5의 Stop 2 모드는 RTC를 켠 채 1~2 µA대지만, 범용 F1·F4 계열은 Stop 모드도 십수 µA 이상입니다. 배터리 제품은 시작부터 L/U 계열을 고르세요.
- 분압·풀업 누설 차단: 배터리 전압 감시용 100 kΩ+100 kΩ 분압은 4.2 V에서 21 µA를 항상 먹습니다. 1 MΩ급으로 키우고 ADC 앞에 커패시터를 두거나, MOSFET으로 측정할 때만 연결하세요.
- 제대로 측정하기: 멀티미터 µA 레인지는 션트 전압 때문에 깨어날 때 MCU가 리셋될 수 있습니다. 전류 프로파일러(Nordic PPK2, Joulescope 등)로 한 주기 전체의 평균을 재야 정확합니다.
KEMI 실무 팁
배터리 제품의 회로를 의뢰받으면 가장 먼저 '전원 트리별 대기전류 표'를 만듭니다. 레귤레이터 Iq, 센서 슬립 전류, 풀업·분압, 보호회로까지 µA 단위로 합산해 보면 MCU가 아니라 주변부가 슬립 전류의 대부분을 차지하는 경우가 흔합니다. 이 계산기의 '상시 소모' 칸에 그 합계를 넣어 보세요.
