• ベストアンサー

H8マイコンでA/D変換→バッテリーチェッカーの製作

現在、僕は工業高校2年です。部活動は電気部に所属しており「自立型相撲ロボット」を設計・製作しています。 さて、その相撲ロボットには”SANYO製のNi-cd(ニッカド)バッテリー”(1セルあたり1.2V)を使い、自作で24Vのバッテリーを搭載させています。(8Vを1パックにし3セット) そして、CPUはH8/3048Fを採用しています。そこで、このCPUのA/D変換器を用いてバッテリーチェッカを製作できないかと考えました。できれば、24Vを一気にチェックできるものが理想です。(棒状のレベル表示LEDで大まかな電圧を表示させたい) C言語を使用して、ロボット自体は作動しています。自分自身もC言語の基本的な文法事項は理解していますが、A/D変換については全くの初心者です。 バッテリーチェッカについて調べてみたのですが、PICでも製作できそうなことは分かったのですが詳細までは分かりませんでした。 どなたか、A/D変換の基本的なところだけでもいいので回答をよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

ちょっと外れますが……。 まず、マイコンの内蔵 AD コンバータは、マイコンの動作電圧までしか扱えないのが普通です。このため、一気に 24v を計るためには、電圧を分圧する必要があります。 そしてもうひとつ、電池の電圧は(特に、へたってくると)電流値に大きく依存します。 つまり、消費電流が少ない場合には電圧値は高く、多い場合には電圧値は低くなります。 例えば、バッテリチェッカを単独で作った場合、バッテリチェッカではOKでも(その場合、消費電流はそんなに多くないはずなので)ロボットのモータを動かそうとしたとたんに、動かなくなるという状況は充分考えられます。 こういう訳で実用的なものを作ろうとした場合には、わざと、実際と同じ不可状態にして電圧を測るようにします。 さらに言えば、ニカド電池は、普通の乾電池に比べるとかなり平坦な放電特性を持ちます。 つまり、乾電池の場合、使っている打ちに徐々に電圧が下がってくるのに比べ、ニカド電池の場合は、電圧はなかなか下がらなくて、ある時点で一気に下がります。 このために、ニカド電池の電池チェッカは、ちょっとむつかしいものになります。

参考URL:
http://industrial.panasonic.com/www-data/pdf/ACF4000/ACF4000PJ5.pdf
Takachan01
質問者

お礼

早速のご回答どうもありがとうございます。 僕の、気付かない点の指摘ありがとうございます。ニカド電池はやはり乾電池と同じではないのですね。なにしろ、初心者なもので・・・ これからの、活動に役立てたいと思います。参考URLも部活のみんなに教えてあげたいと思っています。 本当にありがとうございました。

その他の回答 (1)

  • ymmasayan
  • ベストアンサー率30% (2593/8599)
回答No.1

ここに少し情報があるようですが、ハード側は良く分かりません。

参考URL:
http://www.sendai-ct.ac.jp/~ckuma/micom/r8c11/ad_sio.html#3-ad
Takachan01
質問者

お礼

やはり、勉強不足でした。H8マイコンを使い始めて2年目なので、もっと勉強が必要だということが分かりました。 本当にありがとうございました。

関連するQ&A

  • H8のA/D変換について

    先日、バッテリーチェッカの質問をした者です。 < 僕は電気部に所属しており「自立型相撲ロボット」を設計・製作しています。さて、その相撲ロボットには”SANYO製のNi-cd(ニッカド)バッテリー”(1セルあたり1.2V)を使い、自作で24Vのバッテリーを搭載させています。(8Vを1パックにし3セット) そして、CPUはH8/3048Fを採用しています。そこで、このCPUのA/D変換器を用いてバッテリーチェッカを製作できないかと考えました。(棒状のレベル表示LEDで大まかな電圧を表示させたい)C言語を使用して、ロボット自体は作動しています。自分自身もC言語の基本的な文法事項は理解していますが、A/D変換については全くの初心者です。バッテリーチェッカについて調べてみたのですが、PICでも製作できそうなことは分かったのですが詳細までは分かりませんでした。どなたか、A/D変換の基本的なところだけでもいいので回答をよろしくお願いします。 > ニッカドバッテリーのチェッカーは不可能だということは分かりました。 しかしながら、初心者なりにA/D変換に興味を持ったので勉強してみようと、いろいろなサイトを見てみたのですが、どうもピンときません。 それは、C言語での解説サイトが少ないこと(見つからない)と感じているのですが・・・ A/D変換を学ぶ・解説してあるサイトや良い書籍などあったら教えてください。ソフトウェアはもちろんですができたらハードウェアのことについてもいいサイトや書籍ないですか?

  • マイコンとD/A変換

    基本的な質問で申し訳ありません。 私は今SH7145マイコンを使っていて、I2Cで通信を行い、外部でD/A変換をしようとしてます。 そこで質問なんですが、マイコンとD/Aコンバータのクロック数?とか時間?とかの関係ってあるのでしょうか? どちらかが早いとダメだとか、どういった対応をしているのか・・・。 そういった事がよく分かってません・・・。

  • マイコンのA/D変換器で5v以上の電圧を読みたい

    車載バッテリ(12[v])や安定化電源(3[v]~15[v])の電圧をマイコンのA/D変換で読みたいのですが、並のA/D変換器はすべて5vが上限ですよね?... 抵抗による分圧法だと、電源電圧が変動すると全くもって使い物になりません。 ・比較的大きく変動する電源電圧を読む方法はありませんでしょうか? ツェナーダイオードを使えば読めるのではないだろうか?と自分では思っているのですが、 ・ツェナー+抵抗の組み合わせで抵抗側の電圧をA/Dかけるのは無茶な行為なのでしょうか? ・また、A/D変換器を破損しないような保護回路等はありませんでしょうか? ...過去にPICのA/D12vを誤って印加してしまいましたが、後に5vを与え直したら何事もなかったかのように動作したという妙な経験があります。 よろしくお願い致します。

  • H8マイコンのD/A変換について

    H8マイコンのD/A変換を使ってみようと思い、出力させるところまではできたのですが、最大出力にしたところ、無負荷時はAVrefが出るのですが、負荷に接続するとAVrefの半分の出力しか出ません。 負荷はアンプの入力(Mオーム)や抵抗(3kオーム)で試したのですが、結果は全く同じでした。 マイコンは、秋月のH8マイコンボードをそのまま使用していますので、ボード内の5V電源がAVrefに接続されています。 出力が半分になったときでも、AVrefは5Vを保っていました。 測定は、H8の84ピン(DA0)とVss間で、テスターとオシロを使い行いました。 なぜ出力が半分になってしまうのでしょうか。 以上、よろしくお願いいたします。

  • A/D変換、D/A変換の分解能について

    A/D変換、D/A変換の分解能についてお伺いしたいことがあります。 例えば、あるA/D変換器の分解能が8bitで、出力が±10Vである場合には、 入力のアナログ信号が、20V/2^8 = 0.078125 V 変化すると出力が1段階反応することになる、 つまり分解能が0.078125Vってことですよね?違ってたらすいません。 私がわからないのは、D/A変換器の分解能についてなんです。 D/A変換器の分解能ってのはどういう考え方なのですか? D/Aですから、元のデジタル信号をアナログに変換するわけで、 その分解能が8bitとか書いてある場合にはどういう考え方するのでしょう? 教えてください。

  • 3.3vマイコンのA/Dで5v変換

    3.3v動作のマイコンのA/Dで0~5vをサンプリングしたいのですが 乾電池駆動を前提とするとどうしたらよいでしょうか。 5vでマイコン駆動も可能ですが別なデジタル系部品が3.3v駆動しかないこともあり そちらをレベル変換で接続するよりもアナログ側での変換が適当かと思い3.3v駆動を前提としています。

  • マイコンPIC16F84Aについて質問です

    PIC16F84Aを使用して回路製作したいのですが詳しい方がいましたら教えていただけないでしょうか? 内容は、入力に近接センサー5v~24vを使用してセンサーがオンしたらLEDが点灯する回路です。 c言語はわからないので、アセンブル言語で教えていただけないでしょうか? 宜しくお願いします。

  • A/D変換器についての質問

    こんにちは。 大学での授業で習ったA/D変換器の問題について質問です。 問1.入力電圧範囲が-5V~5Vまでの12ビットのA/D変換器で分解能は10/2^12=2.44mV 変換結果が10進数で256のときの入力電圧を逆算して求めよ。 解答 10進数で0から2^12=4096までの数字が-5Vから5Vまでの10V の範囲に対応する電圧は 10×256/4096-5=-4.375V・・・(1) 実際の入力電圧は-4.375V±0.00122Vの範囲 という答えなんですが(1)の部分の計算がどうしてそうなるのかわかりません。また±0.00122というのはどこから出てきたのでしょうか? 教えてください。 問2.入力電圧の範囲が0Vから4Vまである10ビットの逐次比較型A/D変換器について分解能は0.5Vである。 変換結果が2進数で0010111001であるとき、入力電圧の値を求めよ。 解答 与えられた2進数を10進数に直すと、185 4×185/1024=0.7226V・・・(2) となっていますが、問1の(1)の部分では‐5しているのに、なぜ問2では引かないのでしょうか?

  • h8マイコンで AD変換ができなくて困っています

    マイコンでAD変換をしようと思っています>< #include<3048.h> void ioinit(); void adinit(); int i; int ADDRA; main() { ioinit(); adinit(); while(1){ AD.ADCSR.BIT.ADST = 1; // A/D変換スタート while(AD.ADCSR.BIT.ADF==1); // A/D変換終了まで待つ int i = ADDRA; // レジスタに格納された値をiとする if (i>=0xA5){ // 電圧が6.5vより高くなった場合 P5.DR.BYTE = 0x01; } else if (i<=0x19){ // 電圧が1vより小さくなった場合 P5.DR.BYTE = 0x02; } else if (0x19<=i<=0xA5){ // それ以外の電圧だった場合 P5.DR.BYTE = 0x03; } AD.ADCSR.BIT.ADF=0; //フラグクリア } } // I/OポートDDR設定 void ioinit() { P5.DDR=0xff; } // A/D変換設定 void adinit() { AD.ADCSR.BYTE = 0x33; } このプログラムでAD変換がまったくできません><電圧を変えていくことでP5につながっているLEDで変換結果を見たいと思っています。ADDRAのプログラムあたりがおかしいと思っています;;ちなみにポート7に電圧計とつなげています。その電圧値を変えていくことで結果を見ようとしています。0xA5は6.5Vのときの反応だから回路も分圧させたものにして10Vまでの対応にしました><どこがおかしいのか教えていただけるとてもうれしいです><助けてください;;

  • アナログ-デジタル変換(A/D変換)ボード

    現在、フォトダイオードからの漏れ電流を利用した計測装置の開発を計画しています。その計測装置の開発に際しまして、差動増幅器からのアナログ信号をデジタル変換するボード(A/D変換ボード)が必要となります。Windows用のボードはたくさん見つけることができましたが(例えば http://www.interface.co.jp/catalog/prdc.asp?name=PCI-3171A )、mac用のA/D変換ボードを見つけることができておりません。 私が現在使っている開発環境はMac Pro (osX 10.5.2)、開発言語はMATLAB2008aなのですが、もしこの環境で用いることのできますA/D変換ボードがございましたら、教えていただけますでしょうか(MATLABは必須ではありません。C言語などでも大丈夫です)。ボードでなくても、USB接続形式の物でもかまいません。 もしご存知でしたら教えていただけましたら嬉しいです。よろしくお願い致します。

    • ベストアンサー
    • Mac

専門家に質問してみよう