• ベストアンサー

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変換を学ぶ・解説してあるサイトや良い書籍などあったら教えてください。ソフトウェアはもちろんですができたらハードウェアのことについてもいいサイトや書籍ないですか?

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

  • ベストアンサー
  • tx1
  • ベストアンサー率35% (23/64)
回答No.3

PICを解説しているホームページはたくさんありますがH8は少ないですね。 参考URLに「C言語によるH8マイコンプログラミング入門」へのリンクを入れておきます。A/DコンバータをC言語で制御する方法が書かれています。 \2,780ですが、学校の先生にお願いすれば買ってもらえるかもしれませんよ。 cbook24.comは本の目次まで見ることが出来ますから便利です。

参考URL:
http://www.cbook24.com/bm_detail.asp?sku=4774118036
Takachan01
質問者

お礼

バッテリーチェッカーはPICでも作れそうということは知っていましたが、どうしてもロボットのMainCPUで処理がしたくて・・・ ご迷惑おかけしました。しかし、参考URLを見させていただき感激しました。H8に限らずPICにも興味を持ったのでこれからはPICも勉強してみようと思ったところです。 みなさんのおかげで解決できそうです。本当にありがとうございました。 また、質問するときが来るかもしれないですが、その際にはよろしくお願いします。

その他の回答 (2)

  • techa
  • ベストアンサー率60% (41/68)
回答No.2

H8に限らず、「AD変換って?」ということであれば、 後閑さんの「電子工作の実験室」がいろいろ情報があって よいかもしれません。 あそこはPICをメインに扱っておられますが、基本的な 考え方はあまり変わらないので参考になるとおもいます。 H8でのADということに限っていえば、 技術評論社刊 C言語によるH8マイコンプログラミング入門 横山直隆著 ISBN4-7741-1803-6 にはAD変換のほか割り込み駆動などの内蔵デバイスの扱いの初歩が書かれてあり、わかりやすいのではないでしょうか。 ただし、3048/3052をベースとしているので、他のH8でつかうにはアドレスやデバイス名などの若干の変更がいるなどの、注意は必要ですが。 本当はH8のユーザマニュアルで全てが完結するはずなのですが、一度基本的なところからやるのは間違いではありません。 がんばって勉強してみてくださいね。

参考URL:
http://www.picfun.com/
Takachan01
質問者

お礼

早速のご回答ありがとうございます。 サイトがないのなら書籍だということに気づいていながらもお手数かけてすいません。 早速、購入してみたいと思います。 「H8完全マニュアル」は良い書籍だと聞いていますが、実際に書店で見てみると難しそうで・・・そんなこと言ってたら何も始まらないんですけどね・・・ 重ね重ねになりますが、本当にありがとうございました。

  • a-saitoh
  • ベストアンサー率30% (524/1722)
回答No.1

H8にADコンバータが入っているのなら、CでのADを勉強する必要はないでしょう。これはC言語の問題ではありません。 CPU内蔵のADコンバータを起動して、使うだけですから。 H8/3048Fのマニュアルを読めばいいです。 そこに制御レジスタのアドレス、データレジスタのアドレス、制御方法などが書いてあるはずです。 あとは、一般的なC言語によるデバイス操作、の知識があれば良いはずです。

Takachan01
質問者

お礼

そう言われてみるとそうですね。 早速、H8/3048FのマニュアルのPDFを入手して勉強しています。 的確なご回答をありがとうございました。今後もまた質問するかもしれません。その際にはよろしくお願いします。

関連するQ&A

  • 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変換の基本的なところだけでもいいので回答をよろしくお願いします。

  • 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とか書いてある場合にはどういう考え方するのでしょう? 教えてください。

  • 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では引かないのでしょうか?

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

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

  • アナログ-デジタル変換(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
  • A/D変換器の精度について

    カテ違いかもしれませんが、適当なカテがわからずここで質問します。 あるA/D変換器を使用して微小な直流電圧を測定したい。 例えば100μV/digit分解能のA/D変換器を使って、0.1μVの精度を得たいとき、理論的には何回平均すればこの精度が得られるのでしょうか? 何か統計学的(?)な理論式が確立しているのでしょうか? 難解な質問ですが、是非ご教授くださいませ。 よろしくお願いします。

  • A/D変換について

    現在A/D変換の方法としてデュアルスロープ型を考えています ADCの電源に5Vを用いた場合8ビット出力だと分解能は     5[V]/256 = 20[mV] になるのはわかります でここで疑問なんですが、この場合ADCへの入力は分解能を考慮して5Vぐらいまで変化するような入力にしなくてはならないのでしょうか?(数mVではだめなのでしょうか?^^;) わかりにくくてすいません・・・

  • A/D変換のグランド分離について

    A/D変換についての解説本で,アナログ接地とデジタル接地を分離することが重要との記述があります。しかし,それを実現する方法が,A/D変換器のアナロググランド端子とデジタルグランド端子を短絡することだとあります。 何となく矛盾しているようでよく分かりません。 どなたか分かり易くご説明いただけないでしょうか? よろしくお願いいたします。

  • A/D変換プログラムのクラス設計について

    クラス設計について教えていただければと。 A/D変換を行い結果を表示するプログラムを作ろうと思っています。 環境は、.Net(VB or C#)を想定しています。 通常、A/D変換を行うボードは、1枚について8チャンネル、もしくは16チャンネルのデータを一括で収集できます。 入力するアナログ電圧は、ボード単位で決まっています。(例えば0~5V) A/D変換後の8チャンネルそれぞれには、名称やスケール変換するためのいくつかの情報を保持しなければなりません。 このような場合、クラス設計は、どのような形がベターなのでしょうか? チャンネルを構成するメンバ(チャンネル名称、スケール変換係数)だけのクラスを作り、これをA/D変換ボードクラスの中に配列で取り込んでしまう形がよいのか、それともA/D変換ボードクラスの中にチャンネル情報の構造体配列を作って収めてしまうのが良いのか、イマイチ良くわからないのです。 そんなやり方ではなく、違う考え方があれば、それについても教えていただければと思います。

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

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