Тёмный

Как переделать сервомотор с 180 на 360 градусов. Tenstar Robot Micro Servo 9g SG90. Проекты Arduino 

Master Kolotushkin Arduino
Подписаться 8 тыс.
Просмотров 11 тыс.
50% 1

Код и схема проекта kolotushkin.co...
Как стать спонсором канала за 1$, чтобы помочь с закупкой расходных материалов, и недостающих инструментов kolotushkin.co...
Проекты на базе Arduino Nano:
Меню для дисплея lcd 1602 • Меню для дисплея lcd 1...
Автоматический привод для шасси квадрокоптера • Автоматический привод ...
Дубликатор домофонных ключей • Дубликатор домофонных ...
Управление двумя униполярными шаговыми моторами по Bluetooth
• Управление двумя унипо...
Самодельный rgb контроллер для 2 rgb лент • Самодельный rgb контро...
В этом видео показываю, как переделать обычный сервомотор 180 градусов, чтобы он вращался по кругу, на все 360 градусов.
Для переделывания понадобится:
Макетная плата, плата Arduino nano, соединительные провода, и конечно же сервомотор на 180 градусов.
У меня есть три сервомотора SG90. В принципе переделать можно любой из них, но я расскажу почему я выбрал сервомотор, именно от компании Tenstar Robot, который в черном корпусе.
Сервомотор который по центру, имеет металлическую ось, с помощью которой вращается потенциометр, тогда как у остальных двух, эта ось пластиковая. Так как в переделку входит укорачивание этой оси, чтобы она не вращала потенциометр, то металл затруднит процесс переделки.
К тому же на шестерне рабочего вала имеется упор, который не дает рабочему валу выполнить полный оборот, а это уже второе препядствие.
Во втором сервомоторе уже видно, что ось которая вращает потенциометр сделана из пластика, это уже хорошо, но здесь как и в первом варианте имеется упор, который не дает рабочему валу выполнить полный оборот. А теперь давайте посмотрим сервомотор, в черном кортусе.
Так как корпус не прозрачный, и упора не видно, то я окуратно повращаю вал сервомотора.
Вал вращается по кругу, значит здесь упор отсутствует.

В скетче имеется три команды, которые отправляются на сервомотор через каждые 5 секунд.
Команды со значениями 180, 90 и 0, воспринимаются 180 градусным сервомотором как, повернуть вал в положение 180 градусов, повернуть вал в положение 90 градусов, и повернуть вал в положение 0 градусов. То есть какое значение указали, на такой угол вал и повернется.
А для сервомотора на 360 градусов, команда со значением 90 должна останавливать вращение вала.
Команда со значением от 89 до 0, это вращение вала по часовой стрелке, где 0 это максимальная скорость вращения.
Команда со значением от 91 до 180, это вращение вала против часовой стрелки, где 180 это тоже максимальная скорость вращения.
И так, загружаю скетч, и подключаю сервомотор к Arduino nano, как показано на первой схеме.
Если у вас более мощный сервомотор, и он потребляет более 500 миллиампер, то его следует подключать через отдельный понижающий преобразователь. На пример Mini 360, который имеет регулировку напряжения от 4,75 вольта до 23 вольт, и выдерживает нагрузку до 1,8 ампера.
Если напряжение источника питания и сервомотора совпадают, то его можно подключить на прямую к источнику питания, как показано на третьей схеме.
Обратите внимание, что при старте сервомотора происходит скачек в потреблении тока, и при использовании слишком тонких проводов, или слабого блока питания, сервомотор может работать не корректно.
Собираю и подключаю питание. Стало ясно что сервомотор исправен, и он на 180 градусов.
Теперь надо загрузить скетч, для настройки сервомотора. Это тот же скетч что и для теста, только перед загрузкой надо закоментировать три строки кода, остается только одна команда, по которой сервомотор должен останавливаться.

После снятия нижней крышки виден моторчик и плата с контроллером, который принимает команды от Arduino, и управляет моторчиком.
Необходимо вытащить эту плату и потенциометр который под ней.
Затем снова собираю по первой схеме. Сервомотор получает команду об остановке, и при этом вал вращается.
Надо с помощью отвертки выставить потенциометр в такое положение, чтобы вал перестал вращаться. Затем необходимо зафиксировать его каким то густым клеем, чтобы потенциометр не провернулся при установке обратно.
Далее надо укоротить пластиковую ось, которая вращала потенциометр.
Так как я поленился разобрать редуктор, а пространство вокруг оси ограничено корпусом, то было решено подплавить ось паяльником.
Прокручу вал чтобы убедиться, не припаялся ли он к корпусу, и можно все собирать.
Если у вас в момент сборки, потенциометр провернется и вал начнет вращаться, то разбирать сервомотор, и заново настраивать потенциометр не обязательно.
Это можно решить программно, используя для остановки значение, не 90 а 89 или 91. Какое именно значение, зависит от того, в какую сторону провернулся потенциометр.
Снова загружаю тестовый скетч, раскоментировав три строки.
И проверяю.
Теперь сервомотор, вместо поворота вала на определенный градус, сервомотор выполняет остановку, и вращение в обе стороны.
#arduinoprojects #servo #arduino

Опубликовано:

 

2 окт 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 43   
@Граниистины-у3ш
@Граниистины-у3ш 4 года назад
Лайк за ролик 👍👍👍
@ZugDuk
@ZugDuk 11 месяцев назад
Ненужный кал, потому что нет контроля угла поворота. Вот если бы от 0 до 360 и с контролем угла, вот это было бы круто.
@Megavolt.
@Megavolt. 11 месяцев назад
не пойму... Объясните пожалуйста, А какая радость в такой переделке? Вся прелесть сервомотора в том что можно выставить нужный угол, при чём независимо от начального положения. А тупо крутить можно любым мотором. Ну или поворачивать на определённый угол или число оборотов шаговым мотором.
@invektumlory859
@invektumlory859 5 месяцев назад
это по сути готовый редуктор с мотором и драйвером. Куда его? В разные миниматюрные РУ модели или к примеру, на 360 градусов используються в РУ яхтах. очень полезная переделка
@slavake
@slavake 8 месяцев назад
Очень тупо , серву испортил .
@Mura905
@Mura905 4 года назад
В каком смысле? Так это же уже не сервомотор, он теряет способность передвижения на заданный угол! Почитайте определение сервомотора.
@Mura905
@Mura905 4 года назад
@@m_kolotushkin Правильно, а после Вашей переделки Мы уже не имеем в составе указанный датчик, так как в работе он больше не участвует.
@Mura905
@Mura905 4 года назад
@@m_kolotushkin Да и вправду замечательное решение, просто сервомотором это уже не назовёшь, потому и спросил. А так спасибо за идею!
@ferarae0.083
@ferarae0.083 3 года назад
@@Mura905 можно энкодера от мыши туда запустить ,или расщитать за какое время какой градус проходит качалка, и путем подачи шим в нужное время и отключения сигнала все должно работать по идее...
@14types
@14types 2 года назад
@@ferarae0.083 ага, а при нагрузке все показатели меняются в зависимости от нагрузки
@over_lord418
@over_lord418 2 года назад
@@ferarae0.083 о классная идея.
@СергейАлександрович-к7ш
проще наверно отпаять потенциометр и не ипать мозг при установке нулевого значения его показаний. нет потенциометра- нет показаний
@electronic7979
@electronic7979 4 года назад
Super 👍
@СергейКибальников-ы1п
Для чего нужен сервомотор на 360* где его можно применить
@bipkin
@bipkin 4 года назад
Можно вертить все на %#& на все 360)))))
@СергейКибальников-ы1п
@@bipkin ну крутить на 360 можно и без серво!))
@quad_alex
@quad_alex 3 года назад
Спасибо! ролик очень помог!
@bipkin
@bipkin 4 года назад
Привет. Сделай плиз самые маленькие часы на arduino nano. Хочу такие, но мозгов не хватает
@АрманАубакиров-и5ц
Здравствуйте, подскажите вот все сделал, все работает. Но не могу остановит, значения 89 и 91 не помогают ваще никакие не помогают что длеать
@Prolupa
@Prolupa 3 года назад
Попались 3шт из восьми без резистора и постоянно сервик крутиться что делать?
@cxzvr3972
@cxzvr3972 3 года назад
Ребят посоветуйте пожалуйста, купил серво моторчик как в ролике (чёрный корпус), в итоге мне нужно что бы он вертелся на заданные углы, но он почему то вертится только на 140-160 градусов, а мне нужно на 180,может как то программно решить или разобрать и что то там сделать....
@m_kolotushkin
@m_kolotushkin 3 года назад
С таким не сталкивался, скорее всего он бракованный и проще купить новый, он ведь не дорогой, а этот может в другом месте пригодится где не требуется поворот на 180 градусов
@14types
@14types 2 года назад
При таком моддинге можно будет крутить серво на определенное количество оборотов, например, 10000?
@stanlsla_ru
@stanlsla_ru Год назад
Нет. Только шаговый мотор
@_karens4_
@_karens4_ Год назад
Регулировка скорости также остаётся??
@white_volf
@white_volf 3 года назад
То есть серводвигатель переделывается в обычный DC с редуктором? А в чем прикол? Если нет обратной связи по углу поворота?
@ferarae0.083
@ferarae0.083 3 года назад
Счтай время и угол или энкодер от мыши в помощь
@overburndz
@overburndz 2 года назад
@@ferarae0.083 так ему не нужно было поворачивать на угол, нужно вращение в определенную сторону и остановка по команде write(90)
@ПетяПушкин
@ПетяПушкин 3 года назад
Доброго времени суток, собираю манипулятор на сервоприводах постоянного вращения, от чего ваше видео ОЧЕНЬ помогло. Каждую серву подключаю к шестерне (увеличить крутящий момент), но у меня проблема, при нажатии, серва постоянно крутится без остановки, а в идеале она должна крутится во время нажатия. Шестью сервами управляю через матричную клавиатуру, и возникла загвостка в скечте, #include #include Servo servo1; Servo servo2; const byte ROWS = 4; //four rows const byte COLS = 4; //four columns //define the cymbols on the buttons of the keypads char hexaKeys[ROWS][COLS] = { {'0','1','2','3'}, {'4','5','6','7'}, {'8','9','A','B'}, {'C','D','E','F'} }; byte rowPins[ROWS] = {3, 2, 8, 0}; //connect to the row pinouts of the keypad byte colPins[COLS] = {7, 6, 5, 4}; //connect to the column pinouts of the keypad //initialize an instance of class NewKeypad Keypad customKeypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS); int n1=0; int n2=0; void setup(){ Serial.begin(9600); servo1.attach(11); //привязываем привод к порту 11 servo2.attach(9); //привязываем привод к порту 9 } void loop(){ servo1.write(n1); //ставим вал под 0 servo2.write(n2); //ставим вал под 0 char key = customKeypad.getKey(); if (key == '1') { n1 = n1 + 45; if (n1 > 180) { n1 = 0; } } else if (key == '2') { n1 = n1 - 45; if (n1 < 0) { n1=180; } } else if (key == '3') { n1 = n1 + 90; if (n1 > 180) { n1=0; } } else if (key == '4') { n2 = n2 + 90; if (n2 > 180) { n2 = 0; } } else if (key == '5') { n2 = n2 - 90; if (n2 < 0) { n2=180; } } else if (key == '6') { n2 = n2 + 90; if (n2 > 180) { n2=0; } } } Скетч не доработан конечно, но на проверку уже видны недочёты, конкретно в этом месте: else if (key == '4') { n2 = n2 + 90; if (n2 > 180) { n2 = 0; } } else if (key == '5') { n2 = n2 - 90; if (n2 < 0) { n2=180; } как нужно прописать, чтобы серва вращалась пока кнопка зажата, а не всё время после нажатия?
@ПетяПушкин
@ПетяПушкин 3 года назад
@@m_kolotushkin спасибо попробую, и я не только посмотрю, для общего развития все видео, и конечно подпишусь на ваш канал, как источник полезной информации для меня.
@ferarae0.083
@ferarae0.083 3 года назад
Никак если вырезать обратную связь у сервы а это делается путем неиспользования 3 пина или выковыриванием потенциометра
@over_lord418
@over_lord418 2 года назад
пасибо я все понял
@vanjagodachii5071
@vanjagodachii5071 3 года назад
Хотел спросить на такой переделке уже нельзя будет составлять угол какой мне нужен?
@m_kolotushkin
@m_kolotushkin 3 года назад
Нет! В таком варианте контролируется только скорость вращения и направление вращения!
@m_kolotushkin
@m_kolotushkin 3 года назад
Для контроля угла при круговом вращении сервопривод надо дополнять энкодером! Как правило промышленные сервоприводы уже имеют все, но цена за них "ёмае" да и у ардуинки тактовой частоты недостаточно для управления таким сервоприводом, надо что-то по серьезней брать.
@vanjagodachii5071
@vanjagodachii5071 3 года назад
@@m_kolotushkin ок,спасибо
@zhorik_93
@zhorik_93 Год назад
СПАСИБО
@ЛадаПриора-ю6ч
@ЛадаПриора-ю6ч 3 года назад
какая маркировка построечного резистора?
@overburndz
@overburndz 2 года назад
5кОм
@Mariia-b4m
@Mariia-b4m 2 года назад
Дякую за пораду. Але в мене питання: я не зовсім зрозуміла наскільки ви скоротили той пластиковий стержень. І чи можно попросити вас біль детального пояснення про підкрутку потенціалметру
@m_kolotushkin
@m_kolotushkin 2 года назад
Доброго дня! Той пластиковий стержень видалено повністю, аби він не заважав обертанню шестерні. Що до потенціометра, то під яким кутом він буде, той кут і буде для нього командою для зупинки, та відповідно значення в більшу сторону будуть обертати вал по годинниковій стрілці, а значення в меншу сторону будуть обертати вал проти годинниковой стрілки.
@Mariia-b4m
@Mariia-b4m 2 года назад
@@m_kolotushkin Щиро дякую вам за відповідь
Далее
PID Balance+Ball | full explanation & tuning
13:13
Просмотров 746 тыс.
сервопривод на 360 градусов
13:28
Просмотров 4,8 тыс.
How To Make Robots Move Smoothly | Arduino Tutorial
12:28
Arduino lessons - Servo control by arduino
11:17
Просмотров 854 тыс.
Сервопривод и Ардуино
12:58
DIY Gear cutting machine | Arduino based project
12:05