Не могу управлять сервоприводом
Я купил цифровой сервопривод DS3218MG массой 20 кг с углом управления 270° .
Я пытаюсь заставить его вращаться с помощью следующего кода:
#include <Servo.h>
Servo myservo; // создаем объект сервопривода для управления сервоприводом
void setup() {
myservo.attach(9); // прикрепляет сервопривод к контакту 9 к сервообъекту
}
int restingVal = 0;
int keyDown = 80;
void loop() {
int minutesDelay = 1;
Serial.print("Value");
Serial.println(restingVal);
delay(10000/2);
myservo.write(keyDown);
delay(500);
myservo.write(restingVal);
}
Он издает небольшой щелкающий звук, но никогда не двигается. Я пробовал:
- питание от Arduino с помощью USB-кабеля.
- подключение с помощью шнура питания, подключенного к электрической розетке.
- питание от 4 батареек типа АА в аккумуляторном блоке (питание от аккумуляторного блока к сервоприводу с заземлением на землю Arduino и подключение Arduino к розетке)
- использовал конденсатор емкостью 470 мкФ, а затем попробовал конденсатор емкостью 680 мкФ.
Что я делаю не так? Есть ли что-нибудь еще, на что я мог бы посмотреть?
обновление: изменил код на:
#include <Servo.h>
Servo myservo; // создаем объект сервопривода для управления сервоприводом
void setup() {
myservo.attach(9); // прикрепляет сервопривод к контакту 9 к сервообъекту
myservo.write(60);
delay(2000);
myservo.write(120);
}
int restingVal = 0;
int keyDown = 80;
void loop() {
}
У меня та же проблема.
Шнур питания, который я использую для подключения Arduino, имеет напряжение 12 В постоянного тока, 1 А.
Вот фото проводки в одной конфигурации (с аккумулятором и розеткой):
Оранжевый провод идет к GND на Arduino, длинный зеленый — к ~9, желтый — к VCC на аккумуляторе.
@davidhaskins, 👍1
Обсуждение2 ответа
Лучший ответ:
Серводвигатель DS3218MG является мощным серводвигателем и требует большего тока, чем обычные серводвигатели.
У обычного серводвигателя пиковый ток может составлять 500 мА или даже 1 А. Для этого DS3218MG указан где-то при токе срыва 1,8 А (всего 80-100 мА при нормальной работе). Однако в это видео на YouTube измерен ток опрокидывания 2,3 А.
Во время нормальной работы средний ток даже не будет приближаться к току опрокидывания. С другой стороны, пиковый ток может быть близок к току срыва. Пиковый ток возникает в момент начала движения серводвигателей.
Для этого серводвигателя необходим источник питания 5 В, 2,5 А, а также провода и разъемы, подходящие для этого тока.
Можно немного схитрить, добавив конденсатор. Я предлагаю 2200 мкФ или 4700 мкФ.
Распространенной ошибкой является недооценка тока серводвигателя. Блок питания зачастую дороже серводвигателя.
Если требуется большой крутящий момент, возможно, проще использовать мотор-редуктор.
Я предполагаю, что сервопривод потребляет слишком большой ток от контакта Arduino 5 В, который может обеспечить до ~ 450 мА при питании от USB и ~ 650 мА от разъема питания.
Попробуйте подать на сервопривод напряжение 5 В от другого источника, сохраняя при этом общий провод GND этого источника питания и Arduino.
Я предполагаю, что он использует энергию из двух разных источников., @Pararera
Это может быть очень простой вопрос, но какие еще источники доступны? Я добавил аккумуляторную батарею 4xAA для обеспечения выделенного питания сервопривода, надеясь, что это поможет. Я думал об использовании батареи на 9 В, но сервопривод говорит «4,8-6,8 В постоянного тока»., @davidhaskins
- Tower Pro MG996R сервопривод с высоким крутящим моментом 180 °, управляющий с помощью Arduino
- Как заставить сервопривод вращаться на угол больше 180°
- Пповорот сервопривода на 90 градусов
- Как синхронно управлять двумя сервоприводами?
- Ошибка "Servo" does not name a type
- Библиотека плавного сервоуправления
- Подключение Arduino к сервоприводу с внешним источником питания
- Мой сервопривод не работает плавно
Для этого может потребоваться пиковый ток 1,8 А. Могут ли аккумуляторы это сделать? Попробуйте небольшой обычный серводвигатель., @Jot
Когда я заменяю его крошечным сервоприводом, он работает нормально., @davidhaskins
Вы должны предоставить схему. Из данного изображения неясно, @Pararera
Возможно, батареи слишком слабые, провода слишком тонкие, и макетная плата не выдерживает таких токов. Возможно, с блоком питания 5В 2А, с хорошими проводами и хорошими соединениями все заработает. Держите заземление подключенным. @SilvioCro, мне удалось проследить за проводами по фотографии, с проводкой все в порядке., @Jot
@Jot Посмотрите на оранжевый провод. Похоже, он подключен к рельсу GTND., @Pararera
@SilvioCro оба оранжевых провода являются проводами заземления. Они соединяют землю Arduino с землей аккумулятора и землей сервопривода., @Jot