データ-ロガー        vega   2003.04.01 
                                          2003.04.21
                                          2003.10.24 

一定時間間隔でAD変換し、内蔵EEPROMにデータを格納します。
電圧ならそのまま、温度センサを使用すれば温度変化が測定できます。
測定にパソコンは不要です。

リアルタイムで、パソコン(Excel)に記録するならこれでなく、chanさんのが参考になると思います。

格納データ数 : 246個(10ビット)、492個(8ビット)
格納間隔    : 1秒〜32767秒

使用ポート
    PA0 : AD変換入力
    PB0 : LED(記録モニター用)
    PB1 : 測定開始SW
    PD0 : RXD    (9600BPI)
    PD1 : TXD    (9600BPI)

AT90S8535書きこみ用ファイル(Chanさんのライター使用)
   dtlog.lzh  Ver 0.1  

最初パソコンを使用して条件を設定します。条件は、EEPROMに保存されるので、電源を切っても
保存されます。
記録の開始は、パソコンからと、基板のSWを使用する方法があります。
記録が始まれば、パソコンは不要です。
データは、内蔵のEEPROMに格納されるので電源を切ってもデータは消えずに残ります。
(EEPROMは10万回書き換え可能)
測定の終了後、Tコマンドで表示時後パソコン(ターミナルソフト)に取りこみます。(カット&ペースト)
後は、Excelなどに取りこんで使用(グラフ作成など)できます。

記録中は、PB0に付けたLEDが点滅します。
データロック(後述)中や、EEPROMがデータで満杯になった場合は、点滅が止まります。(点灯したまま)

SWを1秒以上押しても測定開始可能です。この方法は測定条件を事前にパソコンで設定しておけば、
測定開始にパソコンは不要です。

(1)オペレーション

 ターミナルソフト(ハイパーターミナル)を使用します。(4Mhz で 9600bpi)
 キーボードからコマンドを入力します。

 下記は実行例です。

 測定開始時
   C60I      測定のインターバル60秒 (CnnnnnI のnnnnn を指定する)
   K       データクリア(測定開始)
   L       データロック(次回の起動時のデータロック)
   S       現在の時間(インターバル、経過時間、データロックの確認)
   T       記録データの表示

 データ格納でEEPROMが満杯になると、格納は停止します。

 測定終了後     (電源は一旦切っても、そのままでも良い)
   T       測定データを表示する。

 次回測定開始時(データロックを解除)
   C60I      インターバル60秒(前回と同じなら不要)
   U        データロック解除
   W        マイコンリセット
   K       データクリア(測定開始)
   L        データロック(次回の起動時のデータロック)

(2)表示

  ・起動と同時に下記が表示されます。
   条件が合えば、記録も始まります。
 
   data logger
   mode : X   表示されない場合は、X,Y,Zいずれか入力が必要
   10bit    データ格納精度
   * 444    記録されない測定値(1秒間隔で表示)
   * 333
   1 555    記録番号と測定値(保存される)
   * 333
   * 233
   * 343
   * 933
   2 765    記録番号と測定値
   * 533
   * 333
   * 333

  ・コマンド入力時の表示例(Tコマンド、Sコマンド)
  
   T
   intv :  60          データ記録間隔
   0  333            データ番号 と 測定値
   1 1000
   2 243 
   3 454
   DATA LOCK  NOW !!     現在データがロックされている場合
                  これが出ている場合はデータは記録されません。
   DATA LOCK  NEXT !!     次回の起動でデータがロックされる場合。
                  これが出ない場合は、次回の起動(リセット)で
                  データが上書きされます。
   S
   sec : 33          データ記録後の経過時間
   intv :  60          データ記録間隔
   max :  4           記録したデータ数
   DATA LOCK  NOW !!     現在データがロックされている場合
   DATA LOCK  NEXT !!     次回の起動でデータがロックされる場合
   10bit    データ格納精度

   ・ コマンド一覧

     全て大文字です。

     C   ・・・ 数値入力データクリア
     nnn ・・・ 数値入力(最大32767)
     I    ・・・ 記録インターバル設定 (C60I などと設定)
     K   ・・・  データクリアし測定を開始する。
            データロック状態なら測定は開始されない。
     W   ・・・  マイコンをリセットする
     L   ・・・  データロック(次回の起動でデータロック)
     U   ・・・  データロック解除(リセット後有効)
     T   ・・・  データ一覧表示
     S   ・・・  インターバル時間その他状態表示
     B   ・・・  データ精度を8ビットにする。
     F   ・・・  データ精度を10ビットにする。
     D   ・・・  EEPROM のダンプ
     X   ・・・  クリアモードX 
            起動時にデータクリアなし
            データの記録は追加される
     Y   ・・・  クリアモードY 
            起動時に記録データ数のみクリア
            データクリアなし
     Z   ・・・  クリアモードZ 
            起動時に記録データ数のクリア
            データもクリア

   ・ PB01は、内部でプルアップされています。
     SWを1秒以上押し続けると、測定がスタートできます。
     現在がデータがロックされている状態でも、測定スタート可能です。
     SWが受け付けられた場合は、3秒間速いLEDの点滅あります。
     格納されているデータを全てクリアし、測定が始まります。

   ・次回起動でロックがかかっていない場合でもEEPROMが一杯になった場合は、
    データのロックがかかり、次回の起動時にデータが保護されます。  

   ・Kコマンドでデータをクリアする場合でデータがロックされていない場合は、
    サンプリング時間の値によらず、最初の記録は直ちに行われます。   

        回路図はこちら。

        EEPROMの初期状態(書きこんだ状態)
          ・サップリング周期  ・・ 5秒
          ・データ精度     ・・ 10ビット
          ・クリアモード     ・・  X
          ・データロック     ・・  なし


温度センサー

LM35(温度センサー)と上記を使用して、温度を計る計画。

LM35は温度に比例した電圧を出力します。

そのままでは、20℃で200mVと電圧が低いので下記で電圧をUPします。
 
ゲイン=(R1+R2)/R1 でゲインを調整できます。(R1は200Ω程度)

ただしLM35は、GNDとVCCの間が4V以上が規格なので、無理して5Vの使用では、

、A点とVCC間の電圧が規格外になりあまりゲインを多く取れません。(温度により変化しますが)

測定温度の上限と相談してゲインを決める必要があります。

測定値が2.0V以下なら何とか使えそう。でも規格外だから、誤差が大きいかもしれません。

高い電圧があればそれを使った方が賢いと思います。

LM35は秋月で売ってます。



上記の回路で
R1=220 Ω  R2=658 Ω C=0.1μF
としたとき下記のようにおおよそ直線になりました。
規格外の電源電圧でも、精度をうるさく言わなければ、常温で使えそうです
係数を乗ずるだけで、0.5℃程度の精度になりそうです。

R2=900Ωでは、グラフが部分的に不連続になり 使えませんでした。

(横軸:温度(℃)  縦軸:AD変換値(最大1023))

 

 

 

 

 

 

   
   

 

 

  温度の測定例です(横軸は分、縦軸は℃)

   

 

 

 

 

 

 

                            TOP