9Vの電池の容量を測定してみました。
ダイソーの100均とエボルタの2パターンで確認しています。
また単3電池、単4電池と容量を比較した結果含めて紹介します。
9V電池の容量は?寿命まで電圧測定してみた
9V電池の容量(mAh)をダイソーの100均とエボルタで比較してみました。
あくまで一例ですが、ほぼ変わらない結果となりました。
- 9V電池_エボルタ(アルカリ)…373mAh
- 9V電池_ダイソー(アルカリ)…383mAh
9V電池の放電特性のグラフとしては下記形になります。
条件としては放電電流…682mA、終止電圧は5.4Vとしています。
エボルタとダイソー(100均)で容量がほぼ同じであることが分かります。
またダイソーの9V電池と単3電池、単4電池を比較した結果が下記となります。
単3単4は公称電圧が1.5V、終止電圧が0.9Vです。
単純な比較にはなりませんが、9V電池は単4電池よりも容量が少ない結果でした。
- 9V電池_ダイソー(アルカリ)…383mAh
- 単4電池_ダイソー(アルカリ)…393mAh
- 単3電池_ダイソー(アルカリ)…1359mAh
9V電池の容量の測定・計算方法からテストプログラムまで紹介していきます。
また9V電池の容量測定したテストの様子も動画にしています。
是非一緒にご覧ください。
9V電池の電圧
9V電池の公称電圧は9Vです。ただし新品は9Vよりも高い電圧を確認できます。
- 9V電池_エボルタ…9.67V
- 9V電池_ダイソー…9.68V
パナソニック製エボルタの9V電池の電圧値は9.67Vでした。
テスターを電池の±の端子に直接接続した、無負荷の測定です。
またダイソー100均の9V電池の電圧値は9.68Vとなりました。
下記記事で9V電池の電圧と電流、また電圧降下の大きさまで確認しています。
9V電池の寿命
(この記事での)9V電池の寿命の終止電圧に関しては「5.4V」としています。
1.5Vの乾電池の終止電圧が「0.9V」です。
9V電池は1.5Vを6本直列に接続した構造のため、0.9V×6=5.4Vとなります。
9V電池の容量(mAh)
9V電池の容量(mAh)については使い方で大きく変わります。
今回のテスト結果では電池容量(mAh)はかなり低めの値となっています。
ダイソーとパナソニックのエボルタ共に500mAh以下という結果でした。
今回のテストは「大き目の電流(約700mA)」で「休憩無し」と厳しい条件です。
※「9V電池」に「13.2Ωの抵抗」を接続しています。(9V/13.2Ω≒682mA)
市販の9V電池の容量として500mAh~1000mAh程度の記載している製品もあります。
但し、この値は一般的な電子機器を接続した想定だと思われます。
(恐らく数mA~数十mA程度の負荷条件ぐらいかと)
電池の容量(mAh)としての概算は下記で計算式で出ます。
実際に9V電池の容量の計算例としては下記イメージです。
今回は「放電電流の682mA」に「5.4Vまでの時間」を掛け算をします。
9V電池_ダイソーの例では383mAhとなります。[放電電流_682(mA)×放電時間_0.56(h)]
9V電池を放電する回路を作る
今回テストした9V電池を放電する(電池を寿命まで使い切る)回路の作り方は簡単です。
乾電池に「乗数が小さく」「容量が大きい」抵抗を接続すればOKです。
今回は2.2Ωの5W品のセメント抵抗を6個直列(13.2Ω)で繋げています。
大きい抵抗の100Ωや1kΩを接続した方が消費電流も減り、現実的な値に近くなります。
但し、消費電流を小さくすると電池を使い切るまでの時間が一気に増えますのでご注意ください。
今回の2.2Ωを6個接続した理由は、他電池との比較をするためです。
下記記事で単3電池で今回テスト同様に682mAの放電させています。
電力容量(W)を考慮して9Vを分圧
9V電池かつ電流を多く流すので電力容量(W)が大きめの抵抗を接続します。
電力容量(W)が大きい抵抗としてはセメント抵抗が市販でも販売されています。
しかし9V電池に2.2Ωの抵抗を1個だと36.8Wを超えます。
W(電力) = V(電圧)×I(電流) = V(電圧)^2/R(抵抗) = 9(V)^2/2.2(Ω) ≒ 36.8(W)
2.2Ωを直列に6個接続することで、抵抗1個辺りの電圧を1.5Vまで減らせます。
抵抗の電力容量(W)も5Wより、十分下になります。
W(電力) = V(電圧)×I(電流) = V(電圧)^2/R(抵抗) = 1.5(V)^2/2.2(Ω) ≒ 1.02(W)
9V電池の放電特性を自動でプロット・CSV化させる
今回は9V電池の寿命がどのように減っていくかを確認したいので、電圧値をグラフ化します。
下記記事のようにテスターで乾電池の電圧は測定して読み取れます。
但し、数時間の放電を人が視て対応するのは難しいです。
そのため今回はArduinoのアナログ入力を使って自動的に電圧値を測定させます。
Arduinoをラズベリーパイと連携させることで自動でグラフ化までさせます。
また後でデータとして使えるようにcsv出力まで対応していきます。
実際の回路図イメージとしては下記形です。
9V電池の放電回路にArduinoのアナログ入力ピン(A0)とGNDを接続した形です。
Arduinoの入力ピンは5Vまでのため、0-1.5Vで分圧した箇所で測定します。
特にはんだ付けなどは必要なく、ジャンパー線などで配線・接続すればOKです。
9V電池用コネクタやICクリップ-ワニ口があると接続が楽だと思います。
下記記事でラズベリーパイとArduinoとの連携方法に関して紹介しています。
その際も可変抵抗使ったアナログ電圧を読み取りグラフ化しています。(リンク先はこちら)
ラズベリーパイとArduinoを連携!アナログ入力を応用してみた
ArduinoでAD変換してラズパイにデータを送る
Arduinoには予め、AD変換+USB経由でラズパイにデータを送るプログラムを書き込んでおきます。
Arduinoの開発環境のインストール方法や、プログラムの書き込み方法も特に難しくありません。
下記記事で紹介しています。(リンク先はこちら)
ArduinoでAD変換!分解能10bitで電圧測定してみた
Arduinoにはアナログ入力があり、AD変換することが可能です。(ラズパイには無い機能です)
電池の電圧値をArduinoで読み取らせます。実際のプログラムは下記です。
0.5秒周期でArduinoのアナログ0ピンの電圧値を読み取り、ラズパイにデータを送信します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
void setup() { // put your setup code here, to run once: Serial.begin(115200); } void loop() { // put your main code here, to run repeatedly: float analog_0 = analogRead(0); float voltage_0 = (analog_0*5)/1024; Serial.print("ADC="); Serial.print(analog_0); Serial.print("\t"); Serial.print("V="); Serial.print(voltage_0); Serial.println(""); delay(500); } |
ラズベリーパイとPythonでプロット・CSV化する
ラズパイにはデフォルトでPythonがインストールされており、誰でも簡単に使用できます。
初心者の方でも大丈夫です。下記記事で使い方を紹介しています。(リンク先はこちら)
ラズベリーパイでプログラミング入門!Pythonの簡単な始め方
PythonでArduinoとUSBシリアル通信
今回のプログラムは下記記事でラズパイのCPU温度をリアルタイムでプロットした応用版です。
ラズベリーパイのヒートシンクの効果は?ファンまで必要かを検証!
今回はCPU温度ではなく、USB接続されているArduinoのデータをPythonでグラフ化します。
Pythonで1秒間隔でUSBシリアル通信をReadして、電圧を表示・プロットします。
そして指定の時間に測定したデータをcsvで出力しています。
出力したcsvはプログラムの同フォルダに作成されます。
実際に使用したプログラムは下記です。
今回の回路では9V→1,5Vに分圧された箇所で測定しています。
そのため、測定したデータを6倍して9V電池に戻して表示しています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
#!/usr/bin/env python # -*- coding: utf-8 -*- import itertools import math import numpy as np import serial ser = serial.Serial('/dev/ttyUSB0', 115200) from matplotlib import pyplot as plt from matplotlib import animation from subprocess import getoutput def _update(frame, x, y): """グラフを更新するための関数""" # 現在のグラフを消去する plt.cla() # データを更新 (追加) する x.append(frame) # Arduino*の電圧を取得する a="" a=ser.readline() while ser.in_waiting: a= a + ser.readline() a2= a.split(b'V=') a3= a2[1].split(b'\r') y.append(float(a3[0])*6) # 折れ線グラフを再描画する plt.plot(x, y) # 指定の時間(s)にファイル出力する if int(x[-1]*10)== 3600*4: np.savetxt('logger_bat.csv', y) # グラフのタイトルに電圧を表示する plt.title("CH* = "+ str(y[-1]) +" V") # グラフに終止電圧の5.4Vに補助線(赤点線)を引く p = plt.plot([0, x[-1]],[5.4, 5.4], "red", linestyle='dashed') # グラフの縦軸_電圧の範囲を指定する plt.ylim(0,12) def main(): # 描画領域 fig = plt.figure(figsize=(10, 6)) # 描画するデータ x = [] y = [] params = { 'fig': fig, 'func': _update, # グラフを更新する関数 'fargs': (x, y), # 関数の引数 (フレーム番号を除く) 'interval': 1000, # 更新間隔 (ミリ秒) 'frames': itertools.count(0, 0.1), # フレーム番号を無限に生成するイテレータ } anime = animation.FuncAnimation(**params) # グラフを表示する plt.show() if __name__ == '__main__': main() |
実際のPythonのプログラム動作のイメージとしては、動画を参照ください。
プログラムを実行するだけで自動でグラフ化され、かつ指定の時間にcsv化されます。
9V電池の容量の比較結果
冒頭でも紹介しましたが比較結果です。
9V電池の容量(mAh)をダイソーの100均とエボルタで比較してみました。
- 9V電池_エボルタ(アルカリ)…373mAh
- 9V電池_ダイソー(アルカリ)…383mAh
9V電池の放電特性のグラフとしては下記形になります。
条件としては放電電流…682mA、終止電圧は5.4Vとしています。
エボルタとダイソー(100均)で容量がほぼ同じであることが分かります。
9V電池の容量の測定データ(csv)
実際に測定した9V電池の容量のデータ(csv)を下記に残しておきます。ご自由にお使いください。
CSVでは約1秒置きのデータの電圧値が保存されています。
- 9V_エボルタ(アルカリ)…evolta-alkaline-battery_9v.csv
- 9V_ダイソー(アルカリ)…daiso-alkaline-battery-9v.csv
他の単1・単3・単4電池の容量のデータも下記に置いています。
単3電池・単4電池との比較
またダイソー(100均)で9V電池と単3・単4電池の容量mAhを比較しました。
単純な比較にはなりませんが、9V電池は単4電池よりも容量が少ない結果でした。
- 9V電池_ダイソー(アルカリ)…383mAh
- 単4電池_ダイソー(アルカリ)…393mAh
- 単3電池_ダイソー(アルカリ)…1359mAh
放電特性を並べた結果のグラフが下記となります。
放電電流の条件は全て同じ682mAです。
9V電池は他電池より電圧値が高いですが、終止電圧5.4Vを下回ると一気に落ちています。
まとめ
今回は9V電池の容量と寿命に関して紹介させていただきました。
記事をまとめますと下記になります。
ラズベリーパイ(raspberry pi)とPythonは今回のようなデータ取集に非常に便利なツールです。
ハードウェアの勉強や趣味・工作にも十分に使えます。是非皆さまも試してみて下さい。
コメント
006P積層乾電池、100均アルカリとエボルタでほとんど差が出なかったことに驚きました。大変参考になりました。トランジスタラジオに使う場合、音量を上げて聞いているとそれなりに電流が流れるので安価な100均の電池で十分ですね。エボルタだと数倍長持ちするのではというイメージがあったのですが。ちょっとエボルタに失望。