今までのことを総合して

スイッチを一度押すとLEDが光、もう一度押すとモーターが回る

というプログラムを作ってみましょう。


おそらくここで二つ新しい問題が出てきます。
チャタリングと、プログラムの実行速度の速さです。

チャタリングは、文で説明するのは難しいのですが
スイッチが押される瞬間、接点で機械的な振動や空中放電などで
ON,OFFを高速で繰り返すことになってしまう現象です。
つまり、一回押しただけで何十回とスイッチを連打したような現象が起きます。

これを解決するには、スイッチを押した後チャタリングが終了するまで(0.1sぐらい?)時間稼ぎをする事が有効です。
Whileなどで適当な時間稼ぎをすると良いかと思います。



ifを使って実現するヒントは、

スイッチを押すたびに変化する変数を作る、ということ。




プログラムの実行速度の速さに関するヒントは

スイッチを押されたときに、離されるまで待つということです。

さらに応用として、LED→モータ→ストップ(勿論LEDも消す)→LED→モータ…と、いう感じのものも作ってみましょう。

無限にif文を増やすなんて馬鹿なことはしないように…笑
最終更新:2008年06月17日 00:59