PIC 52:MC-P アルカリ乾電池の充電器


 その後の変更に付いて 

 使用中液漏が発生したので「一部プログラムの変更」と同時に「使い方」も変更した。[2009/9/5 変更]

[1]単4電池での充電電流を20mAから16mAと幾分減らした、150Ωから220Ωにハードを変更。
[2]充電電圧をMaxを1.54Vから1.50Vとした(下のプログラムは変更した)。
[3]運用上の事ですが、一度の充電時間をMax12時間とし(8時間でも良い)、必要なら同じ時間を休ませてから再充電をする。
[4]使う場合液漏れが無いことを確認する為、1日経過してから使うことにした。


充電器

 手作業では面倒! 

 今まで何回と無く実験して来ました。実験は手作業の所が多いので自動化する、単4型電池の実験がほとんどですから「単4電池専用の充電器」を作ることにしました。

 Max電圧は1.54Vにしています。当初1.58Vにしようと予定していましたが、出来の悪い電池があり1.56V辺りで足踏みをしていました「その間1時間以上」そこで基準電圧を安全を見て1.54Vにしました。

 普通の電池は1.6Vぐらいまで上昇します、たいていそのまま動作するはずですが・・・。という事で上記のようになりました。

 [ Softは ]

 あまり意味はないのですが、A/D変換を8回させてその平均を測定DATAとしました。割り算はせず直接加算したDATAを調べています。アセンブルでは面倒ですがC言語では簡単です。
 予定の電圧(1.54V)に達したら充電を止めて、フラッグを建てます。このフラッグが立っていればループ内の調べをパス(何もしない)させています。

 ループは0.3秒の待ち時間を入れ、およそ1/3秒としました。正確にカウントすればある程度時間は分りますが今回は使っていません。

 単4乾電池は約20mAです。この前後に合えばよいので固定抵抗で合わせ込みます。150Ωで20mAを少し越えましたが「この程度で良し」として使いました。

 単3乾電池の場合その2倍(つまり抵抗値をパラ=並列)に接続すれば良い。
 規定の電圧になるとLEDが消灯して(終了を)知らせてくれます。その後は充電しないので、はずす時に次の点に注意します。


回路図

☆電圧が早く低下するものは古すぎる電池です。(1日で1V以下に下がる)
☆早く充電完了するものも古すぎる電池です。(1時間もしないで充電完了)
 基準はありませんが何本か経験して知識として使って下さい()は参考までに!

 [ ハードの製作 ]

 始めブレッドボードに組み立てたのですが、家にあるピンの大きさの異なるものがあり、少しスペースがあり過ぎてブラブラして接触不要で動いたり止まったりで困りました。
 何時ものように基板に半田付けして取り付けました。いきなり本番のような感じですが、まだ十分に設備が整っていません。古いものは使えるのですが、少しさび付いているので順次新しいものに交換しようと思っています。

 ブレッドボードはスペースのあるもの用は「リード線が売って無い」ので自作をするか、売られるのを待つか・・・です!

 [ 出来上がって ]

 少し楽になりました。いちいちテスタを見なくて良いので・・・。

 アルカリ乾電池も付き合うと結構がんばって活躍してくれます。新品のような1.5Vまでは電圧は維持出来ませんが1.3-1.4V程度で使えるセットに使ってやれば、それなりに使えるものです。


2009年7月12日 


/*       PIC12F675 INTRC OSC
         Alkalin Battry Rechage System
         for UM-4"AAA" or UM-3"AA"
         2009/7/3      Last  7/7
 Internal RC Noclock    Watch dog=off   Power UP=on
 Master Clear=Disable   Brown out=on    Code protec=off   EEPROM=off
	Config=0x31C4	Rom=136 bytes
*/

void main() {
      unsigned short CU,FLAG;
      unsigned int   ADIN;
//
//    OSCCON=0b01100000;          // for 12F683
      CMCON=0b00000111;
      ANSEL=0b00010010;           // AD=GPIO 0,4
      TRISIO=0b00011110;          // 1=in 0=out
      GPIO=0;
      for (CU=0;CU<6;CU++){       // LED ON-OFF for Stert wink
        GPIO  =~GPIO;
        Delay_ms(200);
      }
      FLAG=0;
      while(1){
         if (FLAG.F1==0)
         {
            ADIN=0;
            for (CU=0;CU<8;CU++){
               ADIN+=ADC_Read(3);
            }
            if (ADIN>2460){       // (1.5/(5/1024))*8=2460
               GPIO.F5=1;
               FLAG.F1=1;
            }
         }
      Delay_ms(331);
      }
}
/* アルカリ乾電池の充電  Max電圧を1.56Vにした。単4で20mA、単3で40mAの充電電流。
 電圧は8回測定し平均とする。1.56Vに達したらFlagを立てて動作を止める。次回から
Flagが1なら終了とみなしパス。全体のループは3回で1秒とした。
 電源が5.05Vなので少し修正し、Max1.54V(315)*8=2523とした。2009/7/6
 更に、Max1.50V(307)*8=2457(2460)とした。9/5
*/

 [MENU] [MAIN MENU]

inserted by FC2 system