【Arduino電子工作】サーボを0~180度動かす
目的
単純な角度変更
今回使うもの
- Arduino Micro(USBケーブルも)
- ブレッドボード
- ジャンパーワイヤ
- 長めのピンヘッダ
- サーボモータ(SG90)
購入先参考は記事下部に書いておきます
設計・計算
サーボを単純に動かすとなった場合、特に計算の必要はない
今回は軽いサーボを一個動かすだけなので、Arduinoの5Vピンから電流をとる
大きな負荷をかける、複数個のサーボを同時に動かすなどの場合は別電源を用意しよう
今回つかうもので長めのピンヘッダを挙げている理由について
通常?のピンヘッダをブレッドボードにさして、さらにサーボモータのコネクタを挿そうとするとどうしても長さが足りない
写真の中央のピンヘッダの長さだとブレッドボードに挿しても余裕があり使いやすい
回路
実際の回路と、fritzingで描いたブレッドボード図と回路図
サーボの信号線をArduinoのD4ピンにつなげる
プログラム
/*
目的:サーボの角度を0度から180度へ単純に変更
http://www.isopro91.com
2015/6/3
*/
#include<Servo.h>
Servo servo1;
void setup() {
servo1.attach(4);
}
void loop() {
servo1.write(0);
delay(1000);
servo1.write(180);
delay(1000);
}
プログラムのポイント
今回のプログラムはとてもシンプル
servo1.write(…);という処理をし
delay(1000);1秒待つ
の繰り返し
なぜ1秒も待つのかというと(もっと短くてもよい)
プログラムの処理とハード側の処理(サーボモータの回転速度)に大きな差があるためだ
プログラムを早く処理しても、サーボモータの回転が間に合わない事態がおきるのを防ぐために1秒待っている(多分0.5秒でも大丈夫だとおもう)
歩行ロボットのモーションを作成する際、このような単純なやり方でやる人もいる
しかし、キビキビしすぎてぎこちない動きになってしまうため、わたしはおすすめしない
おすすめはfor文で制御することだが、それについては次回
実際の動作
購入先参考
Arduino、ブレッドボード関係は下記記事の購入先参考を参照のこと
【Arduino電子工作】LED点滅 - いそっぷ3DCAD塾
サーボモータ(SG90)についてはAmazonがおすすめだが現在在庫切れのようです(15/6/6時点)
マイクロサーボ9g SG−90: サーボ 秋月電子通商 電子部品 ネット通販
おわり