как подключить шд к ардуино уно через мотор шилд

Тема в разделе "Схемотехника, компоненты, модули", создана пользователем qwenya77, 9 ноя 2013.

  1. Alex19

    Alex19 Гуру

    По ссылке норм, извиняюсь, иногда бывает в РБ.
    Порой я часами на амперку зайти не могу.

    Да дело в подключении на микросхеме L293D, мотор 42STH47-0406A заработал раза в 2 сильнее, чем на шилдах. Буду читать.

    Связка любой мой шилд, что новый, что старый работают с 42STH47-0406A.
    А вот с моими старыми моторчиками crouzet ни как, ни один из шильдов.
    Они прекрасно на L293D работают.

    У меня нет точной документации по ним, им лет 20. Они 2 фазные биполярные, вольтаж скорее 12В, 5W и 7,5W (2 типа мотора), с углом 7,5. По подключению 4 провода, 2 синих, 2 белых. Напротив них римские II напротив белых, I на против синих. Позвонка обмоток сказала, что цифры не имеют отношение к обмоткам. Обмотка белый - синий.

    Просто на них есть великолепные стальные редуктора и надежность у них просто фантастическая. Использовались для закрытия гидравлических клапанов в маленьких ТПА.

    Надо прерваться, быт, сегодня выходной.
     
  2. fr0ster

    fr0ster Гик

    Насчет L293 я и не сомневался.
    А насчет шилдов, то по старому можно из схемы понять, что там не в самом оптимальном режиме моторы запускаются. По новому похоже то же самое, но причину без схемы не выяснить.
     
  3. Alex19

    Alex19 Гуру

    Проверял мощность, уж слишком показалась слабой. И за одно подключение.

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

    Получается, что все эти шилды для ш.д. игрушки.
    И по уму надо паять, травить, ой как не хочется. Тем более надо еще узнать смогу ли я это сделать, тут надо получать красивые:) изделия, надо почитать.

    Эх жаль, что мне не пришли A4988 + двигателей 17HS4401N.
    По A4988 Renat очень хорошо отзывался.

    Ну все равно, как разгребусь, придется заказывать A4988, другие двигателя и Gecko. Тогда смогу провести сравнение, хотя бы на глаз:).
     
  4. Megakoteyka

    Megakoteyka Оракул

    Травить сможете, даже у меня с первого раза все получилось красиво - ровные дорожки толщиной 0,5мм :)
    Лазерный принтер, глянцевый журнал и утюг спасут отца русской демократии.
    Купите персульфат аммония и делайте все по инструкции на баночке - будет супер.
     
  5. fr0ster

    fr0ster Гик

    Эти шилды не то что бы игрушки, просто они специализированны.
    Вот к примеру шилд от DFRobot. На странице описан ваш шилд и упомянуто два режима управления шаговым мотором. А тот шилд что в амперке надо еще посмотреть. Жалко схемы нет.
     
  6. Alex19

    Alex19 Гуру

    Да я видел, процесс и участвовал в нем, но вот результат не помню.
    Посмотрел на схемы в книге которую мне рекомендовал fr0ster.
    Если еще подключение моторов понятно, то вот схемы темный лес. Да и паяльник держал пару раз в жизни.

    А человек который обычно мне помогает паять, обычно подключается только в готовый проект.
    И его кредо, зачем, когда можно купить:). Поэтому надо самому подключатся.

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

    Не могу найти управление шаговым мотором, там 2 режима управление обычными - supports PWM and PLL. О шаговых ни слова, думал, что она вообще не поддерживает ш.д.
     
  7. fr0ster

    fr0ster Гик

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

    Вообще склоняюсь, что Stepper не для руления через шилд, похоже, что библиотека и шилды функционально пересекаются в определенной степени. Такое впечатление, что Stepper рассчитан на прямое управление обмотками шаговика и мостовая схема ему лишь как тупой посредник нужна, большую часть возможностей того же L298/L293 он не использует, управляет шаговиком самым простым способом.
    Шилд же, во всяком случае тот, чью схему видел, а это DFRobot`ский на L298 и на L293 и Arduino`вский на L298 кажется, они универсальны и с простым управлением, но тоже за счет урезания возможностей мостовой ИС. Там выбран некий режим управления, при котором можно и шаговиком и обычным моторчиком рулить без усложнения.

    Одним словом что Stepper+L298 на макетке, что шилд, дают гарантию, что вы получите рабочую схему, но не гарантируют получение максимальной производительности.
     
  8. Unixon

    Unixon Оракул

    На моторшилде Амперки соответствие пинов следующее:
    L298P - Arduino
    (7) IN1 = D4
    (8) ENA = D5
    (9) IN2 = !D4
    (13) IN3 = D7
    (14) ENB = D6
    (15) IN4 = !D7
     
    Alex19 нравится это.
  9. Alex19

    Alex19 Гуру

    Это примерно понимаю.

    Надо посмотреть как там включаются обмотки.

    Скорее всего вы правы. Этой библиотеке надо просто усилитель, а что это будет не важно или L298/L293 или Н-мост.

    Вот код от Stepper

    Код (Text):

          case 0:    // 1010
          digitalWrite(motor_pin_1, HIGH);
          digitalWrite(motor_pin_2, LOW);
          digitalWrite(motor_pin_3, HIGH);
          digitalWrite(motor_pin_4, LOW);
          break;
          case 1:    // 0110
          digitalWrite(motor_pin_1, LOW);
          digitalWrite(motor_pin_2, HIGH);
          digitalWrite(motor_pin_3, HIGH);
          digitalWrite(motor_pin_4, LOW);
          break;
          case 2:    //0101
          digitalWrite(motor_pin_1, LOW);
          digitalWrite(motor_pin_2, HIGH);
          digitalWrite(motor_pin_3, LOW);
          digitalWrite(motor_pin_4, HIGH);
          break;
          case 3:    //1001
          digitalWrite(motor_pin_1, HIGH);
          digitalWrite(motor_pin_2, LOW);
          digitalWrite(motor_pin_3, LOW);
          digitalWrite(motor_pin_4, HIGH);
          break;
     
     
  10. Alex19

    Alex19 Гуру

    А в начале библиотеки, такая запись

    Код (Text):

    The sequence of control signals for 4 control wires is as follows:

      Step C0 C1 C2 C3
        1  1  0  1  0
        2  0  1  1  0
        3  0  1  0  1
        4  1  0  0  1

      The sequence of controls signals for 2 control wires is as follows
      (columns C1 and C2 from above):

      Step C0 C1
        1  0  1
        2  1  1
        3  1  0
        4  0  0

      The circuits can be found at
     
    По сути он так и работает.

    Вечером попробую проверить режим PLL в шильде DFRobot и библиотеку AccelStepper . И гляну книгу, как там указана работа с обмотками, может смогу допилить библиотеку.
     
  11. Alex19

    Alex19 Гуру

    Нет я конечно не идеализировал ардуину, но чтобы все было так сыро. Хотя я может просто много хочу от любительской электроники.
     
  12. fr0ster

    fr0ster Гик

    Тогда выходит следующее.
    1 Под управлением шилда мотор может работать только в обычном режиме.
    2 В обычном режиме следует
    2.1 Пины D5 и D6 держать в HIGH.
    2.2 Последовательность уровней на D4 - D7 такая соответственно.
    D4 - 0 - 1 - 1 - 0
    D5 - 1 - 1 - 1 - 1
    D6 - 1 - 1 - 1 - 1
    D7 - 1 - 0 - 1 - 1
     
  13. Unixon

    Unixon Оракул

    Что вы имеете ввиду под словом "сыро"? У вас есть совершенно исправная плата с мостовым драйвером, к которому вы можете подключить разные типы двигателей. Принцип "включил - заработало" хорош для узко специализированных устройств, в которых совершенно не оставлено никакой свободы действий. Здесь же наоборот, зарезервирована некоторая гибкость решения, которая допускает возможность сделать что-то неправильно. Дело не в любительской электронике, а в менее узкой специализации, чем некоторым, возможно, хотелось бы.
     
  14. fr0ster

    fr0ster Гик

    Шилда как раз не сыра и рассчитана на неопытных пользователей.
    L298 как мостовую схему при определенных условиях и спалить можно.
    В шилде так не выйдет, там одно плечо выключилось, второе после включилось, через время срабатывания инвертора.
     
  15. Alex19

    Alex19 Гуру

    Режим PLL ни чего не дал.

    Поменял в библиотеке, но кажется, что-то тут не так, как не синхронно подключение.

    Код (Text):
     
    if (this->pin_count == 4) {
        switch (thisStep) {
          case 0:    // 1010
          digitalWrite(motor_pin_1, LOW);
          digitalWrite(motor_pin_2, HIGH);
          digitalWrite(motor_pin_3, HIGH);
          digitalWrite(motor_pin_4, HIGH);
          break;
          case 1:    // 0110
          digitalWrite(motor_pin_1, HIGH);
          digitalWrite(motor_pin_2, HIGH);
          digitalWrite(motor_pin_3, HIGH);
          digitalWrite(motor_pin_4, LOW);
          break;
          case 2:    //0101
          digitalWrite(motor_pin_1, HIGH);
          digitalWrite(motor_pin_2, HIGH);
          digitalWrite(motor_pin_3, HIGH);
          digitalWrite(motor_pin_4, HIGH);
          break;
          case 3:    //1001
          digitalWrite(motor_pin_1, LOW);
          digitalWrite(motor_pin_2, HIGH);
          digitalWrite(motor_pin_3, HIGH);
          digitalWrite(motor_pin_4, HIGH);
          break;
        }
      }
     
    Сейчас посмотрю книгу, почитаю как должны переключатся обмотки.
    Библиотеку AccelStepper, пока не смог подключить.
     
  16. Alex19

    Alex19 Гуру

    Попробовал этот код

    Код (Text):

    int motorPin1 = 4;
    int motorPin2 = 5;
    int motorPin3 = 6;
    int motorPin4 = 7;
    int delayTime = 6;

    void setup() {
    pinMode(motorPin1, OUTPUT);
    pinMode(motorPin2, OUTPUT);
    pinMode(motorPin3, OUTPUT);
    pinMode(motorPin4, OUTPUT);
    }

    void loop() {
    digitalWrite(motorPin1, HIGH);
    digitalWrite(motorPin2, HIGH);
    digitalWrite(motorPin3, LOW);
    digitalWrite(motorPin4, LOW);
    delay(delayTime);
    digitalWrite(motorPin1, LOW);
    digitalWrite(motorPin2, LOW);
    digitalWrite(motorPin3,HIGH );
    digitalWrite(motorPin4, HIGH);
    delay(delayTime);
    digitalWrite(motorPin1,LOW);
    digitalWrite(motorPin2, HIGH);
    digitalWrite(motorPin3, LOW);
    digitalWrite(motorPin4, LOW);
    delay(delayTime);
    digitalWrite(motorPin1, LOW);
    digitalWrite(motorPin2, LOW);
    digitalWrite(motorPin3,HIGH);
    digitalWrite(motorPin4, LOW);
    delay(delayTime);
    }
     
    От Renat из-за любопытства, вот, что он писал

    У меня все одинаково.

    Возможно, любые универсальные решения всегда хуже, специальных. Просто, наверно накипело:).
     
  17. Alex19

    Alex19 Гуру

    Пока решил, остановится.
    Большое спасибо всем кто откликнулся Megakoteyka, fr0ster,
    Unixon.

    Надеюсь ни кого не забыл, еще раз всем большое спасибо!
     
  18. vitaly

    vitaly Нуб

    Очень полезная для меня тема оказалась. Буквально за один вечер удалось заставить двигатель вращаться то в одну, то в другую сторону. А ещё сутки назад я ардуино и в глаза не видел, как и другие микроконтроллеры. Огромное спасибо участникам форума за кучу полезных ссылок и советов...
    Но у меня образовалась пара вопросов. Если кто поможет, буду премного благодарен.
    1) Можно ли уменьшить вибрацию у шагового двигателя, или это его особенность и тут ничего не поделать?
    2) Где в Москве купить недорогой обвес (редуктор, рамку для крепления, шестерёнки, ремни и т.п.)?

    Заранее спасибо.
     
  19. fr0ster

    fr0ster Гик

    Вибрация или звон шаговика возникает на определенных оборотах у шаговика, попробуйте изменить скорость вращения.
     
  20. vitaly

    vitaly Нуб

    Со скоростью поигрался - да, немного вибрацию убрать можно, но всё равно остаётся...
    вот тут 400 - это кол-во шагов? Оно указывается фиксированно для конкретной модели или можно меняя эту циферку сделать движение более гладким?

    Stepper motor = Stepper(400, 4, 6, 5, 7);

    собственно скорость менял тут:
    motor.setSpeed(20);