13
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

秋葉原ロボット部Advent Calendar 2021

Day 3

スマホ充電器つけっぱなしでもリチウムイオン電池を長持ちさせる充電システムを作ってみた

Last updated at Posted at 2021-12-03

#使わなくなったスマホを再利用する
どこのご家庭にも転がっている使わなくなったスマホを再利用する事がよくあります
ウチでは見守りカメラとかカーナビとかで活躍してます
見守りカメラでは、充電器つなぎっぱなしで運用する事になり
ずっとバッテリー100%のままになり、リチウム充電池の寿命が短くなってしまう
(-_-)ウーム どげんかせんといかん

#リチウム充電池の寿命を延ばす方法
ネットで検索すると色々な扱い方が出てきます
スマホ・ノートPCなどのリチウムバッテリーの寿命を延ばす方法では
 -過放電や過充電しない
 -温度を低く保つ
 -充電電圧は4.2V以下に抑える
 -保存時は40%程度充電しておく
といった注意点を挙げています

また具体的な運用方法については、
スマホ80%充電機能とか手動で過充電に気を付けましょうとかで~
充電しっぱなしで自動運用する方法は見つかりませんでした
という事でダメージの少ない充電方法を考えてみました

#充電タイマー作ってバッテリー満充電させない作戦
スマホのバッテリー管理機能でバッテリー残量アラートが鳴ったら
一定時間充電するという方法を考えてみた

ウチにあった なのぼ~どAGマイコンのマイク入力でアラート音を拾って、MOSFETでUSB電源を二時間ONにする様パッチする
micschmod.png

####パッチ内容

  1. マイクを外してピンを立てる
  2. マイクのプルアップ抵抗10Kを外す
  3. USBメスコネクタを追加 GNDを接続
  4. Pch MOSEFT SI2301を追加 ゲートをD13、ソースをVCC、ドレインをUSB出力へ
    NBAGpatch.jpg

####配線
-マイク端子をスマホイヤホンジャックに接続
-USBメスコネクタをスマホUSBに接続
-なのぼ~どAGのUSBミニB端子をUSB電源アダプタに接続
IMG20210911072050a.jpg

####コードはArduinoでサラッと書いた

マイク入力のレベルを監視して、検知したら120分間USBパワーONに~

chargetimer.ino
/*
  Charge Timer
  Andriod Battery charging TIMER
  Charge few hour when battery alart ring. 
  Long life floating charging between 20% and n0%
  by @tomonnn1
 */
 
// Pin 13 has an LED connected on most Arduino boards.
// give it a name:
int led = 13;
int usbp = 11;
int DELEYMINNTS = 120;

// the setup routine runs once when you press reset:
void setup() {                
  // initialize the digital pin as an output.
  pinMode(led, OUTPUT);     
  pinMode(usbp, OUTPUT);  
  digitalWrite(led, LOW);   // turn the LED off 
  digitalWrite(usbp, HIGH);   // turn the USB power off
  
}

void usbpower() {
  digitalWrite(led, HIGH);   // turn the LED on
  digitalWrite(usbp,LOW );   // turn the USB power on 
  for( int i=0; i< DELEYMINNTS; i++) delay(60000);     // wait for a minits
  digitalWrite(led, LOW);   // turn the LED on 
  digitalWrite(usbp, HIGH);   // turn the USB power on
  delay(1000);               // wait for 5 second
}

// the loop routine runs over and over again forever:
void loop() {
  if(analogRead(A0)>30)
    usbpower();
    delay(50);
}

13
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?