Не запускается бесколлекторный мотор (решено с ответами)

Тема в разделе "Моторы, сервоприводы, робототехника", создана пользователем ostrov, 24 авг 2016.

  1. ostrov

    ostrov Гуру

    Есть вот такой мотор. Такой регулятор. И даже такой программатор регулятора.

    Подключил программатор, он параметры видит, дает менять и записывает. Все собрал, включил - не работает. Проверил, подключил и настроил схему согласно вот этому описанию. Ноль реакции, на выходах регулятора вообще никакого движения.

    Нашел вот эту статью, сделал как там говорится включая установку начальной позиции в 1,5 мс. Нет результата. Сижу думаю, что я делаю не так? Может быть у кого есть соображения на этот счет?

    В качестве источника питания использую лабораторный блок питания. Устанавливаю 11В.
     
  2. ostrov

    ostrov Гуру

    Уф, кажись разобрался, закрутилось! Немного до ума доведу и расскажу в рамках дележа опыта, может быть кому то пригодится.

    Появятся другие вопросы, в частности как устроить реверс не меняя провода местами и вообще как внутренние настройки влияют на результат. Так что если кто тут собаку на бесколлекторных моторах съел, не таитесь!
     
    Последнее редактирование: 24 авг 2016
  3. vvr

    vvr Инженерище

    управляете как сервой постоянного вращения
     
  4. ostrov

    ostrov Гуру

    Не совсем. Для того чтобы было пропорционально указываю не в градусах, а в микросекундах. Как выяснилось, минимальное продолжительность импульса, которое можно задать при инициализации сервы - 1000мкс, если указывать больше, то получается %1000, то есть 1600, при котором начинается вращение оказывается где то на 80 градусах, что не хорошо. Кроме того, есть куча настроек в самом регуляторе. И, что самое странное, направление вращение программно менять надо именно через настройки, параметр 10, который вообще программатором не показывается. То есть надо как то умудряться его перешивать на ходу.
     
  5. ostrov

    ostrov Гуру

    В общем, если нужен реверс, то делаем так. Мотор подключается к регулятору, в котором при помощи программатора, либо при помощи кнопки (что гемор еще тот), выставляем первый параметр в положение 3. После чего программно управляем направлением и скоростью вращения двигателя. При этой установке импульс 1500 мс является как бы нулевым (мотор стоит), 1000 - максимальная скорость в одну сторону, 2000 - максимальная скорость в другую. Не забываем, что максимальная скорость в реверсе регулируется в параметре 6, для 100% нужно выбрать позицию 4.

    Простой пример регулировки через потенциометр:
    Код (C++):
    #include <Servo.h>

    Servo esc;
    int throttlePin = A0;

    void setup()
    {
      esc.attach(8);
    }

    void loop()
    {
      int throttle = analogRead(throttlePin);
      //int throttle_esc = map(throttle, 0, 1024, 1500, 2010); // в одну сторону
      int throttle_esc = map(throttle, 0, 1024, 1000, 2001); // ревес (1500 - стоп)
      esc.writeMicroseconds(throttle_esc);
    }
    Видео (смотреть со звуком):

     
    ИгорьК нравится это.