Как проверить сервопривод?

Вот такой вопрос:
как проверить, что серва (обычная маленькая синяя SG90) работоспособна вообще? располагая только мультиметром
Я попытался управлять ей через таймер с ШИМ, но весёлое жужжание не усладило мой слух :frowning_face:
Все три сервы которые я купил одним заказом - одна печаль, вероятно у меня кривые руки, но
с другой стороны если на ножку с ШИМ повесить светодиод, то у меня получается диммер. Значит ШИМ есть и вопрос в чем-то другом.

Для керування сервами потрібен PWM з певними характеристиками:

  • Частота = 50 Гц (період = 20 мс)
  • ширина імпульса - від 1 мс до 2 мс

Межі конкретного екземпляра можуть відрізнятися але починати варто з тестування від 1 мс до 2 мс при частоті 50 Гц

1 Like

не, это я знаю
они не заводятся, просто отчаяние
step-by-step из лекции или ютубы – один результат
светодиод слушается(диммер), а сервопривод - нет

Почему на кртинке anvol: “power and signal ~5V” . Сигнал что – нужен 5В, 3.3В не хватит? Все же просто цепляют PA0 (допустим)на оранжевый…

Я уж думал ему тока не хватает – подцепил внешний сточник на 6В к сервоприводу. Молчит как рыба об лёд.

Люди добрые. Обращаюсь к вам за интеллектуальной милостыней:
скажите – что я делаю не так?



НЕ, это пиздец какой-то!
купил машинку для проверки, отобрал рабочую серву, Крутится от машинки.
От контроллера - нет. Период 20мс, импульс 1мс 1.5мс та все равно не реагирует никак
подключаю светодиод - работает как диммер. Устанавливаю период не 50Гц, а 1Гц и импульс 50% - нормально, пол-секунды горит, пол-секунды не горит.
импульс 100% – горит непрерывно на полной яркости, меряю вольметром - 3.31В

Т.е. в расчетах деления и ширины импульса все норм.
с напряжением сигнала тоже
с питанием тоже(от него проверочная машинка работает)
бля, что не так?

КОЛЛЕГИ, ЕСТЬ КТО ЖИВОЙ?
может есть кто в Киеве что подъехать с это й дрянью разобраться можно было?

Скинь код main.c как ты включаешь таймер в pwm режим

получилось запустить одну серву.
купленную последней
из первой партии (3шт) не работают

@sieger судячи з налаштувань на скрінах з CubeMX вище у тебе не 50Гц PWM:
частота шини таймера 44МГц, прескейлер 677-1, період 255-1 тоді маємо 44000000/(677*255) = 255 Гц

Для твоєї частоти 44МГц я б взяв такі налаштування: прескейлер 44-1 та період 20000-1. Тоді дуже зручно - таймер рахує мікросекунди і беремо період 20000мкс. Тоді значення каналу (CCR) задаєш напряму в мікросекундах: від 1000 до 2000. Для ініціалізації таймеру в кубі щоб не ударити серву одразу після запуску ставиш в каналі значення Pulse 1500.

Запускаєш таймер HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_1), потім на льоту міняєш значення пишучи напряму в регістр htim2.Instance->CCR1 = 1000 або макросом __HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_1, 1000)

Ще пам’ятай що серва повертається не миттєво, тобто після зміни значення каналу треба почекати щоб серва фізично докрутилась до заданого положення. Для тестів я зазвичай просто ставлю в два крайніх положення (в ідеалі 1000мкс і 2000мкс але по факту в китайських сервах це десь 600 і 2400) з інтервалом в секунду

Спасибо,

там было два фактора:

  1. Сервы из первой партии не крутятся от конртоллера,(но работают от ШИМ машинки - [‘вопль отчаяния’]). Серва из второй партии работает и от машинки, и от контроллера. Возможно там 3.5В нужен сигнал? – пока не знаю как проверить.
  2. Когда я отчаялся запустить сервы из первой партии, пошёл смотреть разные туториалы от умных(оказалось - нет) людей. 677x255 – это оттуда. И одновременно вопить о помощи тут.

Как оказалось в первой части страданий (до 677x255) я всё делал правильно в соответствии с уроком, – подвел конкретно сервопривод.

1 Like