Taxitaxitaxi.ru

Эволюшн
5 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Драйвер шагового двигателя и двигателя постоянного тока L298N и Arduino

Драйвер шагового двигателя и двигателя постоянного тока L298N и Arduino

Модуль L298N H-bridge можно использовать для двигателей, напряжение питания которых находится в диапазоне от 5 до 35 вольт.

Кроме того, на многих подобных платах есть встроенный 5В регулятор, который дает возможность запитывать ваши устройства.

Подключение модуля L298N

Прежде чем перейти к управлению двигателем постоянного тока и шаговым двигателем, разберемся с подключением модуля L298N (даташит, техническая информация от производителя).

Ниже приведены разъяснения к рисунку.

  1. Для двигателя постоянного тока 1 “+” или для шагового двигателя A+
  2. Для двигателя постоянного тока 1 “-” или для шагового двигателя A-
  3. Коннектор на 12 вольт. Снимите его, если используете напряжение питания больше 12 вольт.
  4. Питания вашего двигателя обеспечивается с этого выхода. Максимальное напряжение питания постоянным током 35 вольт. Если напряжение больше 12 вольт, разомкните контакты на 3 коннекторе.
  5. GND — земля.
  6. Питание 5 вольт, если коннектор на 12 вольт замкнут. Идеально для питания Arduino и т.п.
  7. Коннектор для двигателя постоянного тока 1. Можно подключить к ШИМ-выходу для управления скоростью двигателя постоянного тока.
  8. IN1.
  9. IN2.
  10. IN3.
  11. IN4.
  12. Коннектор для двигателя постоянного тока 2. В случае использования шагового двигателя, подключать сюда ничего не надо. Можно подключить к ШИМ-выходу для управления скоростью двигателя постоянного тока.
  13. Двигатель постоянного тока 2 “+” или шаговый двигатель B+.
  14. Двигатель постоянного тока 2 “-” или шаговый двигатель B-.

L298N, Arduino и двигатель постоянного тока

Данный модуль дает возможность управлять одним или двумя двигателями постоянного тока. Для начала, подключите двигатели к пинам A и B на контроллере L298N.

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

После этого подключите источник питания. Плюс — к четвертому пину на L298N, минус (GND) — к 5 пину. Если ваш источник питания до 12 вольт, коннектор, отмеченный 3 на рисунке выше, можно оставить. При этом будет возможность использовать 5 вольтовый пин 6 с модуля.

Данный пин можно использовать для питания Arduino. При этом не забудьте подключить пин GND с микроконтроллера к 5 пину на L298N для замыкания цепи. Теперь вам понадобится 6 цифровых пинов на Arduino. Причем некоторые пины должны поддерживать ШИМ-модуляцию.

ШИМ-пины обозначены знаком “

” рядом с порядковым номером.

Теперь подключите цифровые пины Arduino к драйверу. В нашем примере два двигателя постоянного тока, так что цифровые пины D9, D8, D7 и D6 будут подключены к пинам IN1, IN2, IN3 и IN4 соответственно. После этого подключите пин D10 к пину 7 на L298N (предварительно убрав коннектор) и D5 к пину 12 (опять таки, убрав коннектор).

Направление вращения ротора двигателя управляется сигналами HIGH или LOW на каждый привод (или канал). Например, для первого мотора, HIGH на IN1 и LOW на IN2 обеспечит вращение в одном направлении, а LOW и HIGH заставит вращаться в противоположную сторону.

При этом двигатели не будут вращаться, пока не будет сигнала HIGH на пине 7 для первого двигателя или на 12 пине для второго. Остановить их вращение можно подачей сигнала LOW на те же указанные выше пины. Для управления скоростью вращения используется ШИМ-сигнал.

Скетч приведенный ниже, отрабатывает в соответствии со схемой подключения, которую мы рассматривали выше. Двигатели постоянного тока и Arduino питаются от внешнего источника питания.

Простой драйвер шагового двигателя

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

Читайте так же:
Как отрегулировать клапана на гольф 2 дизель

Схема драйвера шагового двигателя

Простой драйвер шагового двигателя

Схема драйвера шагового двигателя не содержит дорогих деталей и программируемых контроллеров. Работа может регулироваться в широком диапазоне с помощью потенциометра PR1. Есть изменение направления вращения двигателя. Катушки шагового двигателя переключаются с помощью четырех МОП-транзисторов T1-T4. Применение в блоке транзисторов большой мощности типа BUZ10 позволит подключить двигатели даже с очень большим током.

Особенности схемы и детали

  • управление четырехфазным шаговым двигателем
  • плавная регулировка скорости вращения в пределах всего диапазона
  • изменение направления вращения мотора
  • возможная остановка двигателя
  • блок питания 12 В постоянного тока

Детали — IC1: 4070, IC2: 4093, IC3: 4027, T1-T4: BUZ10, BUZ11

Простой драйвер шагового двигателя

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

Простой драйвер шагового двигателя

Блок, собранный из проверенных компонентов, не требует настройки и запускается сразу после подачи питания. Со значениями элементов, указанными на схеме, позволяет работать двигателю 5,25” и выполняет изменение скорости вращения в интервале от 40 об./мин. до 5 об./мин.

Простой драйвер шагового двигателя

Биполярный контроллер шаговых двигателей

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

Простой драйвер шагового двигателя

Простой драйвер шагового двигателя

Принципиальную схему можно разделить на следующие блоки:

  1. последовательный чип, генерирующий битовые строки,
  2. локальный генератор тактового сигнала,
  3. схема управления питанием катушек,
  4. выходные буферы Н-моста,
  5. схемы защиты входных сигналов управления.

Контроллер должен питаться постоянным напряжением, хорошо отфильтрованным, желательно стабилизированным.

Простой драйвер шагового двигателя

Теперь пару слов про H-мосты, которые будут работать с этим драйвером. Они должны принимать на своих входах все возможные логические состояния (00, 01, 10, 11), без риска какого-либо повреждения. Просто в некоторых конфигурациях мостов построенных из дискретных элементов, запрещается одновременное включение двух входов — их естественно нельзя использовать с этим контроллером. Мосты выполненные в виде интегральных микросхем (например L293, L298), устойчивы к этому.

Простой драйвер шагового двигателя

И в завершение третий вариант контроллера, на микросхемах STK672-440, имеющий все необходимые защиты и функции смотрите по ссылке.

Подключение шагового двигателя. Контроллер L298

Мы подключили к нашему контроллеру обычные двигетели постоянного тока. С их помощью можно, например двигать мобильную платформу на колесном или гусеничном ходу или совершать простейшие действия (типа открытия двери или поднятия штор). Вот только регулировать вращение этих двигателей можно только подавая на них определенное напряжение. И если мы, например, подадим 100% мощности на одну секунду, мы не можем быть уверены, что за это время двигатель повернет вал, например, на 100 оборотов. Ведь нагрузка может меняться, а соотвтетственно и скорость вращения при той-же заданной мощности. В случае визуального управления роботом это не проблема – увидел, что робот проехал нужную дистанцию – подал команду на остановку. Но мы веть хоти создавать именно автоматические устройства, которые не будут ребовать посоянного внимания. Тут есть несколько вариантов:

Можно применять специальные датчика (энкодеры), которые будут говрить контроллеру сколько именно совершил оборотов совершил вал двигателя. Тогда контроллер сам будет останавливать двигатель после нужного количества оборотов, независимо от меняющейся нагрузки. Так мы сможем быть уверены, что наш робот совершил нужное перемещение. Именно так устроены классические сервоприводы – в них в качестве датчика выступает поворотный потенциометр (именно он ограничивает угол поворота) Вот только у такого способа еть свои недостатки – мы все равно можем управлять только мощностью и временем отключения питания. И управлять оборотами мы можем не очень точно – двигатель то мы отключили, но он ведь может еще некоторое время вращаться по инерции. А для высокоскоростных двигателей за время реакции контроллера вал может совершить несколько лишних оборотов.

Читайте так же:
Акпп 4f27e регулировка тормозной ленты

Если же нам нужно обеспечить более точное управление двигателем, чтобы он делал точное количество оборотов или даже долей оборота – тогда нам нужно применять шаговые двигатели. С их помощью можно совершать очень точные движения, ведь вращение вала контролируется с точностью до нескольких градусов. Благодаря этому можно использвоать такие двигатели для точныз перемещений – в станках с ЧПУ, 3D принтерах и там, где возможностей сервоприводов недостаточно.

В отличие от сервопривода, в котором используется обычный двигатель постоянного тока, пусть с дополнительным датчиком, шаговый двигатель изначально построен по другой схеме. У него не одна обмотка, а несколько независимых обмоток. Причем обмотки расположены параллельно ротору, но под углом друг к другу. Подача тока на одну из обмоток заставляет ротор поворачиваться на небольщой угол и останвоиться. Если теперь выключить ток на первой обмотке, и подать на следующую – ротор повренется еще на долю оборота. А чередование аодачи напряжения между обмотками заставит ротор вращаться, причем в зависимости от частоты это будет выглядеть или как скачкообразный поворот вала двигателя на определенный угол, или как непрерывное вращение (в случае большой частоты переключения обмоток). Причем здесь мы контроллируем не только мощность но и точную частоту вращения. И можем задать точный угол поворота двигателя и отановить точно на определенном угле поворота.

В отличие от традиционного двигателя постоянного тока, шаговый двигатель обычно имеет от четырех до шести проводов для подключения. Если проводов четыре – перед нами биполярынй двигатель. Два провода подключены к одной обмотке, два – к другой. Схема подключения биполярного шагового двигателя к контроллеру на базе L298

Если же проводов шесть – это униполярыный двигатель. По два провода подключены к концам каждой обмотки и по одному – в ее середине. Эти провода подключается к заземлению. Схема подключения униполярного шагового двигателя к контроллеру на базе L298

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

Схема подключения униполярного шагового двигателя к контроллеру на базе L298 как биполярного

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

Конечно мы можем вручную написать код, который с определенным интервалом будет чередовать подачу тока на обмотки и таким образом обеспечить управление нашим двигателем. Но этот код давно уже написан и входит в стандартную сборку Arduino IDE, просто подключим библиотеку Stepper командой #include . Теперь создадим объект типа stepper и укажем, к каким именно пинам подключены наши обмотки. Для этого нам нужно указать еще одну характеристику шагового двигателя – количество шагов для одного оборота вала. Стандартыне двигатели, которые проще всего приобрести, обычно имеют точность позиционирования 1,8° или 3.6°. Этот угол соответствует значению одного шага, соответственно для одного оборота нужно будет совершить, соответственно, 200 и 100 шагов. Пусть наш двигетель обладет точностью 200 шагов на оборот:

Поскольку при управлении шаговым двигателем используется только наличие или отсутствие тока на обмотках, то нам нет необходимости в подключении выходов с ШИМ регулированием. Достаточно использовать только пины I1 и I2 . Логическая единица на выводе будет соотвтетствовать подаче номинального напряжения на один конец обмотки и нулевого – на другой. Логический ноль — номинальное напряжение на втором конец обмотки и нулевого на первом. Таким образом каждая из двух обмоток управляется одним цифровым выходом.

Читайте так же:
Регулировка карбюратора скутера априлия

Также контроллер двигателя может иметь независимое управление каждым выходом (т.е. когда для управления одной парой выводов используется три цифровых выхода – два обычных для независимого управления каждым выходом и один ШИМ для регулирования значения подаваемого напряжения). Здесь мы полностью независимо указываем, какое напряжение (высокое или низкое) подавать на каждый из концов обмотки, т.е каждая из двух обмоток управляется с помощью двух цифровых выводов

Схема подключения такого типа контроллера двигателя:

Схема подключения униполярного шагового двигателя к контроллеру на базе L298 с двумя пинами для управления одной обмоткой

И в том, и в другом случае на каждую обмотку будет подпапться ток на время, достаточное для совершения валом одного шага. Затем ток с первой обмотки убирается, а подается на вторую (для следующего шага), или ток подается на обе обмотки (для остановки вала в текущем положении) или же тока с обеих обмоток будет снят (для свободного вращения вала) Частота таких переключений будет регулировать скорость вращения. Для изменения частоты служит метод Stepper.setSpeed(int speed); который устанавливает для нашего шагового двигателя определенную скорость вращения (в оборотах в минуту). При этом при вызове этого метода двигатель не начнет вращаться с указанной скоростью – мы только устанавливаем скорость. Для движения необходимо использовать метод Stepper.step(int steps); , который подает команду двигателю сделать steps шагов со скоростью, установленной командой setSpeed . Пример использования для двигателя, подключенного к 4 и 7 пинам:

После загрузки на контрорллер, подключенный к нему двигатель сделает пол оборота со скоростью 60 об/мин (1 об/сек, т.е. на пол оборота ему понадобится 0.5 секунды), остановится на одну секунду, затем с той-же скоростью провернется на пол оборота в обратном направлении.

Нужно уситывать, что мы здесь не можем напрямую влиять на скорость вращения – только на частоту шагов. И если для средних и больших скоростей вращения это не так важно, то при малых значениях скорости будет хорошо заметно прерывистое вращение вала. Например, при установленной скорости 1 оборот в минуту вал двигателя не будет медленно вращаться со скоростью 6 градусов в секунду. Он максимально быстро повернется на 1,8 градуса, затем остановится на треть секунды мс, затем повернется еще на 1,8 градуса, и т.д. Для средних скоростей такое прерывистое значение будет не так заметно, зато хорошо слышны частые щелчки (с частотой переключения обмоток). Поэтому в тех случаях, где нужно медленное и плавное движение, использовать шаговые двигатели напрямую не получится – нужно будет добавлять понижающий редуктор или использовать традиционные двигатели постоянного тока.

Управление шаговым двигателем

Шаговый двигатель это, как понятно из его названия, двигатель который вращается дискретными перемещениями . Достигается это за счет хитрой формы ротора и двух (реже четырех) обмоток. В результате чего, путем чередования направления напряжения в обмотках можно добиться того, что ротор будет по очереди занимать фиксированные значения.
В среднем, у шагового двигателя на один оборот вала, приходится около ста шагов. Но это сильно зависит от модели двигателя, а также от его конструкции. Кроме того, существуют полушаговый и микрошаговый режим , когда на обмотки двигателя подают ШИМованное напряжение, заставляющее ротор встать между шагами в равновесном состоянии, которое поддерживается разным уровнем напряжения на обмотках. Эти ухищрения резко улучшают точность, скорость и бесшумность работы, но снижается момент и сильно увеличивается сложность управляющей программы — надо ведь расчитывать напряжения для каждого шага.

Один из недостатков шаговиков, по крайней мере для меня, это довольно большой ток. Так как на обмотки напруга подается все время, а такого явления как противоЭДС в нем, в отличии от коллекторных двигателей, не наблюдается, то, по сути дела, мы нагружаемся на активное сопротивление обмоток, а оно невелико. Так что будь готов к тому, что придется городить мощный драйвер на MOSFET транзисторах или затариваться спец микросхемами.

Читайте так же:
Регулировка привода шнуровой автоматической двери

  • Биполярный — имеет четыре выхода, содержит в себе две обмотки.
  • Униполярный — имеет шесть выходов. Содержит в себе две обмотки, но каждая обмотка имеет отвод из середины.
  • Четырехобмоточный — имеет четыре независимые обмотки. По сути дела представляет собой тот же униполярник, только обмотки его разделены. Вживую не встречал, только в книжках.

Где взять шаговый двигатель.
Вообще шаговики встречаются много где. Самое хлебное место — пятидюймовые дисководы и старые матричные принтеры . Еще ими можно поживиться в древних винчестерах на 40Мб, если, конечно, рука поднимется покалечить такой антиквариат.
А вот в трехдюймовых флопарях нас ждет облом — дело в том, что там шаговик весьма ущербной конструкции — у него только один задний подшипник, а передним концом вал упирается в подшипник закрепленный на раме дисковода. Так что юзать его можно только в родном креплении. Либо городить высокоточную крепежную конструкцию. Впрочем, тебе может повезет и ты найдешь нетипичный флопарь с полноценным движком.

Схема управления шаговым двигателем
Я разжился контроллерами шаговиков L297 и мощным сдвоенным мостом L298N.

  • На вход CW/CCW подаем направление вращения — 0 в одну сторону, 1 — в другую.
  • на вход CLOCK — импульсы. Один импульс — один шаг.
  • вход HALF/FULL задает режим работы — полный шаг/полушаг
  • RESET сбрасывает драйвер в дефолтное состояние ABCD=0101.
  • CONTROL определяет каким образом задается ШИМ, если он в нуле, то ШИМ образуется посредством выходов разрешения INH1 и INH2 , а если 1 то через выходы на драйвер ABCD. Это может пригодится, если вместо L298 у которой есть куда подключать входы разрешения INH1/INH2 будет либо самодельный мост на транзисторах, либо какая-либо другая микросхема.
  • На вход Vref надо подать напряжение с потенциометра, которое будет определять максимальную перегрузочную способность. Подашь 5 вольт — будер работать на пределе, а в случае перегрузки сгорит L298 , подашь меньше — при предельном токе просто заглохнет. Я вначале тупо загнал туда питание, но потом передумал и поставил подстроечный резистор — защита все же полезная вещь, плохо будет если драйвер L298 сгорит.
    Если же на защиту пофигу, то можешь заодно и резисторы, висящие на выходе sense выкинуть нафиг. Это токовые шунты, с них L297 узнает какой ток течет через драйвер L298 и решает сдохнет он и пора отрубать или еще протянет. Там нужны резисторы помощней, учитывая что ток через драйвер может достигать 4А, то при рекомендуемом сопротивлении в 0.5 Ом, будет падение напряжения порядка 2 вольт, а значит выделяемая моща будет около 4*2=8 Вт — для резистора огого! Я поставил двухваттные, но у меня и шаговик был мелкий, не способный схавать 4 ампера.

  • Управляющий контроллер L297
  • Силовой мост L298N
  • Силовой мост L293
  • Управляющий контроллер с интегрированным силовым мостом L6208
  • Сводная таблица микросхем управления шаговыми двигателями

Спасибо. Вы потрясающие! Всего за месяц мы собрали нужную сумму в 500000 на хоккейную коробку для детского дома Аистенок. Из которых 125000+ было от вас, читателей EasyElectronics. Были даже переводы на 25000+ и просто поток платежей на 251 рубль. Это невероятно круто. Сейчас идет заключение договора и подготовка к строительству!

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

201 thoughts on “Управление шаговым двигателем”

А можешь посоветовать шаговик из тех, которые сейчас можно купить?
Я не знаю как у всех, но я д аже двухдюймовые флопики повыкидывал лет пять назад, а 5-ти дюймовых и в помине не было.

По продаваемым не в курсе. В нашей деревне их в продаже нету, а что там в Московии я даже не знаю.

Оппа, теперь самое время разбираться, что за шаговики у меня имеются по результатам годового потрошения CD-DVD ROM’ов. 🙂

А в сидюках/дивдюках вроде бы стоят обычные коллекторники+синхронный на шпиндель. Хотя могут быть и шаговики, но я не встречал ни разу.

Шаговики во многих CD/DVD приводах стоят — для таскания каретки с лазером (у меня минимум 3 таких экземпляра валяются). Но конструкция двигателя — как в трехдюймовых дисководах, для практического применения неудачная.

ну когда я расотрошил сиди ром там был безколлекторник + еще какойто на шпиндель
для безколлекторника я думаю применение в моделизме
http://forum.rcdesign.ru/index.php?showtopic=12183&st=560
может пригодится кому

http://forum.rcdesign.ru/index.php?showtopic=12183&st=560
может чем пригодится там модельный регултор хода
может управлять сдромным безколлекторником

работал с шаговыми движками на своей фирме.
ещё с нашими совеццкими и руссийскими.

сколько раз коротыш верещал на источниках — не счесть ) единственное оправдание — я про них ещё тогда ничего не знал и доков не имел. работал методом тыка…

всё хорошо, но нету обратной связи.

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

. в смысле от постоянных замыкани? Как ты умудрялся его коротнуть? Одновременным замыканием ключей верхнего и нижнего плеча? Так там Dead Time надо ставить!

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

Долгая подача напруги на обмотки это его нормальный рабочий режим. Главное чтобы напряжение было номинальным.

Полезно, спасибо. Мне в свое время довелось раскурочить 8″ дисковод. Два шаговика лежат дожидаются своего часа. Так, что информация может пригодиться.

У меня этих дисководов полтора десятка штук!

Есть интересная статья по использованию шаговых двигателей
Журнал Современная электроника Октябрь 2004 г. стр. 46-47
Автор: Олег Пушкарев, Омск, конструкция на базе PIC16F84 и
драйвера — ULN2003A. (WWW.SOEL.RU)
Журнал очень рульный, советую почитать, статьи высылают
по почте, по запросу или подписка (в том числе бесплатная).

Еще одна задача — управление двигателем
постоянного тока на 24 в (12В), реверс,
управление скоростью. Есть буржуйская схема,
но без регулятора, могу тиснуть, схема из
стриммера, реверс-технология схемы.

кто знаком с драйвером шины ULN2804a b ULN2004a , какая разници между ними.

Кажется, один для КМОП, другой — для ТТЛ. Схема отличается только номиналом сопротивления от входного штырька до базы транзистора. В одном случае — 10ком (для КМОП), в другом — кажется, 1,5 ком, точно не помню. Ну, и входные уровни соответственно разные. В остальном — одинаково. Я сам года три назад выбирал, какие брать. А использую все же чаще ULN2003 (привычка, чтоли)…

У меня есть движок от древнего лазерного принтера. Двигатель фирмы CANON PM60-H418Z21B можно ли запустить таку вещь? Торчат из него по 3 провода с каждой обмотки. P.S. С шаговиками я делов не имел пока, но очень интересно.

Думаю без проблем. Судя по признакам это униполярный двигатель. Так что определяй где у него середина обмотки и дальше как я описал. Тока замерь сопротивление, чтобы узнать максимальный ток.

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector