ココナッツ・プラグラム~▮サンプルプログラムの仕様について▮

ハンダづけが終わったところで動作確認ができるよう、マイコンにサンプルプログラムを書き込んだ状態で、ココナッツは学校に納入されています。

 

そのサンプルプログラムは、【ココナッツの電源を入れたときの、スライドスイッチとタクトスイッチのON-OFFの組み合わせで、実行されるプログラムが次の4つに分岐する】というものになっています。

スライドスイッチONタクトスイッチOFFのとき

一つずつ音階を鳴らしてLEDを点灯させる

スライドスイッチOFFタクトスイッチOFFのとき

LEDを全点灯させて、10秒後に全消灯させる

スライドスイッチONタクトスイッチONのとき

CdSセルによる3段階の調光をさせる

スライドスイッチOFFタクトスイッチONのとき

リモコンの赤外線によって、LEDの全点灯・全消灯を切り替えさせる

 

ここで、サンプルプログラムの注意点があります。

 

赤外線受信モジュールや音センサを配置している場合は、上のように4つに分岐します。

ドップラセンサやタッチセンサを配置している場合は、①のみが実行され、スイッチの状況にかかわらず分岐されません。

 

あくまでもサンプルプログラムでは分岐しないというだけなので、プログラムの修正を行えば、分岐させることができます。

 

サンプルプログラムの仕様ということで、よろしくお願いします。

 

 

 

 

以下、解説です。難解かもしれません。

 

ココナッツには、いくつかの変数が設定されています。

変数iには、スライドスイッチとタクトスイッチのそれぞれのON-OFFの状態に応じた数値が自動的に代入されます。

この数値は、配置しているセンサによっても変わる仕様になっています。

 

通信ソフト上で【i?】と入力すると、変数iの値が表示されます。

このとき、

Yに配置されているセンサの出力がゼロでない場合、変数iは、8~11までの値を取ります。

Yに配置されているセンサの出力がゼロの場合、変数iは、0~3までの値を取ります。

 

サンプルプログラムは、【電源を入れたときに、変数iが8~11のいずれかなら、その値に応じて分岐するプログラム】となっています。

変数iが0~3の場合は、分岐しません。

 

通常時、

赤外線受信モジュールや音センサの出力はゼロ以上なので、変数iは8~11を取ります。

ドップラセンサやタッチセンサの出力はゼロなので、変数iは0~3を取ります。

 

このことから、

ドップラセンサやタッチセンサだけを配置している場合は、条件を満たさないので、サンプルプログラムでは分岐しません。

 

また、タッチセンサを触りながら電源を入れると、変数iは8~11の値を取るので、スイッチの状態に応じてプログラムが分岐します。

 

たとえば、タッチセンサと赤外線受信モジュールを併用すると、変数iは8~11の値を取るので、スイッチの組み合わせによる分岐は行われます。

ですが、センサの値による分岐が正確に行われなくなります(タッチセンサに触れていない状況でも、触れていると計測されてしまいます)。