舵机在应该是 180 度的时候转到 270 度
Servo goes to 270 degrees when it should be 180 degrees
我有一个连接到 Arduino 的 270 度伺服电机 (LD-3015MG)。我遇到的问题是我设置的角度与它实际到达的实际角度不匹配。
这是 Arduino 代码:
#include <Servo.h>
Servo myservo; // create servo object to control a servo
void setup() {
myservo.attach(9); // attaches the servo on pin 9 to the servo object
myservo.write(180);
}
void loop() {
}
首先我将它设置为 0 度,然后我将它设置为大约 180 度。但是我可以清楚的看到舵机一直旋转到270左右。
这是什么原因造成的? Arduino 库是否为此类伺服发送了错误的 PWM 信号?是不是没有足够的动力去伺服?有什么方法可以校准伺服电机吗?
图中的舵机与我手上的舵机型号不完全一样:
库的 write
function only handles input from 0 to 180 which means on a 270 degree servo, 180 degrees represents a max value. I'd recommend switching over to use the writeMicroseconds
功能,因为它更清楚您正在使用的值类型。
write(120)
应该产生接近 180 度角。
我有一个连接到 Arduino 的 270 度伺服电机 (LD-3015MG)。我遇到的问题是我设置的角度与它实际到达的实际角度不匹配。
这是 Arduino 代码:
#include <Servo.h>
Servo myservo; // create servo object to control a servo
void setup() {
myservo.attach(9); // attaches the servo on pin 9 to the servo object
myservo.write(180);
}
void loop() {
}
首先我将它设置为 0 度,然后我将它设置为大约 180 度。但是我可以清楚的看到舵机一直旋转到270左右。
这是什么原因造成的? Arduino 库是否为此类伺服发送了错误的 PWM 信号?是不是没有足够的动力去伺服?有什么方法可以校准伺服电机吗?
图中的舵机与我手上的舵机型号不完全一样:
库的 write
function only handles input from 0 to 180 which means on a 270 degree servo, 180 degrees represents a max value. I'd recommend switching over to use the writeMicroseconds
功能,因为它更清楚您正在使用的值类型。
write(120)
应该产生接近 180 度角。