工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

高機能9Vニッケル水素電池充電器:Arduino制御で定電流・dV/dt終止・トリクル充電対応(Ver.1)

概要

市販の9Vニッケル水素電池充電器の多くが「定電流制御なし、終止検知なし、過充電で寿命短縮」という問題を抱えるため、Arduino UNOで制御するスマート充電器を自作。MCP4725(I2C 12bit DAC)+LM358オペアンプ+LM317可変レギュレータで精密定電流源を構成し、-dV/dt検知で充電完了を判定、その後トリクル充電(C/40)へ自動移行するVer.1を実装。LCDで電圧/電流/時間/充電量を表示。

充電理論の要点

回路構成

定電流源ブロック

  1. MCP4725 DAC(0-5V出力)
  2. LM358オペアンプで3.06倍増幅(R4=6.8kΩ, R3=3.3kΩ) → 0-15.3V
  3. LM317 ADJ端子へ接続 → OUT-ADJ間1.2V維持でバッテリー電圧制御
  4. 電流検知抵抗 R5=10.2Ω(10Ω標準+実測補正)で電流=電圧/10.2

電圧測定ブロック

安全/表示

ステート・マシン制御フロー

  1. INITIALIZATION:リレー切断、DAC=0V
  2. NO_BATTERY:電圧<0.1Vなら待機
  3. BATTERY_CONNECTED:電圧>7Vなら次の段階へ
  4. CURRENT_RAMP_UP:DAC電圧を微増し目標電流(既定30mA)到達まで
  5. CHARGING:定電流維持、毎分バッテリー電圧記録、5分間の線形フィット傾き<0で完了判定
  6. CURRENT_RAMP_DOWN:トリクル電流(C/40≈4.25mA)まで減衰
  7. TRICKLE:トリクル維持、最大6分(設定可)経過で終了
  8. END_OF_TRICKLE/FINAL_STATE:リレー切断、完了表示

異常検知:過電流(>200mA)、過電圧(>15V)、制御不能、電流予期せぬ減少 → 即座にリレー切断・エラー表示・停止。

ソフトウェア構成(複数.inoファイル)

設定パラメータ(charger.ino冒頭)

float target_current_mA = 30;           // 充電電流 mA
float battery_nominal_capacity_mA = 170; // 公称容量 mAh(トリクル電流計算用)
float max_time_for_trickle_charge = 6;   // 最大トリクル時間(分)

容量170mAhなら最大170mA(1C)まで設定可能。最小≒17mA(C/10)。

表示例

安全上の警告

今後の拡張予定(Ver.2以降)

リソース

まとめ

Arduino+DAC+オペアンプ+レギュレータという古典的アナログ制御構成で、市販品並みの「定電流・-dV/dt終止・トリクル」を実現したスマート充電器。ステート・マシン設計で挙動が明確、LCDで全パラメータ可視化、安全保護も多重化。NiMH電池の特性を深く理解し、アナログ回路設計とファームウェアの統合を学ぶ上で極めて優れたプロジェクトです。Ver.2での機能拡張も楽しみです。

製造プロセス

  1. スマート渇きアラート植物アラーム – 最適な水やりタイミングを知らせるDIYセンサー
  2. イタリア語ワードクロック自作:Arduino Nano、NeoPixel、LCD、RTCで時刻を文字で表示
  3. アナログ3ピンで4×3キーパッドを接続 - Arduinoピン節約テクニック
  4. Arduino MKR Fox 1200で作る信頼性の高いSigfox kWhメーター
  5. Bluetooth対応温度モニター:Arduino NanoとHC-06でスマホ監視
  6. 非接触ジェスチャー錠: APDS-9960とArduinoでセキュアアクセス
  7. Arduino Nanoコンパニオンキット – 電子工作に必須の部品とツールを搭載した多機能IC型デバイス
  8. Arduino Micro/Leonardo用 USB-MIDIアダプタキット – 完全パーツリストと実装ガイド
  9. Arduino用絶縁アナログ入力回路の設計:LM331 V-F変換+フォトカプラでノイズ耐性を確保
  10. RGB 32バンド オーディオスペクトラムビジュアライザー - Arduino LEDマトリックスプロジェクト
  11. Arduino UNOで作る精密反応速度テスター