電熱衣類の予備バッテリー

電熱ベストとグローブの予備バッテリーを作る


2019-01-23

コミネの電熱グローブ。7.4Vリチウムポリマー電池2100mAHで3時間程度使える。バイク用なので指先が熱くなる仕様。手の平や甲側にはヒーターは入っていないと思う。欠点は
・充電器の能力が低く充電時間が長い
・プラスチックケースに収められているので角ばってやや大きい
予備バッテリーの価格は安くはないがそれほど高くもない。充電器は1A出力なので2100mAHのバッテリー2個を充電するのに4.2時間はかかる。充電終盤には1C充電できなくなるので5時間以上になる

R0040174.jpg

バッテリーの仕様

R0040176.jpg

日立工機の電熱ベスト。ベスト本体は常に安売りされていて¥6000しない。但しアダプター、電池、充電器は別売なので日立工機の工具を持っている人用。欠点は工具用の電池なので異常に大きい。アダプターは出力12VのDC-DCコンバータ。工具用のバッテリーは4セル(14.8V)もしくは5セル(18.5V)のリチウムイオン電池なのでこれを降圧している。アダプターにはUSB充電コネクターも付いている

R0040177.jpg

電熱グローブの仕様確認。リチウムポリマー電池なのでバッテリーかグローブのどちらかに過放電保護回路が入っているはず。電源装置に接続して7.4Vから徐々に電圧を落としていく。結果5Vで遮断された。5V以下になると回路を切り離す保護回路がグローブに入っている。電池のためには1セル3V程度のほうが良いがやや低め。温度調節は3段階。流れる電流は1.5A一定でONデューティーが3段階に変化する。中の時デューティー50%程度

R0040171.jpg

2019-01-24

電熱ベストの仕様確認。この電源装置で出力できる最低電圧3.7Vまで遮断されなかった。つまり保護回路はベスト側には入っていない

R0040180.jpg

電流は12Vで1A。電圧が下がればオームの法則通り電流も低下する。グローブ同様温度調節は3段階。ONデューティーが変化するだけでサーモスタットによる温調ではない

R0040181.jpg

ジャックの形状は
ベスト:5.5x2.1mm よくある一番普通のサイズ
グローブ:3.5x1.35mm 日本では使われない規格だと思う ジャックは中国製のDC-083が合う

R0040184.jpg

ベストのアダプター。それなりに発熱するが電熱衣類は全部熱に変換する間抜けな回路なので熱が外部に逃げなければ効率は重要ではない

ここまでのまとめ
電熱グローブ:
 単三ニッケル水素電池x5本
    電池ボックスにDCジャックを付けるだけ。5Vで遮断されるので保護回路はいらない
 リチウムイオン電池x2本
    5V遮断だと電池にダメージがあるので保護回路は有った方が良い
電熱ベスト:
 単三ニッケル水素電池x10本
   8Vで遮断する回路が必要
 リチウムイオン電池x4本以上
   DC-DC降圧コンバータとバッテリ保護回路が必要
   リチウムイオン4セルならシリーズレギュレーターで降圧しても良い。ヒートシンクが必要になるが腰に電池を入れるためのポケットが付いているのでそこに入れれば良い
 バイクから直接電源を取るとき
   シリーズレギュレーターで降圧可能。発熱が最大2.5W有るのでヒートシンクが必要
   バイク側に変圧器を付けたい場合は効率の良いDC-DCコンバータを使う

R0040185.jpg

2019-01-25

部品を購入。モジュール化された物も有るが複数基板を組み合わせる必要があるので部品だけ購入して基板は自作する。中国の長期休暇が始まるので到着は遅くなるかもしれない

R0040186.jpg

FET

R0040187.jpg

バッテリプロテクター

R0040188.jpg

DC-DCコンバータ

2019-01-26

電熱ベスト用の試作回路。データシートにあったものをそっくりコピー。充電機能は無し。充電器はヒートシンクが必要になるので一体型にしないほうが良い。DC-DCコンバーターと電池の間にスイッチを入れて電気を食わないようにしておく必要がある。スイッチが無いと負荷がつながっていなくてもDC-DCコンバーターが電力を消費してしまう

R0040193.jpg

2019-01-28

2セル用の保護ICが見つからない。定番はDW01らしいがこれは2.4Vが過放電保護電圧。2.4Vまで電圧が下がったら遮断、その下にある3.0Vまで電圧が回復したら接続。電熱グローブ側に2.5Vの保護ICが入っているので使う必要が無い。2.5V付近になるのはバンドギャップリファレンスx2だろうか?。日本メーカー製なら良い物があるが入手性が悪い。本来この手のICは製品を作るときに電池メーカーに都度性能確認して保護電圧を決めるものなので汎用品としては存在しない

R0040194.jpg

2019-01-29

2セル用はDigiKeyを探しても見つからず。MOC(最小注文数)が3000ならある。過電圧、過電流、放電、充電、遮断、回復の組み合わせだけ製品型番がある。外付け抵抗でこれらの値を設定できると便利であるが抵抗の電力消費で電池が過放電してしまう。これはSII(時計のSEIKO)の製品でエイブリックは社名変更後の名前
バイクのグローブなら使っているときは常に振動するので振動センサーやジャイロで使用中を検知してスイッチ切り忘れ時に警告音が鳴るといった具合に発想を変えたほうが良さそう

R0040199.jpg

2019-01-31

18650電池用の電池ボックスを探していたらこんなものを見つけた。出力は12VとUSB用の5V。そのまま使えそうな気がする。部品を買ってしまったので製作は継続する

R0040205.jpg

工具用のバッテリーはだいぶ弱ってきて計算通りの時間使用できなくなってきている。中身はこんな感じ。18650リチウムイオン電池8セル。2本ずつ並列を4セットの構成。最近の18650は1本で3000mAHはあるがこれは半分の容量しかない。工具用はかなり過酷な急速充電をするので高容量品が使えないか単に旧式なだけかどちらかだと思う。一番平均気温が低い今の時期に強モードだと少し暑い。バイクで使って暑くなるのでそれ以外の用途では十分すぎる発熱量がある

R0040208.jpg

2019-02-11

2セル用はPICで代用することにした。消費電力はウォチドグタイマーを動かした状態で1μAしか流れない。電源電圧2Vの時なので3Vではもう少し多いはず。これは専用ICと同程度。基準電圧源が必要になるが内蔵されているPICを選択する

R0040263.jpg

PICは買い置きのあったPIC10F222を使う。但しこれはかなり古い12bit命令長の物なので骨董品のソフトで開発する必要がある。プログラムを書いてみてわかったことであるがTRISレジスターにはアドレスが無く書き込むためにはTRIS命令を使うという仕様になっている。当方がPICのプログラミングを始めたはるか昔には既に12bit命令長のPICは廃版になりかけていた。12bitタイプを使うのは今回初めて

R0040267.jpg

12bit命令のPIC10F222

R0040266.jpg

14bit命令のPIC10F322

2019-02-12

プログラム開発。PIC10F222は8ピンのDIPタイプで2ピンはNCになっている。SOT23パッケージは6ピン。ピン並びはだいぶ違う。低電圧になった時にブザーを鳴らすかLEDを光らせるかは実験してから決める。バイクで使う場合ブザーはかなり大きな音で鳴らないと聞こえない。電池は手首の手のひら側にあるのでLEDは見やすい位置に無い。PIC10F222は良いサンプルが無くこの小さなプログラムを書くのにかなり苦戦した。pickit2との相性も悪く時々osccalのエラーが出る。pickit2のUSBを挿し直しpickit2(ソフトの方)を再起動すると回復する。Windows10の問題かもしれない

R0040280.jpg
試作プログラム コンパイラ:xc8
0001  /*============================================================================*/
0002 /* File: lipo_protect_pic10F222.c */
0003 /* Compiler: MPLAB_X_IDE & MPLAB_XC8 */
0004 /* MPU:PIC10F222 4MHz */
0005 /*============================================================================*/
0006 #define _XTAL_FREQ 4000000
0007
0008 #pragma config MCLRE = OFF
0009 #pragma config WDTE = ON // Watchdog Timer Enable
0010 #pragma config MCPU = OFF
0011 #pragma config CP = OFF
0012 #pragma config IOSCFS = 4MHZ
0013
0014 #include <xc.h>
0015 #include <pic10f222.h>
0016 #include <GenericTypeDefs.h>
0017
0018 #define TRIS_GP0_GP2_OUTPUT 0b00001010
0019 #define TRIS_GP_ALL_INPUT 0b00001111
0020
0021 //----------- LED/BUZZER/FET ------------------
0022 #define LED GPIObits.GP2
0023 #define FET_GATE GPIObits.GP0
0024
0025 //----------- HIGH/LOW ------------------------
0026 #define HIGH 1
0027 #define LOW 0
0028
0029 //----------- A/D -----------------------------
0030 #define AD_ON 1
0031 #define AD_OFF 0
0032
0033 #define LOWBATTERY_VOLTAGE 32 // 32 = 3.2[V]
0034 #define REFERENCE_VOLTAGE_x10 6 // 6 = 0.6[V] x 10
0035
0036 void main(void) {
0037 OPTION = nGPWU | // Disabled Wake-up On Pin Change
0038 nGPPU | // Disabled Weak Pull-ups
0039 PSA | // Prescaler assigned to the WDT
0040 PS; // Prescaler Rate Select 1:128
0041
0042 ADCON0bits.CHS1 = 1; // 0.6V absolute Voltage reference
0043 ADCON0bits.ANS0 = 0; // GP0/AN0 configured as digital I/O
0044 ADCON0bits.ANS1 = 0; // GP1/AN1 configured as digital I/O
0045
0046 while( TRUE ) {
0047 ADCON0bits.ADON = AD_ON; // ADC module is operating
0048 ADCON0bits.GO_nDONE = 1;
0049 while( ADCON0bits.GO_nDONE == 1 ) { // ADC conversion in progress
0050 ;
0051 } // ADC conversion completed
0052 ADCON0bits.ADON = AD_OFF; // ADC module is shut-off
0053 TRISGPIO = TRIS_GP0_GP2_OUTPUT;
0054 if( ADRES >= (unsigned char)(256 * REFERENCE_VOLTAGE_x10 / LOWBATTERY_VOLTAGE) - 1 ) {
0055 LED = 1;
0056 FET_GATE = LOW;
0057 __delay_ms(1000);
0058 LED = 0;
0059 TRISGPIO = TRIS_GP_ALL_INPUT;
0060 SLEEP();
0061 } else {
0062 FET_GATE = HIGH;
0063 LED = 0;
0064 __delay_ms(1000);
0065 CLRWDT();
0066 }
0067 }
0068
0069 return;
0070 }
行番号
解説
9行目
ウオッチドグタイマーを使用する
37行目
ここにある項目以外はビットがクリヤされる
39行目
ウオッチドグタイマーの周期は2.3秒
53行目
TRISレジスターはTRIS命令に変換されるのでビット単位操作は出来ない。
54行目
浮動小数点を使いたいがPIC10F222のROMは大きくない
55行目
低電圧の場合はFETをOFFしLEDを1秒点灯させてスリープ
62行目
電圧が3.2V以上の場合はFETをON。つまり電池残量がある限りPICは動き続けスリープしない
上のソース現物
ファイル ファイルタイプ 添付ファイルの解説
lipo_protect_pic10F222.zip MPLAB XC8 上のソース現物

2019-02-13

出力ピンが余っているので過充電防止機能も付けた。過電圧になると過充電防止機能によってFETがOFFされるので放電できなくなってしまうが電池の自己放電によりすぐに電圧がさがるしFETのボディーダイオード経由でも放電できる

R0040282.jpg

詰めれば1x2cmサイズに収まってしまう

R0040283.jpg

2019-02-15

消費電力測定。
3.2[V]->2.5μA
3.0[V]->1.8μA
2.0[V]->1.0μA
3.1[V]LED点灯時->1.3mA
LEDは2.3秒周期で5msecしか点灯しないが平均では2.8μAとなりLEDの消費電力のほうが大きい。LEDは3.0[V]以下に電池電圧が下がると点灯しないようにする

R0040284.JPG

OSCCALの値が変更できない問題が発生したのでICD3やpickit3も使ってみたが結局picが壊れていたことに気が付かなかっただけだった。PIC10シリーズはpickit2とターゲットのPIC10を接続しなくても読み込み機能がエラーを出さなかったり書き込み時の通信の仕組みが簡略化されているようで問題発見が遅れる

OSCCALについてまとめ:
・OSCCALはプログラムメモリーの一番最後のアドレスにある
・値は Cxx でアセンブラでは MOVLW xx を意味する
 プログラム実行時、一番最初にこの命令が実行されOSCCALレジスターに値が設定される
・pickit2や3ではこの値がCxx意外だと invalid osccal value のエラーが出る
・OSCCALはプログラムメモリーに書き込まれているのでpickit2やpickit3でERASE機能を使うと消えるので実行してはいけない
・pickit2(ソフトの方)にはOSCCALの再生成機能がある
 たぶん発信周波数確認用のプログラムを書き込み実行しpickit2でプログラム実行速度を計測し校正値をプログラムメモリーの最後に書き込んでいる
 つまりpickit2の水晶の精度によって校正される
・PIC10シリーズ等ベースライン製品(PIC16シリーズなどはミッドレンジで一つ上の製品群)は通信の機能が簡素なので
 プログラムメモリーを読み込んで全部 000 だったり FFF ならPICが壊れて何も読み出せていない事や
 配線間違いで読み出せていないことを疑う
 PIC10シリーズは電気的に壊れやすいような気がする(実際2個壊してしまった)
・pickit3(ソフトの方。Windowsだと終了するときにエラーが出るそれ)は手動変更機能はあるが自動生成機能はない
・xc8等で開発したときこのアドレスにはプログラムを上書きしない
 但しlinkerのオプションを指定すると上書きが可能
 上書きは固定値を書き込むので発信周波数はPICのその個体に依存するため良い方法ではない
 OSCCALを壊してしまった場合はpickit2(ソフトの方)で自動生成された値を書き込みプログラム側では何もしないのが正しい

R0040294.JPG

中国製の2セルリチウムイオン電池保護回路もテスト
・保護電圧は実測3.0V
・保護電圧以下での消費電力は小さすぎて計測不能。電流0.1μA以下
・バッテリに半田付けするように設計されているようで充電済みの電池を接続しても正常動作しない
 充電(充電端子が電池端子電圧より高くなること)によってリセットされる
 この仕様のため電池ボックスは使えない
電池ボックスを使う前提なら多少消費電力が大きくても問題ないので
・電池に直接半田付けするなら中国製のこれ
・電池ボックスを使うならPICで自作
という使い分けにすればよい

R0040302.jpg

電池はすぐに放電してくれないので1000μF電界コンデンサで代用している

R0040303.jpg

ICはたぶんこれTC2120-CB。中国メーカーオリジナル製品。ICだけの販売はaliexpressに無し

R0040298.jpg

2019-03-01

回路図。MCLRはOFFにしてあるが空きピンにしておくと消費電力が増えるのでGNDに落とした。プルアップでも良いはず。面倒なので実験していない。1セル用なので複数セル直列で使う場合は一番マイナス側のセルに回路を取り付ける。以前の値を記憶できない原因は変数定義時に __persistent を使うことで解決できた。PICで自作すると保護電圧を自由に設定できるが専用品より1桁消費電力が大きくなる

battprotectsch.png

基板レイアウト。チップ抵抗にすればもっと小さくなる

R0040359.jpg
プログラム
0001  /*======================================================= 2019-03-01 =========*/
0002 /* File: lipo_protect_pic10F222.c */
0003 /* Compiler: MPLAB_X_IDE & MPLAB_XC8 */
0004 /* MPU:PIC10F222 4MHz */
0005 /*============================================================================*/
0006 #define _XTAL_FREQ 4000000
0007
0008 #pragma config MCLRE = OFF
0009 #pragma config WDTE = ON // Watchdog Timer Enable
0010 #pragma config MCPU = OFF
0011 #pragma config CP = OFF
0012 #pragma config IOSCFS = 4MHZ
0013
0014 #include <xc.h>
0015 #include <pic10f222.h>
0016 #include <GenericTypeDefs.h>
0017
0018 #define TRIS_GP_OUTPUT 0b00001000 // GP0,GP1,GP2 = OUTPUT GP3 = INPUT
0019 #define TRIS_INDICATOR_OUTPUT 0b00001011 // GP2 = OUTPUT GP0,GP1,GP3 = INPUT
0020
0021 //----------- LED -----------------------------
0022 #define LED GPIObits.GP2
0023 #define FET_GATE_DISCHARGE GPIObits.GP0
0024 #define FET_GATE_CHARGE GPIObits.GP1
0025
0026 //----------- HIGH/LOW ------------------------
0027 #define FET_ON 1
0028 #define FET_OFF 0
0029 #define LED_ON 1
0030 #define LED_OFF 0
0031
0032 //----------- A/D -----------------------------
0033 #define AD_ON 1
0034 #define AD_OFF 0
0035
0036 #define INDICATOR_OFF_VOLTAGE 300 // 300 = 3.0[V] x 100
0037 #define LOW_BATTERY_VOLTAGE 320 // 320 = 3.2[V] x 100
0038 #define REDISCHARGE_VOLTAGE 340 // 340 = 3.4[V] x 100
0039 #define NORMAL_VOLTAGE 370 // 370 = 3.7[V] x 100
0040 #define RECHARGE_VOLTAGE 420 // 420 = 4.2[V] x 100
0041 #define HIGH_BATTERY_VOLTAGE 430 // 430 = 4.5[V] x 100
0042 #define REFERENCE_VOLTAGE 60 // 60 = 0.6[V] x 100
0043
0044 static __persistent unsigned int prev_voltage; // LOW_BATTERY_VOLTAGE or
0045 // NORMAL_VOLTAGE or
0046 // HIGH_BATTERY_VOLTAGE
0047
0048 void main(void) {
0049 unsigned int ad_voltage;
0050
0051 if( STATUSbits.nPD == 1 ) {
0052 prev_voltage = NORMAL_VOLTAGE; // after power-up
0053 }
0054
0055 OPTION = nGPWU | // Disabled Wake-up On Pin Change
0056 nGPPU | // Disabled Weak Pull-ups
0057 PSA | // Prescaler assigned to the WDT
0058 PS; // Prescaler Rate Select 1:128
0059
0060 ADCON0bits.CHS1 = 1; // 0.6V absolute Voltage reference
0061 ADCON0bits.ANS0 = 0; // GP0/AN0 configured as digital I/O
0062 ADCON0bits.ANS1 = 0; // GP1/AN1 configured as digital I/O
0063
0064 TRISGPIO = TRIS_GP_OUTPUT;
0065 LED = LED_OFF;
0066
0067 while( TRUE ) {
0068 ADCON0bits.ADON = AD_ON; // ADC module is operating
0069 ADCON0bits.GO_nDONE = 1;
0070 while( ADCON0bits.GO_nDONE == 1 ) { // ADC conversion in progress
0071 ;
0072 } // ADC conversion completed
0073 ADCON0bits.ADON = AD_OFF; // ADC module is shut-off
0074 ad_voltage = 256 * REFERENCE_VOLTAGE / ADRES;
0075
0076 if( ( ad_voltage <= LOW_BATTERY_VOLTAGE ) ||
0077 ( (prev_voltage == LOW_BATTERY_VOLTAGE) && (ad_voltage < REDISCHARGE_VOLTAGE)) ) { // over discharge
0078 FET_GATE_DISCHARGE = FET_OFF;
0079 FET_GATE_CHARGE = FET_ON;
0080 prev_voltage = LOW_BATTERY_VOLTAGE;
0081 if( ad_voltage > INDICATOR_OFF_VOLTAGE ) { // over discharge
0082 LED = LED_ON;
0083 __delay_ms(5);
0084 LED = LED_OFF;
0085 }
0086 SLEEP();
0087 }
0088
0089 TRISGPIO = TRIS_GP_OUTPUT;
0090 LED = LED_OFF;
0091 if( (ad_voltage >= HIGH_BATTERY_VOLTAGE) ||
0092 ( (prev_voltage == HIGH_BATTERY_VOLTAGE) && (ad_voltage > RECHARGE_VOLTAGE) ) ) { // over charge
0093 FET_GATE_CHARGE = FET_OFF;
0094 FET_GATE_DISCHARGE = FET_ON;
0095 prev_voltage = HIGH_BATTERY_VOLTAGE;
0096 LED = LED_ON;
0097 __delay_ms(200);
0098 LED = LED_OFF;
0099 } else { // normal
0100 FET_GATE_CHARGE = FET_ON;
0101 FET_GATE_DISCHARGE = FET_ON;
0102 prev_voltage = NORMAL_VOLTAGE;
0103 __delay_ms(300);
0104 }
0105 CLRWDT();
0106 }
0107
0108 return;
0109 }
行番号
解説
22行目
LEDインジケーターが必要ない場合はこの行を消す。そしてコンパイルしてエラーする行を全部消せばLED無し版が完成する
36行目
電池電圧がこれ以下になるとLEDインジケーター自体も電池の保護のために消す。浮動小数点演算が出来るほどROMが無いので100倍して16ビット数値として扱っている
37行目
低電圧保護電圧
38行目
低電圧保護電圧まで電圧が下がった後にこの電圧まで電圧回復すると放電可能になる。大電流が流れる負荷の場合は LOW_BATTERY_VOLTAGE と REDISCHARGE_VOLTAGE の差が大きくないと 遮断->電圧回復->放電可能-> を繰り返して負荷が激しくON/OFFされる
40行目
高電圧で充電停止させた後にこの電圧まで電池電圧が下がると再び充電可能になる
41行目
電池電圧がこの電圧以上になると充電を遮断する
52行目
直前の電池電圧を記憶しておく変数の初期化。この行は電源投入時、つまり回路と電池が接続されたときに1回だけ実行される。計測した値を入れたほうが良いがプログラムが長くなるので適当な値を入れている。この変数は実測値ではなく 標準電圧、高電圧、定電圧 の3種類の値しかとらない
55行目
OPTIONレジスタの各ビットはヘッダファイルの定義を見る限り全部まとめて設定するしかないようだ。ここに無いビットはクリヤされる
60行目
A/D変換は内部の基準電圧原源0.6Vが電源電圧に対してどれくらいあるのかを計測する。電源電圧が0.6VならA/D変換値は255になる。電源電圧が上がるとA/D変換値は小さくなる
83行目
低電圧保護時はLEDが2.3秒置き(ウオッチドグタイマーの周期)に5msecだけ点灯する
96行目
高電圧保護時はLEDが0.5秒間隔で点滅する
回路図&プログラム
ファイル ファイルタイプ 添付ファイルの解説
LiPo_protector_1cell_katamen.zip EAGLE 上の回路図と同じもの EAGLE4.15以上用
lipoprotectxc8.zip OTHER ソースファイルなど一式。プロジェクトファイルは特定のフォルダー名を持っているかもしれないので作り直したほうが良いかもしれない

2019-09-01

中国製の18650リチウムイオン電池3400mAH。充電してから1日置いてカットオフ電圧3.2x2=6.4V、1.2A放電させると容量は2143mAH。夜間に自己放電したわけではなく最初からこの程度の容量しかない

R0041816.jpg

2019-09-02

中国製のバッテリー保護回路はスイッチを追加すると電池ボックスでも使える。Youtube動画 コミネ電熱グローブの予備バッテリー製作

M3080015.jpg

2019-11-24

電熱ベスト用回路実験基板製作

R0046321.jpg

0.005Ωの抵抗買い忘れ。代用品が無いので部品到着待ち。0.005Ωは入手性が悪いので0.01Ωを2個並列にする

R0046327.jpg

裏面

R0046329.jpg

2020-01-04

動作確認するも出力が0V。配線を大幅に間違えていた。DC-DCコンバーター部分を作り直す。バッテリープロテクト回路の出力は正常であるが電池電圧が落ちたときの動作確認は負荷になるDC-DCコンバーター回路が無いと実験できない

R0046525.jpg

2020-01-05

配線しなおしたが出力電圧が9.5Vしかない。設定上は12Vになるはず

R0046528.jpg

IC裏面のエクスポーズトパッドを配線しないとダメなようだ。裏面に電線を半田付けしてGNDに接続。しばらくいじっていたらICが飛んだ。作り直しは面倒なのでaliexpressで基板実装済みの物を買ってテストする。10個セットで$3以下

R0046533.jpg

2020-01-23

中国製のDC-DCコンバーターモジュールが届いたのでテスト。かなり熱くなる。ギリギリ触れる熱さなので衣類で保温してしまうと化繊のベストが溶ける可能性あり。ICとコイルのどちらかが熱くなっているかわからない

R0046581.jpg

コイルを外して通電。ICよりもコイルが熱くなる。電池ボックスの裏側に電子回路を配置したいので特定の電池が回路によって異常過熱されないようにしたい

R0046586.jpg

10個セット品なので1個分解。ICのエクスポーズトパッド。無理やり剥がしたので基板の方にチップのパッドが付いている。半田付けされているがそもそも基板が小さすぎてどこにも放熱できない。これは基板を作り直せば解決する。コイルは少し大きい物を注文しておいた

R0046588.jpg

2020-03-21

コイルが届いたので交換。電熱ベストを負荷にしたときの温度45度。小さいコイルとあまり変わらず。流れる電流から計算するともっと発熱は小さいはず

R0046803.jpg

実験していると無負荷でもコイルが発熱していることに気が付いた。しかも50度以上になっている。コイル両端の波形。無負荷の時はコイルへの通電時間が少ないのでもっと鋭いパルス状の波形になるはず。このICはダイオード、FET内蔵で計測個所が少なく原因追及が出来ない。ICをMP2307->MP1584に変更する。中国から届くまで待つ

R0046808.jpg

2020-04-09

DC-DCコンバータMP1584が到着したのでテスト。発熱もなく良好。負荷変動による電圧変動も0.05V程度。無負荷時の消費電力もほぼゼロになる

R0046944.jpg

可変抵抗は接触不良を起こす可能性があるので変更する。120kΩで出力12.3Vになる

R0046946.jpg

電池ボックスが届いたらサイズ確認して基板を発注する。基板に放熱する必要もないのでモジュールはそのまま使える。気温が上がってきたので本格的なテストは年末

R0046947.jpg

2020-07-13

基板が届いたので組み立て。無負荷なのにディスチャージプロテクションが動作して出力が出ない。原因不明。DC-DCコンバーターを切り離して実験したいが部品不足

R0047641.jpg

2020-07-14

DC-DCコンバーターを強引に取り外した。基板パターンが若干損傷したが使える。起動時に負荷が付いていると動かないようだ。実験の時なぜ動いていたのか不明。スイッチをつけて対策。スイッチをつけるなら出力側にパイロットランプがあったほうが良い。容量が若干少なくなるがサイズは1/3。冬場テストする

R0047646.jpg

2020-12-01

気温が低くなってきたので実走テスト。奥多摩周遊道路、気温3度。電池も10本買い足した。平野部の最高気温14度程度では最弱にしてもやや暑い。走りに行った場所は標高が高く気温もずっと低いのだがそれでも最弱で十分

okutamasyuyu.jpg

5.5時間走行して電池一本分を使い切らなかった。無負荷電圧は3.8Vある。バッテリー保護回路は2.8Vで動作する

R0048162.jpg

2020-12-04

前回使用した電池を充電せずにテスト。無負荷電圧3.2Vでシャットダウンした。基板発注予定はしばらく無いので不細工基板のままテストを続ける

R0048171.jpg

2020-12-18

最高気温8度。手袋は2時間で電池切れになる。電熱ベストは最弱モードでも寒く無いので10時間以上持つ。バッテリーパックより交換は面倒になるが1本単位で電池を管理できる

denchikoukan.jpg

AC-DCアダプターは能力限界ギリギリなので4Aの電源を買った。発熱量はアダプターと大差ないが金属部むき出しなので放熱に余裕がある。充電器は最大6本同時充電できるので電源を3個追加注文。価格は送料込み約¥500/個。AC-DCアダプターよりも安い

R0048266.jpg

2021-02-03

電源は結局6個買った。最大充電電力50W。1本1.5時間で充電完了する。手袋が一番早く電池を使いきる。真冬は2.0~2.5時間

R0048501.jpg

2021-11-29

基板を作り直した。変更箇所はスイッチ追加、パイロットランプ追加の2点。パイロットランプはバッテリープロテクターの出力にも付けたが僅かでも消費電力があると起動してくれないようだ。電池を入れた状態で充電すれば出力が出るようになるはずだが電池ボックスのまま運用したいのでパイロットランプは廃止。しばらく使って問題無ければ部品をコーティングする。修理できなくなるので2個作った

R0049716.jpg

2021-12-21

中国製の怪しげなやつで固めた。「705」でAliexpressを検索すると出てくる。他に黒や白もある。接着剤ほどではない若干の揮発臭がある。2~3時間で十分な硬さになる。普通の合成ゴム系透明接着剤と同程度の流動性。硬化後はシリコンゴム程度の弾力になる。基板表面に対する接着強度は極めて低く部品に絡みついているため剥がれなくなっているだけ。YouTube動画 12Vモバイルバッテリーの製作

R0049750.jpg

回路図

sch5cell.png
ご参考
ファイル ファイルタイプ 添付ファイルの解説
LiPo_protector_5cell_MP1584.zip EAGLE プリント基板CAD EAGLE V4.15 基板レイアウト&回路図