- バッテリー充電器のCCおよびCVモード:
- 回路図
- LM317電流レギュレータ
- LM317電圧レギュレータ
- CCモードとCVモードを切り替えるリレー配置
- リチウム電池電圧の測定
- 充電電流の測定
- ArduinoとLCD
- EasyEDAを使用したPCBの設計と製造
- オンラインでのサンプルの計算と注文
- 2ステップのリチウム電池充電用のArduinoのプログラミング
- 7.4V2ステップリチウムバッテリー充電器の動作
電気自動車、ドローン、およびIoTデバイスなどの他のモバイル電子機器の進歩は、将来に有望であるように思われます。これらすべてに共通することの1つは、すべてバッテリーで駆動されることです。ムーアの法則に従って、電子機器はより小さく、より飲用になりがちです。これらの携帯機器は、動作するための独自の電源を備えている必要があります。今日の携帯用電子機器で最も一般的なバッテリーの選択肢は、リチウムイオンまたはリチウムポリマーバッテリーです。これらのバッテリーは非常に優れた電荷密度を持っていますが、過酷な条件下では化学的に不安定であるため、充電および使用時には注意が必要です。
このプロジェクトでは、リチウムイオンまたはリチウムポリマーバッテリーの充電に使用できる2ステージバッテリー充電器(CCおよびCV)を構築します。バッテリ充電回路が7.4Vのリチウムバッテリーパックのために設計されて、私は一般的に、ほとんどのロボットで使用(シリーズ2 18650)プロジェクトが、回路を簡単に構築したい低いかやや高いバッテリーパックに合わせて変更することができます3.7リチウム電池充電器または12vリチウムイオン電池充電器。ご存知かもしれませんが、これらのバッテリーには既製の充電器がありますが、安価なものは非常に遅く、速いものは非常に高価です。そのため、この回路では、CCおよびCVモードのLM317ICを備えた単純な粗充電器を構築することにしました。。また、独自のガジェットを作成してその過程で学習するよりも楽しいことは何ですか。
リチウム電池は慎重に取り扱う必要があることを忘れないでください。過充電または短絡は爆発や火災の危険につながる可能性があるため、周囲の安全を確保してください。リチウム電池を初めて使用する場合は、先に進む前に、リチウム電池の記事を読むことを強くお勧めします。そうは言っても、プロジェクトに取り掛かりましょう。
バッテリー充電器のCCおよびCVモード:
ここで構築する予定の充電器は2ステップ充電器です。つまり、定充電(CC)と定電圧(CV)の2つの充電モードがあります。これら2つのモードを組み合わせることで、通常よりも速くバッテリーを充電できるようになります。
定電荷(CC):
動作を開始する最初のモードはCCモードになります。ここでは、バッテリーに入る充電電流の量が固定されています。この電流を維持するために、電圧はそれに応じて変化します。
定電圧(CV):
CCモードが完了すると、CVモードが開始されます。ここでは、電圧が固定されたままになり、バッテリーの充電要件に応じて電流を変化させることができます。
私たちの場合、7.4Vのリチウム電池パックがあります。これは、それぞれ3.7Vの2つの18650セルが直列に接続されています(3.7V + 3.7V = 7.4V)。このバッテリーパックは、電圧が6.4V(セルあたり3.2V)に達したときに充電する必要があり、8.4V(セルあたり4.2V)まで充電できます。したがって、これらの値はバッテリーパックですでに修正されています。
次に、CCモードでの充電電流を決定しました。これは通常、バッテリーのデータシートに記載されており、値はバッテリーのAh定格によって異なります。私たちの場合、定充電電流として800mAの値を決定しました。したがって、最初にバッテリーを充電用に接続すると、充電器はCCモードになり、それに応じて充電電圧を変化させて800mAをバッテリーに押し込む必要があります。これによりバッテリーが充電され、バッテリー電圧がゆっくりと上昇し始めます。
電圧値の高いバッテリーに大電流を流しているため、バッテリーが完全に充電されるまでCCのままにすることはできません。バッテリー電圧がかなりの値に達したら、充電器をCCモードからCVモードにシフトする必要があります。ここのバッテリーパックは、完全に充電されたときに8.4Vである必要があります。これにより、8.2VでCCモードからCVモードに移行できます。
充電器がCVモードに移行したら、定電圧を維持する必要があります。この場合、定電圧の値は8.6Vです。バッテリーはCCモード自体でほとんど充電されるため、CVモードではCCモードよりもかなり少ない電流を消費します。したがって、固定8.6Vでは、バッテリーの消費電流は少なくなり、バッテリーが充電されるにつれてこの電流は減少します。したがって、電流が50mA未満などの非常に低い値に達したときに電流を監視する必要があります。バッテリーは完全に充電されていると想定し、リレーを使用してバッテリーを充電器から自動的に切断します。
要約すると、バッテリーの充電手順を次のようにリストできます。
- CCモードに入り、800mAの固定電流でバッテリーを充電します。
- バッテリー電圧を監視し、8.2Vに達したらCVモードに移行します。
- CVモードでは、固定の8.6V調整電圧でバッテリーを充電します。
- 充電電流が減少するのを監視します。
- 電流が50mAに達すると、バッテリーを充電器から自動的に外します。
7.4Vのリチウム電池パックがあるため、800mA、8.2V、8.6Vの値は固定されています。バッテリーパックの要件に応じて、これらの値を簡単に変更できます。また、多くのステージ充電器が存在することに注意してください。このような2段式充電器が最も一般的に使用されています。3ステージ充電器では、ステージはCC、CV、フロートになります。4段または6段の充電器では、内部抵抗、温度などが考慮されます。これで、2ステップ充電器が実際にどのように機能するかを簡単に理解できたので、回路図を見てみましょう。
回路図
このリチウム電池充電器の完全な回路図は以下にあります。回路はEasyEDAを使用して作成され、PCBも同じものを使用して製造されます。
ご覧のとおり、回路は非常に単純です。2つのLM317可変電圧レギュレータICを使用しました。1つは電流を調整し、もう1つは電圧を調整します。最初のリレーはCCモードとCVモードを切り替えるために使用され、2番目のリレーはバッテリーを充電器に接続または切断するために使用されます。回路をセグメントに分割して、その設計を理解しましょう。
LM317電流レギュレータ
LM317 ICは、単一の抵抗を使用して電流レギュレータとして機能できます。そのための回路を以下に示します。
私たちの充電器では、上記のように800mAの電流を調整する必要があります。必要な電流に対する抵抗値の計算式は、データシートに次のように記載されています。
抵抗(オーム)= 1.25 /電流(アンペア)
私たちの場合、電流の値は0.8Aであり、そのために抵抗値として1.56オームの値が得られます。しかし、使用できる最も近い値は、上記の回路図に記載されている1.5オームです。
LM317電圧レギュレータ
リチウム電池充電器のCVモードでは、前述のように電圧を8.6Vに調整する必要があります。この場合も、LM317は2つの抵抗を使用してこれを行うことができます。そのための回路を以下に示します。
LM317レギュレータの出力電圧を計算する式は次のようになります。
この場合、出力電圧(Vout)は8.6Vであり、R1(ここではR2)の値は1000オーム未満である必要があるため、560オームの値を選択しました。これで、R2の値を計算すると、3.3kオームになります。または、出力電圧が8.6Vになる場合は、任意の値の抵抗の組み合わせを使用できます。このオンラインLM317Calculatorを使用すると、作業が簡単になります。
CCモードとCVモードを切り替えるリレー配置
2つの12Vリレーがあり、それぞれがBC547NPNトランジスタを介してArduinoによって駆動されます。両方のリレー配置を以下に示します
第1のリレーは、充電器のCCとCVモードを切り替えるために使用され、このリレーは、「モード」と表示Arduinoのピンによってトリガされます。デフォルトでは、リレーはトリガーされるとCCモードになり、CCモードからCVモードに変わります。
同様に、2番目のリレーは充電器をバッテリーに接続または切断するために使用されます。このリレーは、「充電」というラベルの付いたArduinoピンによってトリガーされます。デフォルトでは、リレーはバッテリーを充電器から切断し、トリガーされると充電器をバッテリーに接続します。これとは別に、2つのダイオードD1とD2は回路を逆電流から保護するために使用され、1K抵抗R4とR5はトランジスタのベースを流れる電流を制限するために使用されます。
リチウム電池電圧の測定
充電プロセスを監視するには、バッテリー電圧を測定する必要があります。前述のように、バッテリー電圧が8.2Vに達したときに、充電器をCCモードからCVモードに切り替えることができます。 Arduinoのようなマイクロコントローラーで電圧を測定するために使用される最も一般的な手法は、分圧回路を使用することです。ここで使用したものを以下に示します。
Arduinoアナログピンが測定できる最大電圧は5Vですが、CVモードではバッテリーが8.6Vに達する可能性があるため、これをより低い電圧に下げる必要があります。これは、分圧回路によって正確に行われます。このオンライン分圧器計算機を使用して、抵抗器の値を計算し、分圧器について詳しく知ることができます。ここでは、出力電圧を元の入力電圧の半分で推定しました。この出力電圧は、「 B_Voltage 」ラベルを介してArduinoアナログピンに送信されます。後でArduinoのプログラミング中に元の値を取得できます。
充電電流の測定
測定するもう1つの重要なパラメータは、充電電流です。 CVモード中、充電電流が50mAを下回ると、バッテリーは充電器から切断され、充電が完了したことを示します。電流を測定する方法はたくさんありますが、最も一般的に使用される方法は、シャント抵抗を使用することです。そのための回路を以下に示します。
その背後にある概念は、単純なオームの法則です。バッテリーに流れる全電流は、シャント抵抗2.2Rを通って流れます。次に、オームの法則(V = IR)により、この抵抗の両端の電圧降下は、抵抗を流れる電流に比例することがわかります。抵抗の値とその両端の電圧はArduinoアナログピンを使用して測定できることがわかっているので、電流の値を簡単に計算できます。抵抗両端の電圧降下の値は、 「B_Current 」というラベルを介してArduinoに送信されます。最大充電電流は800mAになることがわかっているので、式V = IRおよびP = I 2 Rを使用して、抵抗の抵抗値と電力値を計算できます。
ArduinoとLCD
最後に、Arduino側では、LCDをArduinoに接続して、充電プロセスをユーザーに表示し、電圧、電流を測定し、それに応じてリレーをトリガーすることで充電を制御する必要があります。
Arduino Nanoにはオンボード電圧レギュレーターがあるため、供給電圧はVinに供給され、調整された5VはArduinoおよび16x2LCDディスプレイの実行に使用されます。電圧と電流は、それぞれ「B_Voltage」と「B_Current」のラベルを使用してアナログピンA0とA1で測定できます。リレーは、「モード」と「充電」のラベルで接続されているGPIOピンD8とD9を切り替えることでトリガーできます。回路図の準備ができたら、PCBの製造に進むことができます。
EasyEDAを使用したPCBの設計と製造
このリチウムバッテリー充電器回路を設計するために、 EasyEDAと呼ばれるオンラインEDAツールを選択しました。私は以前にEasyEDAを何度も使用しましたが、フットプリントのコレクションが豊富でオープンソースであるため、非常に便利であることがわかりました。PCBを設計した後、低コストのPCB製造サービスでPCBサンプルを注文できます。また、電子部品の在庫が豊富で、ユーザーがPCBの注文と一緒に必要な部品を注文できる、部品調達サービスも提供しています。
回路とPCBを設計する際に、回路とPCBの設計を公開して、他のユーザーがそれらをコピーまたは編集して作業を活用できるようにすることもできます。また、この回路の回路とPCBのレイアウト全体を公開しました。確認してください。以下のリンク:
easyeda.com/CircuitDigest/7.4V-Lithium-Charger-with-MCU
「レイヤー」ウィンドウからレイヤーを選択することにより、PCBの任意のレイヤー(トップ、ボトム、トップシルク、ボトムシルクなど)を表示でき ます。 EasyEDAの[写真の表示]ボタンを使用して、リチウム電池充電器PCB、製造後の外観を 表示することもできます。
オンラインでのサンプルの計算と注文
このリチウムバッテリー充電器PCBの設計が完了したら、 JLCPCB.comからPCBを注文できます。 JLCPCBからPCBを注文するには、ガーバーファイルが必要です。 PCBのガーバーファイルをダウンロードするには、EasyEDAエディターページの[Generate Fabrication File]ボタンをクリックし、そこからガーバーファイルをダウンロードするか、下の画像に示すように[Order atJLCPCB]をクリックします。これにより、JLCPCB.comにリダイレクトされます。ここで、注文するPCBの数、必要な銅層の数、PCBの厚さ、銅の重量、さらにはPCBの色を選択できます(以下に示すスナップショットのように)。
JLCPCBボタンで注文をクリックすると、JLCPCB Webサイトに移動し、PCBを2ドルという非常に低いレートで注文できます。ビルド時間も非常に短く、DHLで3〜5日で48時間です。基本的に、注文から1週間以内にPCBを入手できます。
PCBを注文した後、PCB の 製造進捗状況 を日付と時刻 で確認 できます。アカウントページに移動し、下の画像に示すように、PCBの下にある[ProductionProgress]リンクをクリックして確認します。
PCBを注文して数日後、下の写真に示すように、PCBサンプルを素敵なパッケージに入れました。
トラックとフットプリントが正しいことを確認した後。PCBの組み立てを進め、Arduino NanoとLCDを配置するためにメスのヘッダーを使用して、他のプロジェクトで必要になったときに後で削除できるようにしました。完全にはんだ付けされたボードは以下のようになります
2ステップのリチウム電池充電用のArduinoのプログラミング
ハードウェアの準備ができたら、ArduinoNanoのコードの記述に進むことができます。このプロジェクトの完全なプログラムはページの下部にあり、Arduinoに直接アップロードできます。それでは、プログラムを小さなスニペットに分割して、コードが実際に何をするのかを理解しましょう。
いつものように、I / Oピンを初期化することからプログラムを開始します。ハードウェアからわかるように、ピンA0とA2はそれぞれ電圧と電流の測定に使用され、ピンD8とD9はモードリレーと充電リレーの制御に使用されます。同じものを定義するコードを以下に示します
const int rs = 2、en = 3、d4 = 4、d5 = 5、d6 = 6、d7 = 7; // LCD接続のピン番号に言及 LiquidCrystallcd(rs、en、d4、d5、d6、d7); int Charge = 9; //バッテリーを回路に接続または切断するためのピン intMode = 8; // CCモードとCVモードを切り替えるピン intVoltage_divider = A0; //バッテリー電圧を測定するには intShunt_resistor = A1; //充電電流を測定するには floatCharge_Voltage; float Charge_current;
セットアップ 機能内で、LCD機能を初期化し、画面に紹介メッセージを表示します。また、リレーピンを出力ピンとして定義します。次に、充電リレーをトリガーしてバッテリーを充電器に接続すると、デフォルトでは充電器はCCモードのままになります。
void setup(){ lcd.begin(16、2); // 16 * 2 LCDを初期化します lcd.print( "7.4V Li +充電器"); //イントロメッセージライン 1lcd.setCursor(0、1); lcd.print( "-CircuitDigest"); //イントロメッセージライン 2lcd.clear(); pinMode(Charge、OUTPUT); pinMode(モード、出力); digitalWrite(Charge、HIGH); //最初にバッテリーを接続して充電を 開始 しますdigitalWrite(Mode、LOW); // CVモードの場合はHIGH、CCモードの場合はLOW、最初はCCモードdelay(1000); }
次に、無限 ループ 関数内で、バッテリー電圧と充電電流を測定することからプログラムを開始します。0.0095と1.78の値にアナログ値を掛けて、0から1024を実際の電圧と電流の値に変換します。マルチメーターとクランプメーターを使用して実際の値を測定し、乗数の値を計算できます。また、使用した抵抗に基づいて乗数の値を理論的に計算しますが、予想したほど正確ではありませんでした。
//最初に電圧と電流を測定します Charge_Voltage = analogRead(Voltage_divider)* 0.0092; //バッテリー電圧を測定します Charge_current = analogRead(Shunt_resistor)* 1.78; //充電電流を測定します
充電電圧が8.2V未満の場合は、CCモードに入り、8.2Vを超える場合は、CVモードに入ります。各モードには独自の while ループが あり ます。 CCモードループ内では、モードピンをLOWに維持してCCモードを維持し、電圧と電流を監視し続けます。電圧が8.2Vのしきい値電圧を超えると、breakステートメントを使用してCCループを中断します。充電電圧の状態は、CCループ内のLCDにも表示されます。
//バッテリー電圧が8.2V未満の場合、CCモードに入ります while(Charge_Voltage <8.2)// CC MODE Loop { digitalWrite(Mode、LOW); // CCモードのまま //電圧と電流を測定 Charge_Voltage = analogRead(Voltage_divider)* 0.0095; //バッテリー電圧を測定します Charge_current = analogRead(Shunt_resistor)* 1.78; //充電電流測定 //印刷detialsを液晶に lcd.print( "V =")。 lcd.print(Charge_Voltage); lcd.setCursor(0、1); lcd.print( "CCモードの場合"); delay(1000); lcd.clear(); // CCモードを終了する必要があるかどうかを確認しますif(Charge_Voltage> = 8.2)//はいの場合{ digitalWrite(Mode、HIGH); // CVモードに変更しますbreak; } }
CVモードでも同じ手法に従うことができます。電圧が8.2Vを超えると、充電器はモードピンをハイにすることでCVモードに入ります。これにより、バッテリー全体に一定の8.6Vが適用され、充電電流はバッテリー要件に基づいて変化することができます。次に、この充電電流が監視され、50mA未満に達したら、バッテリーを充電器から切り離すことで充電プロセスを終了できます。これを行うには、以下のコードに示すように、充電リレーをオフにする必要があります
//バッテリー電圧が8.2Vより大きい場合、CVモードに入ります while(Charge_Voltage> = 8.2)// CV MODE Loop { digitalWrite(Mode、HIGH); // CVモードのまま //電圧と電流を測定 Charge_Voltage = analogRead(Voltage_divider)* 0.0092; //バッテリー電圧を測定します Charge_current = analogRead(Shunt_resistor)* 1.78; //充電電流を測定 します// LCDに 詳細を表示しますlcd.print( "V ="); lcd.print(Charge_Voltage); lcd.print( "I ="); lcd.print(Charge_current); lcd.setCursor(0、1); lcd.print( "CVモードの場合"); delay(1000); lcd.clear(); //充電電流を監視してバッテリーが充電されているかどうかを確認しますif(Charge_current <50)//はいの場合 { digitalWrite(Charge、LOW); //充電 を オフにしますwhile(1)//再起動するまで充電器をオフにします{ lcd.setCursor(0、1); lcd.print( "Charge Complete。"); delay(1000); lcd.clear(); } } } }
7.4V2ステップリチウムバッテリー充電器の動作
ハードウェアの準備ができたら、コードをArduinoボードにアップロードします。次に、バッテリーをボードの充電端子に接続します。それらを正しい極性で接続していることを確認してください。極性を逆にすると、バッテリーとボードに重大な損傷を与える可能性があります。バッテリーを接続した後、12Vアダプターを使用して充電器に電力を供給します。イントロテキストが表示され、充電器はバッテリーのステータスに基づいてCCモードまたはCVモードに進みます。充電時にバッテリーが完全に放電すると、CCモードになり、LCDに次のような表示が表示されます。
バッテリーが充電されると、下のビデオに示すように電圧が上昇します。この電圧が8.2Vに達すると、充電器はCCモードからCVモードになり、以下に示すように電圧と電流の両方が表示されます。
ここからゆっくりとバッテリーの消費電流は充電されるにつれて減少します。電流が50mA以下に達すると、充電器はバッテリーが完全に充電されたと見なし、リレーを使用してバッテリーを充電器から切り離し、次の画面を表示します。その後、バッテリーを充電器から外して、アプリケーションで使用できます。
あなたがプロジェクトを理解し、それを構築することを楽しんだことを願っています。完全な動作は、以下のビデオで見つけることができます。質問がある場合は、フォーラムを使用して他の技術的な質問を下のコメントセクションに投稿してください。繰り返しになりますが、回路は教育目的でのみ使用されます。リチウム電池は過酷な条件下では安定しないため、責任を持って使用してください。