楽々PIC

水田除草と言うブログを書いていますが、PIC関連の記事が意外に人気で驚いています。 PICを使った電子工作に興味を持つ方が多いことを知って、一緒にPICを学ぶブログを作りたいと思いました。 「楽々PIC」は教材と言うよりも少し実用性?のある楽しい道具を作りながら学ぶブログを目指します。

ad変換

RRP1320-1-04 温度誤差

RRP1320-1-04-2 を書き込んで PICkit3 無しの単独で動作確認していたところ、PICkit3 から電源供給していた時と比べて表示温度が5℃程も低くなることに気付きました。 LCD のバックライト用電流が大きいためか PICkit3 の供給電圧が低い(4.75V程度)と認識していましたが、25℃の5%なら1℃程度と漠然と考えていましたから、5℃も違うと原因を確かめる必要があります。

DSC00185

温度センサー LM60 の誤差は ±2℃@25℃ ですが、同じ(一つの)センサーで比較していますから無視します。 RRP1320-1-04 のA/D変換基準電圧(Vref)はPICの電源電圧を使っています。 電源電圧(5V)の変化に連れて入力電圧に対するA/D変換結果が変化します。 電源電圧を±5%振った時の電圧誤差と、温度換算結果は下図のようになると思います。 (厳密には間違った図ですが誤差範囲は同等です。)
温度換算の方法は「温度センサー4」で紹介しています。


vref

±5℃@25℃もの誤差が生じます。 これに LM60 の誤差が加わりますから、現状では温度表示値はあてに出来ません。 電源との組み合わせを固定し、誤差を確認して使うか電源電圧または基準電圧(Vref)を調整可能に作ります。 基準電圧端子は LCD に使っていますから、調整可能にする為には PICkit3 が使っている端子に LCD 出力を移す必要があります。


楽々PIC」は楽しい道具を作りながら学ぶブログを目指します。



温度センサー3

 「温度センサー2」の続きです。 50msec 間隔で発生する TIMER0 割り込みの都度行う、A/Dコンバーターのサンプリングについて説明します。 <PICデバイス=18F1320> 温度センサーはNational Semiconductor 製 LM60 で、AN4に接続しています。

下図は、TIMER0 割り込み処理のアセンブラ・ソース(intlow.asm の一部)です。
69行目の CALL scanss で温度センサーをサンプリングしています。 71行目 BRA intlz の先ではレジスタ復旧して割り込み処理を抜けます。

intlow_TIMER0

入力走査のサブルーチン scanss を下図( scan.asm の一部)に示します。 先に発生した TIMER0 割り込みでA/D変換開始した変換結果を読み出して、tmpsh , tmpsl に転送し、次回サンプリングに備えて AN4 のA/D変換開始を指示して終了です。
A/D変換に要する時間は、クロック周波数と「温度センサー2」で紹介した ADCON2 の設定で決まり、Fosc=8MHzでは 38usec です。 50msec後には確実に変換が終了しているはずなので変換終了のチェックを省略しています。

scan_scanss

上図13行目の設定は、下図に示すデータシートに従って、AVDD-AVSS をリファレンス電圧として、AN4 チャンネルを変換開始しています。

18F1320_ADCON0



温度センサー関連記事のインデックスはこちら → 温度センサー 


楽々PIC」は楽しい道具を作りながら学ぶブログを目指します。




温度センサー

だいぶ役者(周辺部品とプログラム)が揃ってきましたが、温度センサーにも挑戦です。 温度センサーは National Semiconductor 製 LM60 で、-40~125℃を測定可能、±2℃の精度です。 A/D変換値を元にテーブル参照で文字列に変換して、LCDの3行目に温度を表示するプログラムです。

DSC00078

50msec 間隔で発生させた TIMER0 割り込みでサンプリングしています。

いつもお世話になっている参考書の記述と PIC18F1320 データシートに食い違いが見られた為、データシートの一部を紹介しながら数回に分けて説明する予定です。


以下は温度センサー関連記事のインデックスにします。

温度センサー2 
 A/Dコンバーターの設定を行います。 動作がおかしいと思った時はデータシートを確認することも大切ですね。

温度センサー3 
 50msec 間隔で発生する TIMER0 割り込みの都度行う、A/Dコンバーターのサンプリングについて説明します。

温度センサー4 
 A/Dコンバーターからのサンプリング結果を温度(℃)に変換するデータテーブルを作ります。

温度センサー5 テーブル参照 
 A/D変換結果を元にデータテーブルを参照してLCDに温度を表示します。 一連の記事で紹介したソース・ファイル(プロジェクト)をダウンロード出来ます。

RRP1320-1-04 概要 
 RRP1320-1-03 に温度制御機能を追加しました。 パン作りのイースト発酵などに応用出来そうです。

RRP1320-1-04 温度誤差 
 A/D変換基準電圧(Vref)にPICの電源電圧を使っています。 電源電圧(5V)の変化に連れて入力電圧に対するA/D変換結果が変化します。

ディジタル温度センサー 
 A/D変換の基準電圧による測定誤差が大きい為、ディジタル温度センサーを試してみました。 センサーは Maxim の1wireデジタル温度センサー DS18B20+


楽々PIC」は楽しい道具を作りながら学ぶブログを目指します。






ダウンロードコーナー
記事検索
アンケートに御協力下さい


アーカイブ
楽々PIC 宛てBlogMail


--- ご了承下さい ---

注意して記事を書いていますが、記事及びリンク先の情報による不利益について、一切責任を負い(負え)ません。
QRコード
QRコード
アクセスカウンター

    Atsuhiro Imai

    バナーを作成


    プロフィール

    jyosou_robot

    • ライブドアブログ