- 締切済み
Arduinoでリポのセル電圧を測定する方法
飛行中のリポの各セル電圧のログをとりたいと思っています。 ArduinoでSDカードにログをとろうと思っているのですがどの様に各セル電圧を所得すればよいのか悩んでいます。 各電圧はバランス端子から所得するのですが1つ目のセルの電圧はとれるのですが2つ目の電圧は1つ目の電圧との合計(4.2V+4.2V)になってしまします。3セル目以降も電圧が合計され続けていきます。 6セル目は最高で25.2Vになります。Arduinoは5Vを超えた入力はできないので2セル目以降を分圧で所得してスケッチで割り戻し、1セル目からの引き算で各セル電圧を求める程度しか思いつきません。精度も落ちそうな気がします。 何かよい方法がありましたら教えて下さい。宜しくお願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- unagi-pie
- ベストアンサー率41% (166/397)
実現に至るには様々な確認事項をクリアする必要があるのでそこを省略したアイデアのみということで。 アナログスイッチを使い、測定するセルの2端子を順次切換え、測定用ADコンバータに与える方法も有り得ます。 メカスイッチで想像すると考え易いと思います。 文章で説明すると、 1. セル1の+端子、-端子をADコンバータの+と-に接続し測定。 2. セル1への接続を切り、セル2の+端子、-端子をADコンバータの+と-に接続し測定。 以下同様にセル6まで実行。 これの切換えを、マイコンからON/OFF制御可能なアナログスイッチで行います。 この方法だとADコンバータに与える電圧はセル電圧そのままなので ・高精度な分圧抵抗は不要 ・アンプも不要 デメリットは ・回路の考え方が複雑 ・-端子自体を切り替えるので電池全体の-とADコンバータ(つまりマイコン全体)の-を直結できない。 ・アナログスイッチは半導体部品であり、扱える電圧は自身の電源電圧範囲内である必要がある。 ・つまり、最大25.2Vを扱うなら、アナログスイッチの電源はそれ以上である必要がある。 このような高い電圧で動作するアナログスイッチは少なく、入手しにくいと思われる(未確認) ・また、アナログスイッチの電源は結局電池から得て、制御信号はマイコンから受ける、という -非共通の信号インターフェースが必要。 ・ソフトウェアバグによる短絡が起これば大電流が流れ焼損する可能性がある。 とはいえ、電圧測定には大電流は必要ないので保護用に電流制限抵抗を入れとけば大丈夫でしょう。
- Classified
- ベストアンサー率39% (28/71)
私は、インターネットなどないころに岡村先生の本(現在は改定版の「定本OPアンプ回路の設計」)やらトランジスタ技術 (月刊誌)などで勉強したくちなので、Webサイトはよくわかりません。 なお、測定対象が電池なので測定用回路をつないでも電圧が変わったりしないでしょう。ですので、Wikipediaのオペアンプの説明(http://ja.wikipedia.org/wiki/%E3%82%AA%E3%83%9A%E3%82%A2%E3%83%B3%E3%83%97)で、「作動増幅回路」 の図で、R1~R4をすべて同じたとえば10KΩとかにしたものを使えばよいかと思います。 さて、抵抗で分圧した場合の誤差ですが... 10bit ということは、十進で有効数値 3桁ということです. 単精度浮動小数点型は、5桁とちょっとの精度がありますから、計算での心配はないでしょう。 いっぽう、抵抗器の精度は公称 5% ので実力は2~3%の精度でしょうか。 なので、10KΩの抵抗2本を組み合わせて 1/2 に分圧する回路を組み立てたとしても、 8.000 Vが、計算どおりきっちり 4.000 Vになることはありません。 ということは、逆に組み立てたあとでわかっている電圧をはかり、その結果から逆算して分圧の実際の値を求めることになります。電圧を変えながら何度も行って平均を取れば、十分な精度になるのではないでしょうか。
お礼
回答有り難うございます。 精度的に問題無いとのご意見を頂きましたのでとりあえず分圧用の抵抗を買ってきました。 それで試してみようと思います。 オペアンプを使う方法も勉強の為に試してみたいと思います。 何せ電気回路を深く理解していませんので試行錯誤の繰り返しです。 教えて頂いた作動増幅回路はオペアンプの入力端子にセルの+ーを接続して動作させると出力端子からセルの電圧が出力されると理解しましたがそれで良いのでしょうか?もうちょっと勉強しないとだめですね。
- Classified
- ベストアンサー率39% (28/71)
二つの電圧の差を正確に取得したい場合に、まず思いつくのは計装アンプの利用です。 もちろん、専用の計装アンプや3個のOpアンプを利用したものでなくて、2個のOpアンプで作ったものでも精度的に十分かもしれません。 が、その前に ... 「精度も落ちそうな気がします。」 は、本当でしょうか。 私は、ArduinoのADコンバータの精度をしりません。 昔は、ADコンバータというと 8 bit (256段階) が普通ですが、いまどきだと 10bit, 12bit は珍しくないかと思います。 フルスケール25V で 12bitだと 3mVステップ。 「飛行中」のモーター等からのノイズとかを加味して.... どうでしょう。 もしかすると、引き算でも実用上十分な精度が得られるのかもしれません。
お礼
回答頂きまして有り難うございます。 このような場合は計装アンプが適切なのですね。勉強になりました。 投稿前に検索でオペアンプを使う事でできるかもしれないというのは解ったのですがオペアンプがどの様なものかも解っていませんので回路の詳しい知識が無いので躊躇しています。 同じような事例があれば応用して何とかなりそうですがオペアンプの説明を読んでもそれをどの様に応用したらよいのか? 私でも理解できるくらい詳しく説明しているサイトを検索しているのですが見つかっておりません。 引き算での精度に不安があるのはArduinoの事ではなく分圧と計算での精度低下を懸念しています。 また分圧だと6セルで10個の抵抗が必要になります。 もっとよい方法があるのならできるだけ部品数を減らして軽くしたい気持ちもあります。 精度を求めたいのは最低でも1/100Vの電圧でArduinoの分解能は10bitで5Vだと約5mVで計測できるので問題は無いと思っています。
お礼
回答ありがとうございます。 アナログスイッチ、早速調べてみました。 部品数も少なくすみそうですね。 最大電圧25.2Vは6セルの合計です。測定したい各セルの最高電圧は4.2Vですので総セルの電圧を降圧して動作電源とすれば12V程度のアナログスイッチでいけそうな気がします。 唯一の問題はデメリットであげられているマイコン電源が測定するバッテリーからとれないことでしょうか。 私のレベルではグランドを切り離す知恵がありません。せめてアナログスイッチの回路とマイコンを切り離しマイコンを別電源とするしか考えつきません。 アナログスイッチの存在を知ることができ相談してよかったと思っています。 有難うございました。