DC моторы

Тема в разделе "Посоветуйте детальки", создана пользователем OOM, 12 фев 2017.

  1. OOM

    OOM Нерд

    Всем доброго! Подскажите пожалуйста какой нужен драйвер для двигателя GW7085, напряжение 12 В, непрерывный ток 6А, Фото прилагаю. Очень нужно
     

    Вложения:

    • GW7085.jpg
      GW7085.jpg
      Размер файла:
      95,5 КБ
      Просмотров:
      898
  2. vvr

    vvr Инженерище

  3. rkit

    rkit Гуру

    Недостаточно. Защитный диод обязателен.
     
  4. rkit

    rkit Гуру

    Дешевле просто реле на два переключателя, если ШИМ не нужен.
     
  5. vvr

    vvr Инженерище

    а я про обвязку транзистора ничего и не писал))))
     
  6. rkit

    rkit Гуру

    Это обвязка мотора.
     
  7. OOM

    OOM Нерд

    Спасибо большое.
    У меня таких два двигателя, будут использоваться для перемещения гусеничной тележки, вес примерно 50 - 60 кг. Движение вперед, назад и повороты. Использовал драйвер 2.0-30А, но к сожалению я его спалил. Подключал по следующей схеме.
    Программа для управления
    Код (C++):

    #define D1 2          // Направление вращение левого двигателя (motora)
    #define M1 3          // ШИМ вывод для управления левым двигателем
    #define D2 4          // Направление вращение правого двигателя (motorb)
    #define M2 5          // ШИМ вывод для управления правым двигателем

    int PinX = A0;         // Направление вращение правого двигателя (motorb)
    int ValX;
    int PinY = A1;          // ШИМ вывод для управления правым двигателем
    int ValY;

    int joystickX = 0;
    int joystickY = 0;

    byte PWMlm = 0;//текущее значение ШИМ левого колеса
    byte PWMrm = 0;//текущее значение ШИМ правого колеса

    void setup()
    {

       Serial.begin(57600);
      //инициализация моторов
       pinMode(D1, OUTPUT);
       pinMode(M1, OUTPUT);
       pinMode(D2, OUTPUT);
       pinMode(M2, OUTPUT);

       digitalWrite(D1,LOW);
       digitalWrite(M1,LOW);
       digitalWrite(D2,LOW);
       digitalWrite(M2,LOW);
    }
    void loop()
    {

      int ValX = analogRead(PinX);
      int ValY = analogRead(PinY);
        // принимаем отклонение джойстика по осям и мапируем в нужные отрезок для ШИМ
         joystickX = map(ValX,0,1024,-255,255); // 0, 1023, -250, 250
         joystickY = map(ValY,0,1024,-255,255);
     
       //изначально ШИМ в режиме "полного хода"
       PWMlm = PWMrm = 250;

       //если джойстик отклонился по оси Y
       //значит нужно ехать веперед или назад
       if(abs(joystickY)>10){//убираем шум

           PWMlm = PWMrm = abs(joystickY);
           //если джойстик отклонен по оси X пробуем поварачивать
           //путем остановки соответствующего колеса
           if(abs(joystickX)>10){
             if(joystickX>0)
               PWMrm = 0;
             else
               PWMlm = 0;
           }
     
           if(joystickY > 0)
              moveForward();//едем вперед
             else
             moveBackward();//едем назад
          }
         else
           stopMoving();//если джойстик не отклонен по оси Y - остановка

       
     
          Serial.print(joystickX);
          Serial.print("\t");
          Serial.print(joystickY);
          Serial.println("\t");
    }


       //движение вперед
    void moveForward(){
         digitalWrite(D1,HIGH);
         digitalWrite(D2,HIGH);
         analogWrite(M1,PWMlm);
         analogWrite(M2,PWMrm);
    }
    //движение назад
    void moveBackward(){
         digitalWrite(D1,LOW);
         digitalWrite(D2,LOW);
         analogWrite(M1,PWMlm);
         analogWrite(M2,PWMrm);      
    }
    //поворот через правое колесо
    void turnRight(){
         digitalWrite(D1,HIGH);
         digitalWrite(D2,HIGH);
         analogWrite(M1,PWMlm);  
         digitalWrite(M2,200);  //200
    }
    //поворот через левое колесо
    void turnLeft(){
         digitalWrite(D1,HIGH);
         digitalWrite(D2,HIGH);
         digitalWrite(M1,200); //200
         analogWrite(M2,PWMrm);
    }
    //остановка
    void stopMoving(){
         digitalWrite(D1,LOW);
         digitalWrite(M1,LOW);
         digitalWrite(D2,LOW);
         digitalWrite(M2,LOW);  
    }

     
     
    Напряжение подавал 12 В от АКБ 6СТ-75 (установлена на платформе)
    Почему сгорел драйвер не могу понять.
    Если не трудно подскажите по Вашему драйверу: схема подключения и программный код.
     

    Вложения:

    Последнее редактирование: 12 фев 2017
  8. OOM

    OOM Нерд

    Схема подключения
     

    Вложения:

  9. rkit

    rkit Гуру

    Да и с ШИМ можно, как-то так.
     

    Вложения:

  10. OOM

    OOM Нерд

    Проверил работу моторов по отдельности без нагрузки. Питание моторов от АКБ 6СТ-75, через повышающий модуль (ПМ), для контроля напряжения подключен цыфровой вольтметр.

    Моторы по отдельности вращаются стабильно, напряжение показывает 12 В., моторы не греются.

    Подключаю паралельно два мотора ("+" моторов к "+" ПМ, "-" моторов к "-" ПМ) напряжение резко падает до 9,34В, и один мотор нагревается. Попробовал ПМ увеличить напряжение, напряжение не меняется, остается на прежнем уровне 9,34В. Отключил мотор, второй мотор набрал напряжение 12В.

    После отключил второй и подключил первый напряжение 9,34В. Минуты через 3-4 подключил снова первый мотор, напряжение 12В. Подключаю второй мотор, напряжение падает до 9,34В.

    Разобрал мотор который греется. Снял кожух с магнитами запахло горелым, хотя горелого внутри ни чего нет.

    На "+" и "_" стоят кондеры H2J102J.
    Вопрос почему падает напряжение, греется мотор и что, я делаю не так.
     

    Вложения:

  11. mcureenab

    mcureenab Гуру

    Проверьте сопротивление обмоток. Может быть внутри замыкание.
    Вал свободно вращается?
     
  12. OOM

    OOM Нерд

    Да вал вращается свободно
     
  13. OOM

    OOM Нерд

    Сопротивление обмоток проверил, все вроде бы нормально, на всех выходах одинаковых значения
     
  14. mcureenab

    mcureenab Гуру

    Какое, если не секрет? И какое на исправном моторе. Для чистоты эксперимента, если замер делать на выводах мотора, то следует провернуть вал, чтобы разные обмотки коммутировались.
     
  15. OOM

    OOM Нерд

    На мультиметре 0,05 на всех выводах. Второй еще не разбирал
     
  16. mcureenab

    mcureenab Гуру

    12 Вольт / 6 Ампер = 2 Ом.
     
  17. OOM

    OOM Нерд

    И что это значит? Подскажите пожалуйста.
     
  18. mcureenab

    mcureenab Гуру

    А 0.05 что значит?
     
  19. mcureenab

    mcureenab Гуру

    Примерное сопротивление обмоток, которое можно ожидать от исправного мотора. Как видим, это единицы Ом.
    Мотор не надо разбирать. На клеммах измерьте сопротивление одного мотора и другого.
     
  20. OOM

    OOM Нерд

    На одном моторе 8 Ом на втором 7 Ом