Arduino (servo_motor):
#include <Servo.h>
Servo myservo;
const int umin = 500, umax = 2400, umid = (umin + umax)/2;
const int buttonPin = 2;
int buttonState = 0, buttonDownState = 0, motorState = 0;
void setup() {
pinMode(buttonPin, INPUT);
myservo.attach(9, umin, umax);
myservo.writeMicroseconds(umid);
delay(3000);
}
void loop() {
buttonState = digitalRead(buttonPin);
if (buttonState == HIGH) {
buttonDownState = 1;
} else {
if(buttonDownState == 1) {
if(motorState == 0) {
myservo.writeMicroseconds(umin);
motorState = 1;
} else if(motorState == 1) {
myservo.writeMicroseconds(umid);
motorState = 2;
} else if(motorState == 2) {
myservo.writeMicroseconds(umax);
motorState = 3;
} else {
myservo.writeMicroseconds(umid);
motorState = 0;
}
buttonDownState = 0;
}
}
}
Arduino Diecimila
電阻 - 10kΩ
伺服機 - GWS S03T
說明:
按鈕依序輸出脈衝寬度最小、中間、最大,以控制依序移動伺服機位置。

恩?! 伺服機的紅、黑線是電源跟地線嗎? 怎麼都接在地線?
回覆刪除已修正,謝謝你的提醒 : )
回覆刪除