やはりサーボモーターのドライブはデジタルだと安定しますね。
今回もライブラリServo.hを利用して簡単制御。
UNOでは 5V出力が1カ所しかなさそうなので,別途に用意。
VRは10kとか50kでは安定しないので,100kΩを使いました。
スケッチはこのようにしました
#include<servo.h>
Servo myservo; // サーボモーターのオブジェクトを作成
int potpin = A0; // 可変抵抗100kBが接続されたアナログピン
int val; // アナログ値を保持する変数
void setup() {
myservo.attach(9); // サーボモーターをデジタルピン9に接続
}
void loop() {
val = analogRead(potpin); // アナログ値を読み取る
val = map(val, 0, 1023, 0, 180); // 0-1023の範囲を0-180度に変換
myservo.write(val); // サーボモーターを制御
delay(15); // サーボモーターが新しい位置に移動するのを待つ
}
//VR100kB 1番端子 (VCC): 5V。2番端子 (OUT): アナログ入力ピン(A0)。3番端子 (GND): グラウンド (GND) 。
動作の様子
ArdiunoUNOによるサーボモータードライブ
あとは555を使って見るとどうかな?
※コメント投稿者のブログIDはブログ作成者のみに通知されます