前回のサーボ編 No.はサーボモーターを 0度→90度→180度→90度→0度 の繰り返し動作をさせる単純なプログラムでしたが、
今回は0度→から180度まで10度刻みで動かして、180度まで行ったら0度に戻すというプログラムです。
UnoArdusimのデバイスの設定は サーボ編 No.1 と同じです。
今回のプログラムは以下のようになります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | //*********************************************************** // サーボモーターを動かすプログラム No.2 // 博多電子工作室 2015/07/25 //*********************************************************** #include <Servo.h> //サーボモーター用ライブラリを読み込み Servo myservo; //サーボ用のオブジェクトを作成 int val; //サーボの角度を格納するための変数 void setup() { myservo.attach(9); //デジタル9番ピンをサーボの角度命令出力ピンとして設定 val = 0; } void loop() { myservo.write(val); //サーボを動かす delay(1000); //1秒停止 if(val >= 180) //サーボの位置が180度なら次の位置を0度にセット val = 0; } else { //それ以外であれ10度進める val += 10; } } |
どうですか、ちゃんと動きましたか?
次回はこのプログラムを基に、
180度まで行ったら0度に戻るのではなく、逆方向に10度刻みで動くプログラムを組みます。
これ、宿題にしましょうか。
みなさん、自分なりに考えてみてください。