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

แชร์
ฝัง
  • เผยแพร่เมื่อ 6 มี.ค. 2020
  • Код и схема проекта kolotushkin.com/article.php?i...
    Как стать спонсором канала за 1$, чтобы помочь с закупкой расходных материалов, и недостающих инструментов kolotushkin.com/ads.php
    Проекты на базе 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
  • วิทยาศาสตร์และเทคโนโลยี

ความคิดเห็น • 43

  • @alex_fpv8289
    @alex_fpv8289 3 ปีที่แล้ว +1

    Спасибо! ролик очень помог!

  • @user-rd8jt3jq1d
    @user-rd8jt3jq1d 4 ปีที่แล้ว +1

    Лайк за ролик 👍👍👍

  • @electronic7979
    @electronic7979 4 ปีที่แล้ว +1

    Super 👍

  • @zhorik_93
    @zhorik_93 9 หลายเดือนก่อน

    СПАСИБО

  • @over_lord418
    @over_lord418 ปีที่แล้ว

    пасибо я все понял

  • @KaR2697
    @KaR2697 ปีที่แล้ว

    Регулировка скорости также остаётся??

  • @user-zm9cd5nq9g
    @user-zm9cd5nq9g 2 ปีที่แล้ว

    Попались 3шт из восьми без резистора и постоянно сервик крутиться что делать?

  • @14types
    @14types 2 ปีที่แล้ว

    При таком моддинге можно будет крутить серво на определенное количество оборотов, например, 10000?

    • @user-gk5ow5ls1g
      @user-gk5ow5ls1g ปีที่แล้ว

      Нет. Только шаговый мотор

  • @user-pq5hh8xm8u
    @user-pq5hh8xm8u ปีที่แล้ว

    Здравствуйте, подскажите вот все сделал, все работает. Но не могу остановит, значения 89 и 91 не помогают ваще никакие не помогают что длеать

  • @Megavolt.
    @Megavolt. 6 หลายเดือนก่อน +2

    не пойму... Объясните пожалуйста, А какая радость в такой переделке? Вся прелесть сервомотора в том что можно выставить нужный угол, при чём независимо от начального положения. А тупо крутить можно любым мотором. Ну или поворачивать на определённый угол или число оборотов шаговым мотором.

    • @invektumlory859
      @invektumlory859 24 วันที่ผ่านมา

      это по сути готовый редуктор с мотором и драйвером. Куда его? В разные миниматюрные РУ модели или к примеру, на 360 градусов используються в РУ яхтах.
      очень полезная переделка

  • @cxzvr3972
    @cxzvr3972 3 ปีที่แล้ว

    Ребят посоветуйте пожалуйста, купил серво моторчик как в ролике (чёрный корпус), в итоге мне нужно что бы он вертелся на заданные углы, но он почему то вертится только на 140-160 градусов, а мне нужно на 180,может как то программно решить или разобрать и что то там сделать....

    • @m_kolotushkin
      @m_kolotushkin  3 ปีที่แล้ว +1

      С таким не сталкивался, скорее всего он бракованный и проще купить новый, он ведь не дорогой, а этот может в другом месте пригодится где не требуется поворот на 180 градусов

  • @vanjagodachii5071
    @vanjagodachii5071 3 ปีที่แล้ว

    Хотел спросить на такой переделке уже нельзя будет составлять угол какой мне нужен?

    • @m_kolotushkin
      @m_kolotushkin  3 ปีที่แล้ว

      Нет! В таком варианте контролируется только скорость вращения и направление вращения!

    • @m_kolotushkin
      @m_kolotushkin  3 ปีที่แล้ว

      Для контроля угла при круговом вращении сервопривод надо дополнять энкодером!
      Как правило промышленные сервоприводы уже имеют все, но цена за них "ёмае" да и у ардуинки тактовой частоты недостаточно для управления таким сервоприводом, надо что-то по серьезней брать.

    • @vanjagodachii5071
      @vanjagodachii5071 3 ปีที่แล้ว

      @@m_kolotushkin ок,спасибо

  • @user-ri4cc7vs4k
    @user-ri4cc7vs4k 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; }
    как нужно прописать, чтобы серва вращалась пока кнопка зажата, а не всё время после нажатия?

    • @user-ri4cc7vs4k
      @user-ri4cc7vs4k 3 ปีที่แล้ว

      @@m_kolotushkin спасибо попробую, и я не только посмотрю, для общего развития все видео, и конечно подпишусь на ваш канал, как источник полезной информации для меня.

    • @ferarae0.083
      @ferarae0.083 3 ปีที่แล้ว

      Никак если вырезать обратную связь у сервы а это делается путем неиспользования 3 пина или выковыриванием потенциометра

  • @white_volf
    @white_volf 3 ปีที่แล้ว

    То есть серводвигатель переделывается в обычный DC с редуктором? А в чем прикол? Если нет обратной связи по углу поворота?

    • @ferarae0.083
      @ferarae0.083 3 ปีที่แล้ว

      Счтай время и угол или энкодер от мыши в помощь

    • @overburndz
      @overburndz 2 ปีที่แล้ว

      @@ferarae0.083 так ему не нужно было поворачивать на угол, нужно вращение в определенную сторону и остановка по команде write(90)

  • @user-qg7bd4tt5l
    @user-qg7bd4tt5l 2 ปีที่แล้ว

    какая маркировка построечного резистора?

  • @user-id4ct1wb7b
    @user-id4ct1wb7b 4 ปีที่แล้ว +2

    Для чего нужен сервомотор на 360* где его можно применить

    • @beebeepko
      @beebeepko 4 ปีที่แล้ว +4

      Можно вертить все на %#& на все 360)))))

    • @user-id4ct1wb7b
      @user-id4ct1wb7b 4 ปีที่แล้ว

      @@beebeepko ну крутить на 360 можно и без серво!))

  • @user-nz6cy2hm8z
    @user-nz6cy2hm8z ปีที่แล้ว

    Дякую за пораду. Але в мене питання: я не зовсім зрозуміла наскільки ви скоротили той пластиковий стержень. І чи можно попросити вас біль детального пояснення про підкрутку потенціалметру

    • @m_kolotushkin
      @m_kolotushkin  ปีที่แล้ว

      Доброго дня!
      Той пластиковий стержень видалено повністю, аби він не заважав обертанню шестерні.
      Що до потенціометра, то під яким кутом він буде, той кут і буде для нього командою для зупинки, та відповідно значення в більшу сторону будуть обертати вал по годинниковій стрілці, а значення в меншу сторону будуть обертати вал проти годинниковой стрілки.

    • @user-nz6cy2hm8z
      @user-nz6cy2hm8z ปีที่แล้ว

      @@m_kolotushkin Щиро дякую вам за відповідь

  • @user-sc8dw6pm6p
    @user-sc8dw6pm6p ปีที่แล้ว

    проще наверно отпаять потенциометр и не ипать мозг при установке нулевого значения его показаний. нет потенциометра- нет показаний

  • @ZugDuk
    @ZugDuk 6 หลายเดือนก่อน +1

    Ненужный кал, потому что нет контроля угла поворота. Вот если бы от 0 до 360 и с контролем угла, вот это было бы круто.

  • @beebeepko
    @beebeepko 4 ปีที่แล้ว

    Привет. Сделай плиз самые маленькие часы на arduino nano.
    Хочу такие, но мозгов не хватает

  • @Mura905
    @Mura905 3 ปีที่แล้ว +2

    В каком смысле? Так это же уже не сервомотор, он теряет способность передвижения на заданный угол! Почитайте определение сервомотора.

    • @Mura905
      @Mura905 3 ปีที่แล้ว

      @@m_kolotushkin Правильно, а после Вашей переделки Мы уже не имеем в составе указанный датчик, так как в работе он больше не участвует.

    • @Mura905
      @Mura905 3 ปีที่แล้ว

      @@m_kolotushkin Да и вправду замечательное решение, просто сервомотором это уже не назовёшь, потому и спросил. А так спасибо за идею!

    • @ferarae0.083
      @ferarae0.083 3 ปีที่แล้ว

      @@Mura905 можно энкодера от мыши туда запустить ,или расщитать за какое время какой градус проходит качалка, и путем подачи шим в нужное время и отключения сигнала все должно работать по идее...

    • @14types
      @14types 2 ปีที่แล้ว

      @@ferarae0.083 ага, а при нагрузке все показатели меняются в зависимости от нагрузки

    • @over_lord418
      @over_lord418 ปีที่แล้ว

      @@ferarae0.083 о классная идея.

  • @slavake
    @slavake 3 หลายเดือนก่อน

    Очень тупо , серву испортил .