Вот такой вопрос:
как проверить, что серва (обычная маленькая синяя SG90) работоспособна вообще? располагая только мультиметром
Я попытался управлять ей через таймер с ШИМ, но весёлое жужжание не усладило мой слух
Все три сервы которые я купил одним заказом - одна печаль, вероятно у меня кривые руки, но
с другой стороны если на ножку с ШИМ повесить светодиод, то у меня получается диммер. Значит ШИМ есть и вопрос в чем-то другом.
Для керування сервами потрібен PWM з певними характеристиками:
- Частота = 50 Гц (період = 20 мс)
- ширина імпульса - від 1 мс до 2 мс
Межі конкретного екземпляра можуть відрізнятися але починати варто з тестування від 1 мс до 2 мс при частоті 50 Гц
не, это я знаю
они не заводятся, просто отчаяние
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) з інтервалом в секунду
Спасибо,
там было два фактора:
- Сервы из первой партии не крутятся от конртоллера,(но работают от ШИМ машинки - [‘вопль отчаяния’]). Серва из второй партии работает и от машинки, и от контроллера. Возможно там 3.5В нужен сигнал? – пока не знаю как проверить.
- Когда я отчаялся запустить сервы из первой партии, пошёл смотреть разные туториалы от умных(оказалось - нет) людей. 677x255 – это оттуда. И одновременно вопить о помощи тут.
Как оказалось в первой части страданий (до 677x255) я всё делал правильно в соответствии с уроком, – подвел конкретно сервопривод.