// 定义8个舵机的引脚
int servo1Pin = 9;
int servo2Pin = 10;
int servo3Pin = 11;
int servo4Pin = 12;
int servo5Pin = 13;
int servo6Pin = 14;
int servo7Pin = 15;
int servo8Pin = 16;
// 定义8个电位器的引脚
int pot1Pin = A0;
int pot2Pin = A1;
int pot3Pin = A2;
int pot4Pin = A3;
int pot5Pin = A4;
int pot6Pin = A5;
int pot7Pin = A6;
int pot8Pin = A7;
// 定义舵机的角度
int servo1Angle = 0;
int servo2Angle = 0;
int servo3Angle = 0;
int servo4Angle = 0;
int servo5Angle = 0;
int servo6Angle = 0;
int servo7Angle = 0;
int servo8Angle = 0;
void setup() {
// 初始化舵机引脚
pinMode(servo1Pin, OUTPUT);
pinMode(servo2Pin, OUTPUT);
pinMode(servo3Pin, OUTPUT);
pinMode(servo4Pin, OUTPUT);
pinMode(servo5Pin, OUTPUT);
pinMode(servo6Pin, OUTPUT);
pinMode(servo7Pin, OUTPUT);
pinMode(servo8Pin, OUTPUT);
// 初始化电位器引脚
pinMode(pot1Pin, INPUT);
pinMode(pot2Pin, INPUT);
pinMode(pot3Pin, INPUT);
pinMode(pot4Pin, INPUT);
pinMode(pot5Pin, INPUT);
pinMode(pot6Pin, INPUT);
pinMode(pot7Pin, INPUT);
pinMode(pot8Pin, INPUT);
}
void loop() {
// 读取电位器的值
int pot1Value = analogRead(pot1Pin);
int pot2Value = analogRead(pot2Pin);
int pot3Value = analogRead(pot3Pin);
int pot4Value = analogRead(pot4Pin);
int pot5Value = analogRead(pot5Pin);
int pot6Value = analogRead(pot6Pin);
int pot7Value = analogRead(pot7Pin);
int pot8Value = analogRead(pot8Pin);
// 根据电位器的值计算舵机的角度
servo1Angle = map(pot1Value, 0, 1023, 0, 180);
servo2Angle = map(pot2Value, 0, 1023, 0, 180);
servo3Angle = map(pot3Value, 0, 1023, 0, 180);
servo4Angle = map(pot4Value, 0, 1023, 0, 180);
servo5Angle = map(pot5Value, 0, 1023, 0, 180);
servo6Angle = map(pot6Value, 0, 1023, 0, 180);
servo7Angle = map(pot7Value, 0, 1023, 0, 180);
servo8Angle = map(pot8Value, 0, 1023, 0, 180);
// 设置舵机的角度
servoWrite(servo1Pin, servo1Angle);
servoWrite(servo2Pin, servo2Angle);
servoWrite(servo3Pin, servo3Angle);
servoWrite(servo4Pin, servo4Angle);
servoWrite(servo5Pin, servo5Angle);
servoWrite(servo6Pin, servo6Angle);
servoWrite(servo7Pin, servo7Angle);
servoWrite(servo8Pin, servo8Angle);
// 延时
delay(100);
}
// 设置舵机的角度
void servoWrite(int pin, int angle) {
int pulseWidth = map(angle, 0, 180, 500, 2500);
digitalWrite(pin, HIGH);
delayMicroseconds(pulseWidth);
digitalWrite(pin, LOW);
delay(20);
}

访问次数: 631