掲示板


[記事リスト] [返信する] [新着記事] [過去ログ] [ワード検索] [留意事項] [管理用]

記事No 709
タイトル Re: 「LCD&タッチ・・・」
投稿日 : 2016/10/04(Tue) 22:43:44
投稿者 Gokan   <gokan@picfun.com>
参照先
10000と比較している時点ではまだA/D変換後のバイナリのままです。
したがって10倍の10240まで計測可能なのですが10000でゲインを
切り替えるようにしています。
少数を扱わなくても良いように平均をとるため10で割ることはしていません。最後にスケール変換の際、200ではなく20を掛けるようにしています。
80行目の30mAというのはコメント間違いです。バイナリの測定値が30以下という意味です。

電圧は電流の間違いですね。




> はじめて投稿いたします。
> オシロスコープを自作したくて色々情報を探した結果、
> 「LCD&タッチセンサ活用の素」を購入させていただきました。
>
> PICは未体験でしたので、先ずは第2章の「2-6 使用例:簡易電源」を
> 作ろうと思っていますが、プログラムのA/D変換の箇所で不明点があり、
> 質問投稿させていただく次第です。電流測定の箇所です。
>
> 71 /*** 電流測定(10回の平均) *****/
> 72 Current = 0; // 初期値クリア
> 73 for(i=0; i<10; i++){ // 10回の平均
> 74 ADCON0 = 0x91; // AN4 200倍ゲイン選択
> 75 __delay_us(50); // 50usec待ち
> 76 GODONE = 1;
> 77 while(GODONE);
> 78 Current += (ADRESH*256+ADRESL); // 電流読み込み
> 79 }
> 80 if(Current < 30)
> 81 Current = 0;
> 82 else{
> 83 if(Current < 10000){ // 小電流か?
> 84 RB6 = 1; // 目印LED Off
> 85 // スケール調整と変換、オフセット調整
> 86 Current = (Current*20)/1024 + 15;
> 87 }
>
> 本のp.67の説明によると、80行目と83行目はそれぞれ、30mA、200mAとの
> 比較となっています。しかしソースコードでは、83行目は10000と比較
> しています。
>
> 80行目から83行目までで、Currentは変更されていないはずですから、
> なぜ200ではなく、10000との比較なのでしょうか。
>
> また「10回の平均」とコメントにありますが、10回の加算後に、
> Current /= 10; がありません。10倍の値のまま比較するということで
> あれば、10で割ることは必須ではないと思いますが、その場合80行目は
> 300と比較すべきかと思います。
>
> そもそも80行目に到達した時点で、Currentにはどのような値が入って
> いるのでしょう。
>
> 78行目の右辺の値であるA/D変換値と電流値との関係は、次のような
> 考え方でよろしいでしょうか?
>
> 基準電圧はVDD=5Vですよね。測定電圧は200倍されているので、
> (5/200)/1024[V]が電圧分解能ですよね。
> すると10回加算したA/D変換値と電流値との関係は、
> 以下で正しいでしょうか?
>
> (10回加算AD変換値)/10[回]×(5/200)/1024[V]/0.1[Ω]×1000
> =(5/200)×(10回加算AD変換値)[mA]
>
> この値を30[mA]と比較すべきではないのでしょうか?
>
> さらについでで恐縮ですが、86行目に対するp.67での説明が
> 「電圧値にスケール変換」となっていますが、正しくは
> 「電流値にスケール変換」ではないでしょうか。
>
> お忙しいかとは存じますが、以上の疑問につきまして
> ご教示いただければ幸いでございます。

- 関連一覧ツリー (▼ をクリックするとツリーを一括表示します)


- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)
おなまえ
Eメール
タイトル
メッセージ
参照先
画像UP
暗証キー (英数字で8文字以内)
投稿キー (右画像の数字を入力) 投稿キー


- 投稿記事修正/削除フォーム -
処理 No 暗証キー

- WebForum -