Будет ли аналоговый сервопривод работать с библиотекой сервоприводов Arduino?
Я заказал несколько дешевых сервоприводов на Amazon, прежде чем заметил, что их, похоже, два разных вида (цифровые и аналоговые).
У меня Tower Pro SG90 Analog (http://www.towerpro.com.tw/product/sg90-analog/)
Я пытался заставить свой работать с помощью чрезвычайно простого примера кода (ниже) с использованием библиотеки Arduino Servo (используя цифровой вывод 3), и у меня возникли подтормаживания.
Я прочитал решения по адресу: https://electronics.stackexchange.com/questions/77502/is-there-a-way-to-stop-servos-from-shaking
Читая это, я узнал, что существует также цифровая разновидность сервопривода: http://www.towerpro.com.tw/product/sg90-7/
Мне интересно, является ли это частью проблемы, которую я вижу с дрожанием сервопривода. Я не видел, чтобы это где-то еще обсуждалось.
Мои вопросы:
- Эти сервоприводы вообще разные? Может, это просто маркетинговый ход? вещь??
- Нужно ли мне переключиться на использование аналогового контакта для данных сервопривода? связь?
- Возможно ли вообще использовать библиотеку Arduino Servo для этого? или мне нужно использовать какой-то ручной код (вроде analogWrite()) и переместить сервопривод на аналоговый вывод?
- Или, если все будет работать отлично, а дрожание будет просто небольшим не связанная проблема?
Вот простой код, который я использую:
#include <Servo.h>
Servo myservo; // создаем объект сервопривода для управления сервоприводом
// двенадцать сервообъектов можно создать на большинстве плат
int pos = 0; // переменная для хранения положения сервопривода
void setup() {
myservo.attach(3); // прикрепляет сервопривод на контакте 3 к объекту сервопривода
}
void loop() {
for (pos = 0; pos <= 180; pos += 1) { // переходит от 0 градусов к 180 градусам
// с шагом в 1 градус
myservo.write(pos); // приказать сервоприводу перейти в позицию, указанную в переменной 'pos'
delay(15); // ждет 15 мс, пока сервопривод достигнет положения
}
for (pos = 180; pos >= 0; pos -= 1) { // переходит от 180 градусов к 0 градусам
myservo.write(pos); // приказать сервоприводу перейти в позицию, указанную в переменной 'pos'
delay(15); // ждет 15 мс, пока сервопривод достигнет положения
}
}
@raddevus, 👍0
1 ответ
Здесь есть обсуждение разницы. Короткий ответ: они оба управляются сигналом ШИМ, но отличаются внутренней схемой управления, которая на него реагирует.
- ATMEGA 328P Автономный, питание 3,3 В, управление сервоприводом
- Я закирпичил свой Arduino Uno? Проблемы с загрузкой скетчей на плату
- Запрограммировать ATMega328P и использовать его без платы Arduino.
- Не удается снова загрузиться после смены платы
- Tower Pro MG996R сервопривод с высоким крутящим моментом 180 °, управляющий с помощью Arduino
- ATMEGA328P-U vs ATMEGA328-PU
- Как заставить сервопривод вращаться на угол больше 180°
- Пповорот сервопривода на 90 градусов