使い切った乾電池を放置すると、復活して再度使える場合があります。
実際に乾電池が復活する際の電圧値を測定して、回復特性を調べてみました。
乾電池が放置して復活する様子をグラフ化して分かりやすく紹介します。
乾電池が復活!回復特性をマンガンとアルカリで比較してみた
アルカリとマンガンの乾電池が復活する際の電圧値を測定して、回復特性を調べてみました。
一例ですが、使い切った直後の乾電池の電圧をテスターで測定すると「0.1V」程度です。
新品の満タン状態の「1.5V」と比べると大きく下回っています。
乾電池を負荷から外して、放置した電圧値を測定して復活する様子をグラフ化してみました。
下記グラフのように一気に電圧値が回復する形となります。
その後、更に乾電池を1週間放置すると「1.3V」程度まで回復していました
乾電池が復活する様子を電圧値のグラフから分かりやすく紹介していきます。
実際に動画でも測定してみました。是非一緒にご覧ください。
乾電池を復活させる方法
乾電池を復活させるには「機器から電池を外して放置」だけでOKです。
機器から外すことで電流が流れなくなり、電池内部の電解液が均一化されます。
電圧低下の原因である電極付近に溜まっていた物質も離れていくためです。
乾電池を使い切って放置させる
乾電池を使い切る(放電させる)回路の作り方の詳細に関しては下記記事で紹介しています。
また乾電池の容量・寿命まで確認しています。(リンク先はこちら)
乾電池に「乗数が小さく」「容量が大きい」抵抗を接続すればOKです。
今回は2.2Ωの5W品のセメント抵抗を繋げています。
大きい抵抗の100Ωや1kΩを接続した方が消費電流も減り、現実的な値に近くなります。
但し、消費電流を小さくすると電池を使い切るまでの時間が一気に増えますのでご注意ください。
今回の2.2Ωの抵抗でも3~4時間ほど掛かっています。
100Ωや1kΩの場合、電池を使い切るまでに恐らく数十時間~数百時間かかります。
※グラフ上の横軸の表記は1/10されています。
今回は最初に2.2Ωの抵抗を4時間接続して、乾電池を使い切ります。
そして抵抗を外して、乾電池が復活する際の電圧値を測定します。
電力容量(W)が大きめの抵抗を選びます
乾電池の電圧は1.5Vですが、電流を多く流すので電力容量(W)が大きめの抵抗を接続します。
電力容量(W)が大きい抵抗としてはセメント抵抗が市販でも販売されています。
例えば、乾電池1.5Vに2.2Ωの抵抗を使うとすると単純計算で1Wを超えます。
W(電力) = V(電圧)×I(電流) = V(電圧)^2/R(抵抗) = 1.5(V)^2/2.2(Ω) = 1.02(W)
今回選んだセメント抵抗は5W品のため、十分に電力容量に余裕があります。
電力容量(W)に余裕があるセメント抵抗でも結構発熱します。
普通の金属皮膜抵抗だと1/4W程度のため、NGです。最悪燃えます。
最初は筆者もセメント抵抗を持っていなくて、金属皮膜を複数並列で接続しようと思いました。
ただ一回試したところ発熱がかなり大きかったので、結局セメント抵抗を購入しました。
長時間放電させるので余裕持った電力容量(W)の抵抗をおすすめします。
乾電池の回復特性を自動でプロット・CSV化させる
今回は乾電池がどのように回復していくのかを確認したいので、電圧値をグラフ化します。
下記記事のようにテスターで乾電池の電圧は測定して読み取れます。
但し、テスターを目で見て電圧値をプロットするのは手間です。
今回はArduinoのアナログ入力を使って自動的に電圧値を測定させます。
Arduinoをラズベリーパイと連携させることで自動でグラフ化までさせます。
また後でデータとして使えるようにcsv出力まで対応していきます。
実際の回路図イメージとしては下記形です。
乾電池の放電回路にArduinoのアナログ入力ピン(A0)とGNDを接続した形です。
特にはんだ付けなどは必要なく、ジャンパー線などで配線・接続すればOKです。
電池BOXや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して、電圧を表示・プロットします。
そして指定の時間(今回は5分後)に測定したデータをcsvで出力しています。
出力したcsvはプログラムの同フォルダに作成されます。
実際に使用したプログラムは下記です。
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])) # 折れ線グラフを再描画する plt.plot(x, y) # 指定の時間(s)にファイル出力する if int(x[-1]*10)== 300: np.savetxt('logger_bat_recover.csv', y) # グラフのタイトルに電圧を表示する plt.title("CH* = "+ str(y[-1]) +" V") # グラフに終止電圧の0.9Vに補助線(赤点線)を引く p = plt.plot([0, x[-1]],[0.9, 0.9], "red", linestyle='dashed') # グラフの縦軸_電圧の範囲を指定する plt.ylim(0,2.0) 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() |
乾電池の回復特性のグラフ
実際に測定した乾電池はアルカリ電池とマンガン電池です。
アルカリ電池は「三菱電機」製で、マンガン電池は「富士通」製です。
冒頭でも紹介しましたが、実際の測定動画が下記となっています。
負荷(抵抗)外した直後にアルカリ・マンガンともに一気に電圧値が上がっています。
アルカリ乾電池の回復特性
2.2Ω抵抗を外した三菱電機製のアルカリ乾電池の回復特性は下記結果となりました。
負荷(抵抗)に外した瞬間に、乾電池の電圧が一気に上がります。
そして、終止電圧0.9V辺りでまた一段階上がった形となりました。
アルカリ乾電池の回復特性の測定データのcsvは下記となります。ご自由にお使いください。
CSVでは1秒置きのデータで5分間(300秒)の電圧値が保存されています。
15秒辺りで抵抗を外しています。
mitsubishi-alkaline-battery-recover.csv
使い切った乾電池の電圧値
テスターでも測定しておいたので記載しておきます。
2.2Ωを4時間接続して、使い切ったアルカリ乾電池の電圧値は0.124Vでした。
1週間放置して復活した電圧値
負荷(抵抗)を外して1週間放置したアルカリ電池の電圧です。1.337Vまで復活していました。
マンガン乾電池の回復特性
2.2Ω抵抗を外した富士通製のマンガン乾電池の回復特性は下記結果となりました。
負荷(抵抗)に外した瞬間に、乾電池の電圧が一気に上がります。
それ以降はゆっくりと電圧値が上昇していきます。
マンガン乾電池の測定データのcsvは下記となります。ご自由にお使いください。
CSVでは1秒置きのデータで5分(300秒)の電圧値が保存されています。
15秒辺りで抵抗を外しています。
fujitsu-manganese-battery-recover.csv
使い切った乾電池の電圧値
テスターでも測定しておいたので記載しておきます。
2.2Ωを4時間接続して、使い切ったマンガン乾電池の電圧値は0.1156Vでした。
1週間放置して復活した電圧値
負荷(抵抗)を外して1週間放置したマンガン電池の電圧です。1.360Vまで復活していました。
アルカリ電池とマンガン電池の比較
最後に出力したCSVからアルカリとマンガンの回復特性を並べて比較してみました。
最初の5分だけを見るとアルカリの方がマンガンより回復スピードが速い結果となりました。
ただ先述した通り、1週間後に電圧値を測定すると両方共に1.3V程度まで回復しています。
あくまで今回のは一例で、負荷や残り容量などで結果は変わりますのでご注意ください。
まとめ
今回は乾電池が復活する際の電圧値に関して紹介させていただきました。
記事をまとめますと下記になります。
ラズベリーパイ(raspberry pi)とPythonは今回のようなデータ取集に非常に便利なツールです。
ハードウェアの勉強や趣味・工作にも十分に使えます。是非皆さまも試してみて下さい。
コメント