でじたる百葉箱2(温度+紫外線ロガー)

3.プログラム

【3-1 メインプログラム( SAVE0)

1 ‘デジタルヒャクヨウバコ2020 by NEXTDAY
5 CLT:OUT4,-1:L=4:P=1
10 CLS:?”No”;P;” キオン シガイセン”
20 T=(ANA(2)*32-5000)/100
30 U=(ANA(8)*33-10000)/1200
40 ?”     “;T;”゚C “;U;”mW”
50 BEEP100
60 IF T>20 OUT 1: BEEP 40
70 IF T>25 OUT 2: BEEP 20
80 IF T>30 OUT 4: BEEP 10
90 LET [0],T,U,P,TICK()/60
99   LRUN1  :’EEPROMカキコミ&LCDヒョウジ
100  @continu
110 LED1
120 WAIT 60*10
130 LED0
140 P=P+1
150 IF P<=60 GOTO 10
160 END

※別の等価式の例
20 T=(ANA(2)-155)*323/1000
30 U=(ANA(8)-310)/37

【プログラム説明】
・温度と紫外線強度を測定し記録するメインプログラムです。
・プログラムエリア0にSAVE0で保存して使用します。
・10秒間隔で10分間、60回(60プロット)の測定します。
・IchigoJamBASIC 1.4.x以降にて動作します

5行目
 初期設定(経過時間のリセット、ANA8ポートの準備、プロットNO、データ数)
10,40行目
 表示画面の作成(LCDへの表示を兼用)
20行目
 温度の測定。
 アナログポート(2)の値から温度(℃)を計算します。
 結果を変数Tに格納します。
30行目
 紫外線の測定
 アナログポート(8)の値から紫外線強度(mW/cm2)を計算します。
 結果を変数Uに格納します。
50~80行目
 測定した温度によって、指定のLEDを点灯します。
 21~25℃のときは青LEDを点灯。
 26~30℃のときは黄LEDを点灯。
 31℃以上のときは赤LEDを点灯。
 20℃以下は、どのLEDも点灯しない。
 同時にBEEP音も変えています。
90行目
 測定結果をメモリ(EEPROM)へ保存するデータの整理します。
 配列[0]に温度、[1]に紫外線、
 [2]に現在のプロット番号、[3]に経過時間(秒)を代入します。
99,100行目
 プログラムエリア1を実行します。
 ここで、90行目で配列に整理した内容を、実際にEEPROMへ保存し、
 LCDディスプレイへの表示を行います。
 プログラムエリア1の実行後、自動でこのプログラムの100行目に戻ってきますので、
 この100行目を削除しないように注意してください。
110,130行目
 IchigoJam基板上のLEDを、120行目のWAITの前後間だけ点灯します。
 LEDが点灯していれば、プログラムは動作中です。
 もし、エラーなどでプログラムが停止したり、電源が落ちてしまった場合、
 ほとんどの場合、LEDは消えたままの状態になります。
 プログラムが測定を終えて終了しても、LEDは消灯します。
 このようなしくみのことを、コンピュータ用語で「ウォッチドッグ」と言います。
120行目
 測定間隔を空けます。
140行目
 プロット番号(変数P)をカウントアップします。
 次の測定準備です。
150行目
 プロット番号(変数P)の値から、測定終了するかどうかを判断します。
 測定を続けるときは、10行目へジャンプします。
160行目
 プログラムを終了します。

【ポート】
ANA2 温度センサ
ANA8 紫外線センサ(OUT4をモード変更して使用)
OUT1 青LED
OUT2 黄LED
OUT3 赤LED

【変数】
L :1プロットにて記録するデータ個数(かならず1つ以上:このプログラムでは4固定)。
P :記録中のプロット番号
T :温度値の計算用
U :紫外線強度値の計算用
[0]:EEPROMに保存する温度 ℃ (0~70℃)
[1]: EEPROMに保存する 紫外線強度 mW/cm2 (0~19mW)
[2]: EEPROMに保存する プロットNo(1~ )
[3]: EEPROMに保存する 測定時間(経過秒:0~546秒まで(約9分間))