NO. d-006

使用する機材

・マイクロビット
・プログラミング列車
 (位置センサー有)


目的

スイッチを「入」にすると
2秒後に1023のスピードで前進する

ドッグレールに来たら(1回目)
そのままのスピードで通過する

ドッグレールに来たら(2回目)
停車する


プログラム
(ドッグレールで通過と停車:1週目通過、2週目停車)

解説

 今回はLEDを使わないので「偽」 にします。

 変数の箱の名前を「センサー」にして、箱の中に「 0 」を入れます。
 (ドッグレールの上に来たのかどうかを判断(はんだん)するのに使います)
 (変数ブロックの作り方は、YouTube「Lesson5 変数」を見てね)

 2秒間待ちます。
 (2000=2秒)

 1023のスピードで前進します。
 (P13=前進)


 50ミリ秒ごとに、【位置センサーのプログラム】をくり返します。
 (50ミリ秒=0.05秒)

 もし、ドッグレールの上に来たら=「 1 」
  そうでない時(来ていない)は=「 0 」
  デジタルなので「 1 」か「 0 」を使います。
 (P16=位置センサー)

 ドッグレールに来ると、変数の箱「センサー」に、「 1 」を()していきます。
  1回目に通る時は、変数の箱「センサー」に1を()すので0+1=1(箱の中は1)
  2回目に通る時は、変数の箱「センサー」に1を()すので1+1=2(箱の中は2)

 チャタリングを防ぐために、1秒間待ちます。
 (※くわしい説明(せつめい)を見てね)


 変数の箱「センサー」の値(箱の中の数値)が
 もし、「 2 」であれば、⑩のプログラムを実行します。

 停車します。


※くわしい説明(せつめい)
チャタリングとは
プログラミング列車が「ドッグレール」の上を通過(つうか)する時間は、見た目では一瞬(いっしゅん)ですが
実は「センサー」は、 ON→OFF→ON→OFFと繰り返しています。(数ミリ秒~数秒)
それでエラーを起こしてしまう事があるので、あえて「1秒間待つ」のプログラムを入れます。

※ワンポイント
位置センサーのプログラム(⑤⑥⑦⑧)と、列車のプログラム(⑨➉)は同時進行(どうじしんこう)します。