気候センシングに挑戦1

5.高度計プログラム

プログラムリスト

10 ‘IchioJamコウドケイ by NEXTDAY
20 OUT5,1:D=1:GOSUB @SET:’A=キジュンキアツ
30 INPUT “キアツ”,P:IFP<8000CONT
40 INPUT “オンド”,T
45 C=(A-P)*8
50 BEEP5
60 CLS
70 ?”>”;P/10;”.”;DEC$(P,1);”hPa”;CHR$((C<0&&C>-10)*#2D);C/10;”.”;DEC$(C,1);”m”
80 ?”A”;A/10;”.”;DEC$(A,1);”hPa #”;D
90 L=2:[0]=P:[1]=C:LRUN1
100 @continu
110 D=D+1
120 IF D <= (12*2) GOTO30
130 OUT5,0
140 BEEP5,60
150 LC0,1
160 ?”ソクテイ シュウリョウ”
170 GSB @LCD
180 LRUN2
190 END

200 @SET
210 CLS
220 ?”READY! ボタンヲ ハナス”
230 GSB @LCD
240 IF BTN()=1 CONT
250 INPUT “キアツ”,P:IFP<8000CONT
260 INPUT “オンド”,T
270 LED1
280 A=P
290 CLS
300 ?”タクトスイッチヲ オシテ セット”
310 ? A/10;”.”;DEC$(A,1);”hPa”
320 GSB @LCD
330 LED0
340 IF BTN()=0 GOTO250
350 BEEP5,60
360 CLS
370 ?”キアツ ソクテイ カイシ”
380 ?”A”;A/10;”.”;DEC$(A,1);”hPa”
390 GSB @LCD
400 N=0:M=0:Z=I2CW(82,#8E6,2,#8E4,2)
410 RETURN

900 @LCD
910 LET[96],640,64,#5639,#C6C,#C080,64
920 Z=I2CW(62,#8C3,5)
930 Z=I2CW(62,#8C0,3,#900,16)
940 Z=I2CW(62,#8C8,3,#920,16)
950 RETURN

SAVE0

プログラム説明
20行目
 通信を開始します(OUT命令)
 カウント数を初期化(変数Dを1回目に)します。値には測定した回数が入ります。
 サブルーチン処理にて基準気圧を(変数Aに)セットします。
30,40行目
 気圧センサーで測定した気圧と温度を、変数Pと変数Tに入れます。
 気圧が8000(800hPa)以下の時は異常値として記録せず、再測定します。
45行目
 基準気圧との測定した気圧差から、高度差を計算をして、変数Cに入れます。0.1hPa=0.8mとして計算します。
70,80行目
  気圧、高度差、基準気圧、カウント数をモニターに表示します(必要に応じて小数点付きで表示する)。
90行目
 1回分の測定である、気圧値(変数P)と高度差(変数C)をEEPROMに記録してLCD表示をします(LRUN1呼び出し)
100行目
 EEPROM記録プログラムからの戻り行です。この行番番号はずらさないようにしてください。
110行目
 カウント数を+1します。
120行目
 カウント数が指定回数になるまで測定を繰り返します(GOTO30)。
 このプログラムでは、5秒毎24回の測定で、2分間の記録をします。
130行目
 通信を終了(OUT命令)します。
150-170行目
 LCDに測定終了を表示をします。
180行目
 EEPROMから、記録した気圧値と高度差の全ての値を表示します(LRUN2呼び出し)。


200行目~ @SET
 基準気圧を変数Aにセットするサブルーチン
 タクトスイッチが押されるまで、現在位置の気圧をLCDに表示します。
 タクトスイッチが押されたら、その時の気圧を基準気圧にします。


900行目~ @LCD
 LCD表示サブルーチン
 VIDEO1のとき、モニター画面x0,y0-x15,y1の範囲の文字をLCDへ転送して表示します。

◆プログラム番号0番に保存してください(SAVE0)

※LRUN1とLRUN2(SAVE1とSAVE2)のプログラムは、こちらを入力してください


この教材は「Creative Commons — CC BY-SA 4.0」の下に提供されています。