#include <Servo.h>
// 創建伺服電機實例
Servo servo1;
Servo servo2;
Servo servo3;
// 步進電機引腳
const int stepPin = 3;
const int dirPin = 4;
void setup() {
// 設置伺服電機引腳
servo1.attach(9);
servo2.attach(10);
servo3.attach(11);
// 設置步進電機引腳模式
pinMode(stepPin, OUTPUT);
pinMode(dirPin, OUTPUT);
digitalWrite(dirPin, HIGH); // 設置方向
}
void loop() {
// 同時測試伺服電機和步進電機
for(int i = 0; i < 180; i += 10) {
// 控制伺服電機
servo1.write(i);
servo2.write(i);
servo3.write(i);
// 控制步進電機
digitalWrite(stepPin, HIGH);
delayMicroseconds(500);
digitalWrite(stepPin, LOW);
delayMicroseconds(500);
delay(10); // 等待10毫秒
}
for(int i = 180; i > 0; i -= 10) {
// 控制伺服電機
servo1.write(i);
servo2.write(i);
servo3.write(i);
// 控制步進電機
digitalWrite(stepPin, HIGH);
delayMicroseconds(500);
digitalWrite(stepPin, LOW);
delayMicroseconds(500);
delay(10); // 等待10毫秒
}
// 改變步進電機方向
digitalWrite(dirPin, LOW);
for(int i = 0; i < 180; i += 10) {
// 控制伺服電機
servo1.write(i);
servo2.write(i);
servo3.write(i);
// 控制步進電機
digitalWrite(stepPin, HIGH);
delayMicroseconds(500);
digitalWrite(stepPin, LOW);
delayMicroseconds(500);
delay(10); // 等待10毫秒
}
for(int i = 180; i > 0; i -= 10) {
// 控制伺服電機
servo1.write(i);
servo2.write(i);
servo3.write(i);
// 控制步進電機
digitalWrite(stepPin, HIGH);
delayMicroseconds(500);
digitalWrite(stepPin, LOW);
delayMicroseconds(500);
delay(10); // 等待10毫秒
}
// 恢復步進電機方向
digitalWrite(dirPin, HIGH);
}