自動給水機をつくる(TRYやってみよう)

5.自動給水プログラムを完成させよう

水量が減ったら給水したり、逆に水量が溢れない様に給水を止めたりして、自動給水プログラムを完成させましょう。
給水モータの始動・停止を追加し、プログラムも終了せず繰り返すよう修正します。

30 LET W,1000-ANA(2)
35 ? W:WAIT 30
40 IF W>600 THEN BEEP5,60: OUT5,0: GOTO 30
50 IF W<300 THEN BEEP50,120: OUT5,1: GOTO 30

60 LED 1:WAIT 30: LED 0:WAIT 30
90 GOTO 30

40行目 もし、 変数W>600 なら  音5を60tick鳴らして: 30行目を実行する
50行目 もし、 変数W<300 なら 音50を120tick鳴らして: 30行目を実行する

プログラムの全体の動きが以下のようになれば完成です。

水量が150mlを超えたら給水モータを停止する
水量が100ml以下なら給水モータを始動する
それ以外なら、LEDを点滅して水量計測を繰り返す

なお、講座で使用したこのプログラムには少し問題があります。
150mlを超えたら給水モーターは停止するのですが、40行目のIF命令はいつも条件が成立するので、音が鳴り続けてしまいます。
この問題を解消するには、「音は1回だけ鳴らす」というプログラムを作らねばなりませんが、これは説明が少し長くなってしまうので、ここではBEEP命令を削除することで回避することにします。