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
說明:
按鈕依序輸出脈衝寬度最小、中間、最大,以控制依序移動伺服機位置。
恩?! 伺服機的紅、黑線是電源跟地線嗎? 怎麼都接在地線?
回覆刪除已修正,謝謝你的提醒 : )
回覆刪除