電池還有電嗎?只要1分鐘做出電壓計
家中有小孩之後,家中的電池也跟著多了起來,點讀筆、有聲書、玩具,都要用到電池。這些電池大多都是3號電池、4號電池、鈕扣電池。當手邊沒有三用電錶,卻想知道這些電池還有沒有電,只要利用支援Arduino的開發板,只要1分鐘就可以做出簡易電壓計。
電池還有電嗎?只要1分鐘做出電壓計
家中有小孩之後,家中的電池也跟著多了起來,點讀筆、有聲書、玩具,都要用到電池。這些電池大多都是3號電池、4號電池、鈕扣電池。當手邊沒有三用電錶,卻想知道這些電池還有沒有電,只要利用支援Arduino的開發板,只要1分鐘就可以做出簡易電壓計。
這篇文章分別會用 Arduino UNO以及Realtek AmebaD (RTL8722DM)來實作。
使用Arduino UNO 做簡易電壓計
利用手邊的 Arduino UNO 開發板,打開範例: “Example” -> “01.Basic” -> “ReadAnalogVoltage”

然後編譯、上傳、打開 Serial Monitor,就搞定了。
接著我們將電池接上

電池負極接在 GND,正極接在 A0的地方,這時候在 Serial Monitor 就可以看到電池的電壓了。

這顆電池電壓是 1.43伏特,一般新的3號或4號電池,電壓大約會在 1.52伏特左右,用了一段時間之後,1.47伏特都還算有電,可以正常使用,但再低的話就要看每個電器的使用情況,有的電器,電池剩下1.45伏特就沒辦法用了。有的則是到1.40伏特都勉強能用。
使用 Realtek Amebad (RTL8722DM) 做簡易電壓計
Realtek AmebaD (RTL8722DM) 是塊相容於 Cortex-M4 的開發版,它也支援 Arduino IDE 開發環境。可以參考這篇將環境架設好:
https://www.amebaiot.com/amebad-arduino-getting-started/
然後一樣是剛剛的範例,編譯、上傳、打開Serial Monitor。 接的線跟剛剛差不多,電池負極接 GND,電池正極接B4,B4的位置應該跟 Arduino UNO 是一樣的對應位置

接著來看看結果

疑,剛剛 Arduino UNO 量到 1.43 伏特,這裡 AmebaD 量到 1.35伏特,為什麼同樣的電池量到的電壓不一樣?下面提一下它的差異
ADC 的精準度
範例程式裡用的analogRead() 使用的是 ADC 硬體。Arduino UNO 的 ADC 的精準度是 10位, 意思是它將它的工作電壓 5 伏特切分成 2的10次方,也就是 1024 份,看看讀到的電壓落在哪裡,就當成是它的電壓。
所以 Arduino UNO 最小可以察覺到多少的電壓差呢?我們算一下
5 / 1024 = 0.004883
這個精準度對於量3號或4號電池可以說相當夠用
至於 AmebaD 的 ADC 就比較複雜,它分成 3 種,第一種是一般的0~3.3V的 ADC,第二種是低功耗場景的 0~1.8V,第三種是量鋰電池的 0~5V。每種的精準度都是12位,也就是切分成2的12次方,4096份
我們在範例裡的B4是0~3.3V的ADC,所以它可以量到的最小電壓差是
3.3 / 4096 = 0.000806
這個數字又比 Arduino UNO 還小更多,那麼代表 AmebaD 量到的才是對的嗎?那怎麼會差這麼多呢?
一般來說,當我們讓ADC去量真正的0V時, ADC 讀到的值可能不是0, 可能會多一些, 同樣的, 量真正的3.3V時, ADC在精準度12位時讀到的值也可能不是4095,整個量測的結果可能如下圖:

它的形狀接近直線,但頭跟尾會有一點點的曲線,然後在0V的地方會有位移。所以一般的開發板在出貨前會有校正的動作,讓0V讀到0, 讓3.3V讀到4095。
所以Arduino UNO 與 Realtek AmebaD量到的電壓不一樣,很大的原因應該是硬體特性在校正這方面的作法不一樣,而不是它的精準度所造成的。
後記
其實真的只是想確認電池還有沒有電,手邊卻剛好沒有三用電錶,從找到開發版、編譯、上傳、看電池電壓,只花1分鐘。但是寫這篇文章花的時間就遠遠超過1分鐘了。
메타데이터
- post_id
- beb07d836df
- slug
- 電池還有電嗎-只要1分鐘做出電壓計-beb07d836df
- url
- https://medium.com/@redmilk/%E9%9B%BB%E6%B1%A0%E9%82%84%E6%9C%89%E9%9B%BB%E5%97%8E-%E5%8F%AA%E8%A6%811%E5%88%86%E9%90%98%E5%81%9A%E5%87%BA%E9%9B%BB%E5%A3%93%E8%A8%88-beb07d836df
- canonical_url
- https://medium.com/@redmilk/%E9%9B%BB%E6%B1%A0%E9%82%84%E6%9C%89%E9%9B%BB%E5%97%8E-%E5%8F%AA%E8%A6%811%E5%88%86%E9%90%98%E5%81%9A%E5%87%BA%E9%9B%BB%E5%A3%93%E8%A8%88-beb07d836df
- author_url
- https://medium.com/@redmilk
- status
- ok
- fetched_at
- 2026-07-28 23:49:14