Сервопривод поворачивается на 270 градусов, когда он должен быть на 180 градусов

У меня сервомотор 270 градусов (LD-3015MG) подключен к Arduino. У меня проблема в том, что угол, на который я его установил, не соответствует фактическому углу, на который он на самом деле идет.

Вот код 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 посылает неправильные сигналы ШИМ для этого типа сервоприводов? Не хватает ли мощности на сервопривод? Есть ли способ откалибровать серводвигатель?

Сервопривод на картинке не совсем та же модель, что и у меня:

1 ответ

Решение

Библиотека write функция только обрабатывает ввод от 0 до 180, что означает, что при серво 270 градусов 180 градусов представляют максимальное значение. Я бы рекомендовал перейти на использование writeMicroseconds работать, так как более понятно, с каким типом значения вы работаете.

write(120) должен производить близко к углу 180 градусов.

Другие вопросы по тегам