• ベストアンサー

H8マイコン(3052)でCdS

H8マイコン初心者です。 よく参考書に乗っているようなA/D変換で電圧を計って、 それをLCDに表示するプログラムを組みました。 手元に可変抵抗がないためCdSセルを使って 暗くなったらLCDに表示された電圧が変化する というプログラムを作ったんですがうまくいきません。 どなたかCdSをH8マイコンで使用した参考プログラム(C/C++) みたいなものが乗っているサイトを知りませんか? もしくは書籍でもかまいません。 ご返答宜しくお願いします。

  • anubs
  • お礼率63% (118/187)

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

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

入力電圧の確認は,アナログ入力ポートとGNDの間をテスタで測ってみるのが確実です。 入力電圧が正しいとすると,考えられそうな原因は, 1.A/D変換が行われていない or とってきた値が不正 2.途中の計算が間違っている 3.表示が正しくない ぐらいでしょうか。 > LCDに電圧を表示 『4.995V』から変化なし なんとなく,電源投入時に1度だけA/D変換→表示が走っているような気もします。 ちゃんと周期的に処理されてますか? 途中でメインループから抜けて,プログラムが終了したりしてませんか?

anubs
質問者

お礼

ご返答が遅くなり申し訳ございません。 一度H8のマニュアルのA/D変換機の欄を読み直し 確認したところご指摘通り、メインループに次のA/D変換 を行う際に必要な処理が施されていませんでした。 かなり初歩的なミスでした・・・・ ご返答本当にありがとうございました。

その他の回答 (1)

noname#137556
noname#137556
回答No.1

「CdSをH8マイコンで使用した参考プログラム」は,なかなか見つからないと思います。 H8 で AD 変換器を使うサンプルなら色々見つかります。 問題を分割しましょう。 AD変換器の入力電圧は期待通り,明るさによって変化しているか? ここがダメなら,プログラムではどうにもなりません。 また,決め打ちの数値なら LCD に表示できているのか?

anubs
質問者

補足

早速のご返答ありがとうございます。 >>AD変換器の入力電圧は期待通り,明るさによって変化しているか? >>また,決め打ちの数値なら LCD に表示できているのか? CdSが取り付けてあるマイコンの電源を入れ、希望通りには 動いていないプログラム(LCDに電圧を表示 『4.995V』から変化なし) を走らせてながら確認用のLEDをCdSの足とマイコンのGND に取り付けてCdSの上に手をかざすとLEDの光が弱くなります。 配線に関してもテスター等で確認し問題なしです。 ・・・・正直、これで返答になっているのか、または 検討違いの事を言っているかもわかりません・・・・ いちからA/D変換について勉強しなおそうかと思います・・・。

関連するQ&A

  • H8/3048マイコンAD/DA変換について

    初めて投稿させていただきます。  AKI-H8/3048キットでAD/DA変換をC言語で行いたいの ですがうまくいきません。  C言語ではどうやって記述すればいいのでしょうか? ご助言お待ちしています。  参考までに作成したAD/DA変換ソースコードを記します。 ちなみに入力端子AN0は可変抵抗器、出力端子DA1はLCDに 接続しています。 (可変抵抗器からの電圧増減に従ってLCDの表示を変化 させたい) #include <3048f.h> #include <stdio.h> main(){ int a; while(1){ AD.CSR.BYTE = 0x28; while(AD.CSR.BIT.ADF == 0){} a = AD.DRA; AD.CSR.BIT.ADF = 0; DA.DR1 = (unsigned char)((a >> 8)&0x00ff); } }

  • H8マイコンに関して

    H8マイコンは、1つのプログラムで複数の周辺機器を同時に使うことができますか? 例えば、LCDとSCI(シリアル通信)を同時に動かしたい。または、AD変換とLCD・SCIを同時に走らす。 とかです。 変数の設定次第で、どうにかなると噂で聞きました。(例えば、グローバル変数を設定するとか?) ご回答をお願いします。

  • CDSセルについて教えて下さい。

    CDSセルは光を受けると抵抗値が下がって暗くなると抵抗値があがりますけど 逆の働きをするような物ってあるんですか? 暗くなると抵抗値ゼロで部屋の明かり程度の照明で抵抗値50%くらいにしたいんですけど どんな部品を使えばいいでしょうか? と言うかそもそも照明のレベルとかってどうやって計ればいいんでしょうか? 一般家庭の照明って平均値みたいな物があるんですか? 「これが一般的なCDSセル」とかってありますか? ちなみに作りたい物は 部屋の照明ONでLEDの明るさMAX、照明OFFでLEDの明るさ50%の物を一つと 全く逆の物を一つ作りたいです。 前者はCDSセルで作れるとして後者は何を使えばいいでしょうか? 電源電圧5VでLED電圧2.5V電流0.02A、抵抗を125Ω 上記に当てはめるとどんなパーツを使えばいいでしょうか?

  • H8マイコン開発

    H8/3069Fマイコンボードを買ってきて勉強をしようと思うのですが、 どこから手を付けていいのかわからないです・・・・。 C言語/アセンブラでプログラムを書いて何か実行させてみたいのですが、何かいい参考になるのはないでしょうか?

  • デジタル回路 PICでAD変換、CdSセルを分圧する理由

    PICにCdSセルを使って明暗によるAD変換を やろうと思っているのですが 最初のイメージとしてはPICのポートに 直接CdSセルを接続するんだと思ってたんですが ネットで検索したらCdSセルを直接つなぐのではなく 下図のように接続されていました。 PICのポート-----------------┐ VCC(A)------抵抗(R1)-----(B)┴---CdSセル(R2)------(C)GND で、調べたら「分圧」ということを行っておりCdSセルの 抵抗値を変化させることでA-B間の電圧を変化させ それをPICで読み取っているのだとわかりました。 ただ、どうしてこんなことをしているのかがわかりません。 CdSセルの抵抗値が変化すればPICのポートに入力される電圧も変化しますよね? なぜ直接CdSセルを接続せずわざわざ分圧するんですか?

  • H8マイコンのプログラミングについて

    C言語でプログラムを組もうと思います。 今手元にはH8/3052Fがあります。 ネットなどには、H8/3048Fのプログラムがたくさんあるので参考にしてプログラムを組もうと思うのですが、どのようなことに気をつけたらいいのでしょうか? 例えば #include<3048f.h> と書かれていたら #include<3052f.h> に直せばいいのでしょうか?

  • H8マイコンについて教えてください。

    僕はPICをやっていますが最近H8マイコンの高機能さに魅力を感じ はじめてみたいと思うようになりました。 そこで以下のことについて教えてほしいです。 質問1 PICは石単体で買ってきてそれにプログラムを書き込み 水晶やらその他の部品を取り付けて作っていくのでH8も 石単体で買ってくるものだと思ってました。 でも調べてみると秋月のマイコンボードみたいに 基盤に水晶やら抵抗やら色々半田付けされてて それにプログラムを書き込んで作るようなのが沢山ありました。 H8は石単体で買ってくる物ではないんですか? (もしくは足のピッチを2.54に変換したもの) 画像検索で調べるとDIPタイプのH8もあるようですが・・・ 質問2 H8へのプログラムの書き込みですがPICでは "PIC ライター"とかで検索するとライターの作り方とか 自作ライターのページが沢山出てきますがH8に関しては ぜんぜんヒットしません。 僕のイメージとしてはゼロプレッシャーのついたライターを作って それにH8をセットしプログラムを書き込むものだとばかり 思ってたんですがH8はどうやってプログラムを書き込むんですか? 質問3 部品の配置やブレップボードで自由度が高いので できれば表面実装ではなくDIPやPLCCみたいな石で ライターに刺して作れるといいんですが・・・ 表面実装以外はあまり一般的ではないんでしょうか? 質問4 使用する言語についてですがPICではアセンブラでは アセンブラを使っています。 でもH8はC言語も結構やってる人が多いみたいでC言語自体も 興味があるのでそっちでやろうかと思っています。 でも部分的にアセンブラ(インラインアセンブラ?) が必要なってくる部分があると思うんですが やっぱり全部アセンブラのほうがやりやすいんでしょうか? 以上、よろしくお願いします。

  • 大きな電気信号をマイコンに取り込むには?

    ある電気信号をマイコンに取り込んで、LCDに表示したいと思います。その信号の電圧を計測したら、20Vありました。マイコンが取り込める電圧は5V程度だと思います。取り込むには、信号を5Vに落とす必要があります。 どういうやり方があるのでしょうか? 何がしたいのかというと、ソーラーパネルの出力電圧(MAX:22V)をスキャンして、LCDに表示させたい。ということです。

  • sourceforge.jpでH8マイコンでLCDを表示やっているようなプロジェクトはない?

    今、H8マイコンのためのプログラミングを勉強したいと思っているのですが、sourceforge.jpなどで、H8マイコンへのプログラムなどを扱っているプロジェクトなどはありませんでしょうか。 また、LCDをコントロールするためのプログラムなども勉強してみたいのですが、そのようなプロジェクトご存じではないでしょうか?

  • H8/3052マイコンについて

    H8/3052マイコンを使って時間差を読み取ることはできないでしょうか? たとえば、どこかのポートに時間t=0secのとき外部から入力をして、t=1msecでまた外部から入力をしΔt=1msecを使用してマイコンに掛け算なり割り算なり計算をさせるようなことは可能でしょうか? マイコンにはC言語を使用しています。サンプルプログラムなども載せてもらうとありがたいです! よろしくお願いします!