正在学习arduino,在Sevro库,看到舵机的例子程序,一个电位器控制舵机角度程序,一个舵机自动往返程序。就改着玩,发现延时是控制舵机快慢,于是就有以下折腾出的程序:
/*
舵机自动往返运行,电位器控制速度
*/
#include <Servo.h>
Servo MyServo;
int pos = 0; //用于存储舵机位置变量
int PotPin = 1;//电位器模拟量输入接口
int val;//中间变量
void setup() {
MyServo.attach(1);//舵机控制线接口
}
void loop() {
val = analogRead(PotPin);//电位器模拟量写入中间变量(范围0~1023)
val = map(val, 0, 1023, 5, 50);//中间变量范围与延时范围5~50毫秒
for (pos = 0; pos <= 180; pos += 1) {
MyServo.write(pos);
delay(val);
}
for (pos = 180; pos >= 0; pos -= 1) {
MyServo.write(pos);
delay(val);//舵机往返控制
}
}
但是这程序,只有舵机返回后,电位器所调节才能生效,不能中途生效。请问大佬,如何改才能在舵机运转中,调了电位器,转速马上生效???
/*
舵机自动往返运行,电位器控制速度
*/
#include <Servo.h>
Servo MyServo;
int pos = 0; //用于存储舵机位置变量
int PotPin = 1;//电位器模拟量输入接口
int val;//中间变量
void setup() {
MyServo.attach(1);//舵机控制线接口
}
void loop() {
val = analogRead(PotPin);//电位器模拟量写入中间变量(范围0~1023)
val = map(val, 0, 1023, 5, 50);//中间变量范围与延时范围5~50毫秒
for (pos = 0; pos <= 180; pos += 1) {
MyServo.write(pos);
delay(val);
}
for (pos = 180; pos >= 0; pos -= 1) {
MyServo.write(pos);
delay(val);//舵机往返控制
}
}
但是这程序,只有舵机返回后,电位器所调节才能生效,不能中途生效。请问大佬,如何改才能在舵机运转中,调了电位器,转速马上生效???