前回つくった自動ドアをプッシュスイッチを使わずに動かしてみます。モーターをフリーランさせるのではなく、ある角度まで動かして停止させる、というようにサーボ的な使い方ができます。

fig1
使う部品はモーターとTOUCH LEDのみです。

TOUCH LED関連

TOUCH LED関連

●プログラムのスタートでTOUCH LEDを赤にセットして点灯
●TOUCH LEDがタッチされたら色を緑に変更
●TURNLEDREDを着信したら色を赤に変更
TURNLEDREDはモーター側から依頼されて実行する処理で、今回独自に作成した関数です。

モーター関連

モーター関連

●プログラムの開始でモータースピードを25%に設定。回転方向を逆にする。回転方向は単にメカのドアが開く方向に合わせただけ。
●TOUCH LEDがタッチされたら、REV方向に90°回転 -> 2秒待つ -> FWD方向に90°回転 -> TURNLEDREDの実行を依頼(発信)
broadcastというのは自分(MOTORクラス)ではLED関係のことは実行できないので誰かよろしく、とまわりにお願いするイメージでしょうか。Androidアプリのプログラムでも同様の手法がありますね。