サーボをスイープさせる
CoddyのArduinoジャーニー「出力」セクションの一部。レッスン 21/24。
arm.write()は指定した角度へ一気に移動します。アームをゆっくり動かすには、forループで途中の角度をすべて順に通り、それぞれの角度で少し待ちます。
for (int angle = 0; angle <= 180; angle++) {
arm.write(angle);
delay(15);
}ここではカウンターをangleと呼び、<= 180は180自体も含みます。15 msずつ、181ステップ進むと、約2.7秒かかります。
戻るときは、カウントダウンします。angle--は毎回1ずつ減らし、角度がまだ0以上の間、ループが実行されます。
for (int angle = 180; angle >= 0; angle--) {
arm.write(angle);
delay(15);
}両方のループをloop()に入れると、アームは車のワイパーのように前後に動きます。
チャレンジ
簡単ピン 9 のサーボを何度も繰り返し動かします。
- 0 度から 180 度まで、1 度ずつ動かし、それぞれの位置で 15 ms 待ちます
- その後、同じ方法で 0 度まで戻します
Run を押してから、Check を押します。
自分で試してみよう
#include <Servo.h>
Servo arm;
void setup() {
arm.attach(9);
}
void loop() {
// 0から180まで、15 msごとに1度ずつ動かす
// その後、0まで戻す
}
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
出力のすべてのレッスン
自分で練習してみよう: Arduinoプレイグラウンド