Всем привет! У меня проблема, начну с описания - мне нужно подключить серво привод к stm32f401ccu6, для этого я использую аппартный ШИМ на МК. Сам сервопривод питаю через транзистор-поливик от внешнего БП (6В). На эмитере транзистора соединяются земля БП и питания МК (3,3В). Реализовал программу что бы мог поворачивать вал сервопривода поворачиваю ручку энкодера. При таком раскалде все работает. Решил сервопривод подключить через ULN2003L, и тут возникает проблема - у меня ничего не работает. Правильное подключение проверил, соединения проверил, все хорошо, ШИМ сигнал генеррирует (проверяю на осцилографе), но вот один нюанс, при подключении через uln фотрма ШИМ сигнала снижается немного вниз (см. фото). Может быть из-за этого не работает сервопривод, не знаю, и я не понимаю почему вобще ШИМ синал снижается вниз?
Сайт не загружает фото, поэтому сохранил их на сервере, вот ссылки:
Заголовок сообщения: Re: Вопрос по ULN2003 и ШИМ сигнала для сервопривода
Добавлено: Пн окт 17, 2022 14:07:01
Друг Кота
Карма: 5
Рейтинг сообщений: 61
Зарегистрирован: Ср сен 30, 2020 16:51:47 Сообщений: 4626 Откуда: РФ
Рейтинг сообщения:0
maksimdag0, Если речь идёт об обычном сервоприводе типа SG90, то для чего нужна ULN2003? Если нужно умощнение выходного сигнал МК, то для этого следует использовать не ULN, а полноценные кмоп-буферы.
maksimdag0, Если речь идёт об обычном сервоприводе типа SG90, то для чего нужна ULN2003? Если нужно умощнение выходного сигнал МК, то для этого следует использовать не ULN, а полноценные кмоп-буферы.
Uln я использую в качестве ключа переключение нескольких потребителей, не более.
Добавлено after 30 seconds: да, использую сервопривод sg90
В момент разрыва минуса питания привода его управляющий вход как-то отключался или так и оставался подсоединённым к микроконтроллеру?
Получается когда на вход uln закрыт, то земля отсоединяется земля БП и земля МК, так как их земли соединены. Схему я выложил, выше. Это если я ваш вопрос правильно понял
Заголовок сообщения: Re: Вопрос по ULN2003 и ШИМ сигнала для сервопривода
Добавлено: Пн окт 17, 2022 16:05:00
Друг Кота
Карма: 5
Рейтинг сообщений: 61
Зарегистрирован: Ср сен 30, 2020 16:51:47 Сообщений: 4626 Откуда: РФ
Рейтинг сообщения:0
maksimdag0, Да это я вначале не понял. Если вы используете МК и для управления питанием сервопривода, то управлять питанием сервопривода нужно в цепи плюса.
Для сервомотора SG90 не нужно никаких ULN-ок и прочих усилителей. Сигнал на третьем (оранжевом) проводе - логического уровня и является слаботочным входом для внутренней электроники привода. Основной ток мотора идет по двум другим проводам. Ток потребления немалый, ULN-ка не вытянет. Серва мощная! Ставьте мосфет на ток пару-тройку ампер. Для управления мотором нужен период ШИМ-сигнала 20 мс, а длительность высокого уровня 1,5 мс для среднего положения, около 1 мс и около 2 мс для крайних положений.
Я к F0 два сервика подключал. Прицепил лазер и троллил кошаков. ULN там действительно не нужен, т.к. управляющий вход сервика потребляет совсем незначительный ток. А если есть необходимость питание отключать, то да, придется мосфетом щелкать. У меня, кстати, получилось, что для одного крайнего положения нужна длительность импульса 0.7мс, а для другого - 2.1мс.
_________________ Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда. Я на гитхабе, в ЖЖ
Добрый день! Спасибо за ответы! Ещё раз, я uln хочу использовать исключительно потому что это компактно и дёшево (uln на 7 выходов - 5 рублей, один транзистор Китайский - 12 рублей). Как я описал выше, с поливиком работает на ура. Но я хочу знать почему не работает на uln, по идее все должно работать. Вот моя схема: https://ibb.co/6ZNs6Nf
При таком включении у вас относительно общего провода сервы на управляющем может оказаться сильно отрицательное напряжение, которое могло испортить вход сервы. Если там потёк слишком большой ток, то и порт микроконтроллера мог испортиться. При таких напряжениях нельзя разрывать общий, необходимо коммутировать плюс. Почему работало раньше? Везение.
При таком включении у вас относительно общего провода сервы на управляющем может оказаться сильно отрицательное напряжение, которое могло испортить вход сервы. Если там потёк слишком большой ток, то и порт микроконтроллера мог испортиться. При таких напряжениях нельзя разрывать общий, необходимо коммутировать плюс. Почему работало раньше? Везение.
ох тыж блин, тогда действительно повезло, если я вас правильно понял. На фото я отобразил как потечет ток, я правильно вас понял?
Возможна ещё обратная ситуация: на выключенную по плюсу серву приходит ШИМ-сигнал, амплитуда которого фактически выше напряжения питания сервы (0 Вольт, выключено). Ну и тоже ток пойдёт как не надо. Короче, соответствующий управляющий выход нужно на время выключения или держать в нуле, или переводить в третье состояние.
Возможна ещё обратная ситуация: на выключенную по плюсу серву приходит ШИМ-сигнал, амплитуда которого фактически выше напряжения питания сервы (0 Вольт, выключено). Ну и тоже ток пойдёт как не надо. Короче, соответствующий управляющий выход нужно на время выключения или держать в нуле, или переводить в третье состояние.
Держать его в нуле на момент выключения не получится на ULN, я пойду другим способом, нагрузку подключу на эмиттере (как выше посоветовал elektroget), это самый лучший вариант
Шины питания разные, надо будет ещё транзистор подкинуть. Вот так. А ещё там не эмиттер, а сток. Нижний транзистор почти любой н-п-н. КТ315, BC857, 2n2222 и всё такое.
maksimdag0, а зачем вообще понадобилось отключать питание сервика?
_________________ Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда. Я на гитхабе, в ЖЖ
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 34
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения