我们不仅销售产品,我们还传播知识
商品分类

给我写一个8个电位器控制8个舵机的arduino程序

// 定义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);
}
给我写一个8个电位器控制8个舵机的arduino程序

发表回复

登录后才能评论
微信群
微信群
微信客服
微信客服
分享本页
返回顶部