Posted  by  admin

Программа Управление Шаговым Двигателем

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

PCBWay изготовление печатных плат. Тема урока: управление шаговым. Управление шаговым двигателем. Янис on в 21:35. Скажите пожалуйста, какой шагогый двигатель можно использовать кроме ST-PM35-15-11C? Мне нужен подобный двигатель который можно было бы купить на аукционе ebaey. Admin on в 21:59.. А вы не помогаете с написанием программы? Дело в том что есть два шаговых мотора, хочу намоточный станок сделать с укладчиком. Не могу понять где копать, так то вроде относительно понятно, не могли бы пример дать? Микроконтроллер использую Atmega16. Алекс on в 00:02. 12 вольт(вплоть до 36) можно и нужно подавать только на 8 ножку микросхемы L293.

  1. Управление шаговым двигателем с ПК. Разместил Muchachos 3 августа 2009. Просмотров: 74 629. Электропривод Микроконтроллеры. Драйвер для шагового двигателя, который управляется с персонального компьютера. Решил продолжить тему с шаговыми двигателями и написать о своей последней разработочке. В общем задача полезна вдвойне.. Теперь я еще приделал два драйвера для ШД ко всей этой системе и написал программу с помощью которой можно управлять этими двумя движками. Схема всего устройства с источником первичного питания для МК. Схема в Dip trace ▼ stend_2_shd.rar ⚖9,53 Kb ⋅ ⇣157.
  2. Драйвер для шагового двигателя. Управление шаговым двигателем. Программа есть.

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

Так что будь готов к тому, что придется городить мощный драйвер на MOSFET транзисторах или затариваться спец микросхемами. Типы шаговых двигателей Если не углубляться во внутреннюю конструкцию, число шагов и прочие тонкости, то с пользовательской точки зрения существует три типа:. Биполярный — имеет четыре выхода, содержит в себе две обмотки.

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

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

Программа Управления Шаговым Двигателем Lpt Порту

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

Программа

Схема управления шаговым двигателем Я разжился контроллерами шаговиков L297 и мощным сдвоенным мостом L298N. Именно на нем был сделан мой первый силовой блок робота. Кроме него там еще два источника питания на 5 и на 3.3 вольта, а также контроллер двух движков на L293 (такой же как и во второй реализации силового блока). В качестве контроллера тогда был выбран АТ89С2051.

Это антикварный контроллер архитектуры MSC-51 в котором из периферии только два таймера, порты да UART, но я его люблю нежно и трепетно, так как первая любовь не проходит никогда =). К сожалению исходники его мега прошивки канули в Лету вместе с убившимся винтом, так что я не могу поделиться теми извращенскими алгоритмами, которые были туда засунуты. А там был и двухканальный ШИМ, и I2C Slave протокол, и контроль за положением шаговика с точным учетом его перемещения. Короче, знатный был проект. Ныне валяется трупом, т.к.

Все лень запустить Keil uVision и написать новую прошивку. Да и ассемблер С51 я стал уже забывать.

Схема включения L298N+L297 до смешного проста — надо тупо соединить их вместе. Они настолько созданы друг для друга, что в даташите на L298N идет прямой отсыл к L297, а в доке на 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+L293, а микруху L6208 которая может и чуть слабей по току, но зато два в одном! Сразу подключай двигатель и работай. Если же их покупать, то на L6208 получается даже чуть дешевле.

Документация по микросхемам:. Post navigation. Это-то я сейчас объясню.

Схема переключения такова: 1-21-2-23-3-31 Сначала напряжение (24В) есть на первой обмотке, потом на двух сразу — на первой и второй, потом только на второй, потом на второй и третьей, потом на третьей и так далее. Диаграммка вот: Обмотка 1: ППП вращение на 360 ППП Обмотка 2: ППП завершено, ППП Обмотка 3: ППП затем снова ППП Вроде бы, эти прямоугольные напряжения надо бы привязать с тактовыми импульсами, т.е. Каждое «П» (символизирующее напряжение) длится 1 такт.

Собрал L298+L297+NE555. Ведет себя странно У меня мотор от принтера, я так понимаю биполярный, 4-ре вывода, звонятся по два. Если подключаю как на схеме, одну обмотку на 2 и 3 выводы L297 а вторую на 13 и 14, то после подачи питания делает пару тройку серий из 5-6-ти «туда-сюда» пошагово и срабатывает защита в блоке питания (импульсник от того же принтера).

Если подключаю первую обмотку 2 и 13 а вторую 3 и 14, то защита не срабатывает, и мотор просто делает поочередно шаг вперед шаг назад непрерывно, с частотой генератора, если попробовать придержать пальцами, упирается, т.е. Шим работает Включены те выводы что на схеме висят в воздухе, следующим образом: CW/CCW — на земле или +5 без разницы CLOCK — импульсы из генератора (присутствуют и регулируются) HALF/FULL — на земле или +5 без разницы RESET — через 10к на +5в ENABLE — +5 или в воздухе без разницы VREF — +5 CONTROL — на земле или +5 без разницы SYNC — в воздухе HOME — в воздухе Где я протупил?

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

В итоге, схема таки зашагала. Но импульсы у меня только на клок.

Остальные все статично стоят. У тебя стоят шунтирующие резисторы там? Которые ток мерят?

Если стоят, то возьми и подай на VREF через потенциометр не +5, а поменьше напряжение. Будет внутреннее токоограничение. Где тов даташите на 298 была формула расчета тока в зависимости от Vref. Срывает так: сначала начинает крутить мелкими сериями в нужную сторону, потом в разные стороны такими же сериями, а потом по шагу туда/сюда Причем поймать нормальную работу непросто, на многооборотном резисторе в пределах буквально полуоборота Я так понимаю что накадывается время включения обмоток друг на друга, а при определенном ограничении тока, двиглу удается преодолевать встречное сопротивление, ну типа резонанс какой-то вот и хочу со скважностью побаловаться.

Проблема еще в том, что мне нужны реально низкие обороты, наиная примерно от 1-2 в минуту и примерно до 100-150, а в текущей ситуации, чем ниже скорось, тем сложнее поймать. Спасибо за софтинки, классные Мне кажется что разгадка содержится вот в этом тексте из даташита: The principal functions are a translator, which generates the motor phase sequences, and a dual PWM chopper circuit which regulates the current in the motor windings. The translator generates three different sequences, selected by the HALF/FULL input. These are normal (two phases energised), wave drive (one phase energised) and half-step (alternately one phase energised/two phases energised). Two inhibit signals are also generated by the L297 in half step and wave drive modes. These signals, which connect directly to the L298’s enable inputs, are intended to speed current decay when a winding is de-energised.

When the L297 is used to drive a unipolar motor the chopper acts on these lines. Я только понял что доступны три режима работы, переключаемые на входе HALF/FULL Предполагаю что 0, 1 и импульсы, как то синхронизированые с клоком И не понял всего остального, включая разницу управления униполярником и биполярником этим драйвером Может растолкуешь? Речь идет о принципе полушагового режима. На каждуй из обмотко подается такое напряжение (ШИМованное) которое задает устойчивое положение между шагами. Как бы каждая из обмоток тянет ротор в свою сторону, но с разной силой. И он встает между положений. Там в даташите график где то был.

А в связке Л298-Л297 этот режим (шимовка входов) может задаваться по разному, в зависимости от входа Контрол. Если он в 0, то шим задается разрешающими сигналами на входах ИНХ1 и ИНХ2. А если в единице (это для связки Л297- что то другое, где нет входов разрешения, только ключи) то шим задается прямо на ногах АБСД. Тебе контрол надо загнать в 0. Собрана двухмодульная схемка, первый модуль -это Mega16+LCD+клавиатура, второй L298+L297+L6210.

Режимы HALF/FULL, CW/CCW задаются с клавиатуры, с меги по шлейфу на L297, генератор clock тоже на базе atmega16. Силовая часть вроде собрана правильно, ШИМ на обмотках работает. L297 соединена с контроллером напрямую через шлейф. Питание обоих модулей от компьютерного ИБП. Вообщем проблема движок пищит, но не шагает, включена только одна обмотка, но стоит коснуться ноги МК отвечающей за тактирование, как включается вторая обмотка, если прижимать к ноге что-нибудь металлическое, то движок шагает в режиме 10 вперед пару назад. Осциллографа под рукой нету, до политеха хз когда доберусь, вообщем может подскажете в чем проблема может быть?

Все входы 297 повесь на +5 через 10к. VREF — поиграй с напругой, очень чуствителен к этому делу. У меня устойчиво заработал примерно на килогерце, но нуждается в пинке при старте Режимы задаются так: HALF — импульсы на CLOCK и 1 на HALF/FULL FULL — импульсы на CLOCK и на HALF/FULL нечетные импульсы WAVE — импульсы на CLOCK и на HALF/FULL четные импульсы Возможно нужна синхронизация остальных сигналов на входах Я это дело пока забросил, т.к. Реально могу организовать только режим HALF(руками) и мне нужна очень низкая скорость(от 2 оборотов в минуту), а писать программы для контроллеров я не умею:( Вот кстати ещё такое вычитал: HOME – сигнал начального положения (ABCD = 0101). Он используется для синхронизации переключения режимов HALF/FULL. В зависимости от момента перехода в полношаговый режим микросхема может работать в режиме с одной включенной фазой или с двумя включенными фазами.

Все заработало почти идеально. На 500гц движок запускается, пока не могу сказать пропускает ли шаги, надо подправить программу в МК, попытка сделать разгон при 12В с 500 Гц до 2000 Гц за 9 шагов оказалась слишком оптимистичной, стопорит намертво, тока в полушаге все же достигает положенных 2000 гц(хотя не факт, что ровно 2000), но шаги где-то теряет. Попробую сделать плавненький разгончик за пару тысяч шагов.

Пока не разобрался что происходит с опорным напряжением, на одном движке после уменьшения тока в фазах резюком, движок начинает пропускать, другой движок крутится и вообще как то странно реагирует на изменение опорника. Кстати схема не хотела работать из-за JTAG, был уверен что отключил его, а он собака был включен, у меня на PORTC как раз все управление движком и висит. К сожалению исходники его мега прошивки канули в Лету вместе с убившимся винтом, так что я не могу поделиться теми извращенскими алгоритмами, которые были туда засунуты. А там был и двухканальный ШИМ, и I2C Slave протокол, и контроль за положением шаговика с точным учетом его перемещения. Короче, знатный был проект. Я новичок в контроллерах, а разве нельзя прошивку скачать и дизассемблировать?

Спасибо за ваши статьи! Благодаря им я разобрался наконец то в электронике. До вас никому не удавалось вбить это в мою голову. Наилучшие пожелания!

Программа Управления Шаговым Двигателем Avr

Обычный асинхронник на 50 Гц с фазосдвигающей обмоткой. Возможно на 127V. (обычно напряжение и потребляемая мощность указаны на табличке). Напряжение подаешь на соединенные вместе пару концов и на один из тех, между которыми конденсатор.

В зависимости от того, к какому из них прицепишь, направление вращения будет разным. В одну сторону может греться сильнее, чем в другую, если обмотки сильно отличаются. Иногда последовательно с конденсатором еще ставили проволочный резистор ом 100-500 ватт 10-25. Хорошая статья. Спасибо за труд. Если можно, то поведайте, пжлст, о настройке драйвера под различные (по мощности) двигатели. Напряжение Vref.

Что оно и для чего. Резисторы SENSE (0.5 Ом) это стандартный номинал? Или ими тоже можно подбирать параметры драйвера. Другими словами как производится настройка драйвера для разных ШД. Вывод CONTROL.

А что нам дает (в данной схеме) изменение варианта задания ШИМ? Или ничего, окромя самого метода? Тогда зачем вообще городить вывод INH1(2)?

Если их вывели, значит это чем то лучше? Всем добрый день! Спасибо Автору за хороший сайт.

Для начинающих очень полезный ресурс =) В раидоэлектронике я новичок, но сделать что-то интересное действительно хочется =) Нашел в DVD шаговый двигатель, определить его модель — не получилось. Судя по портам — он биполярный (4 выхода A, A, B, B на плате помечены). Насколько я понимаю, микроконтроллер управляет биполярником, подавая на разные катушки различные уровни напряжений в различных комбинациях. Правильно ли я понял, что для управления биполярником нужен не только микроконтроллер (например, L6203 вместе со схемой питания — посмотрел в datasheet), но и генератор тактовой частоты с подачей импульсов. Вопрос вот какой: что можно использовать в качестве генератора импульсов (если я не ошибаюсь, это порт CLOCK). У меня с институтских времен остался отчет по курсовику на тему: На языке AHDL и с помощью Graphic Editor, входящих в пакет Altera Max+ Plus II разработать устройство для управления биполярным шаговым двигателем, произвести монтаж платы для усиления сигналов, снимаемых с платы с программируемой логической интегральной микросхемой и на их основе спроектировать драйвер вышеуказанного двигателя. С удовольствием могу поделиться.

Доведете до требуемого вида и выложите для интересующихся. Двигатель там был из трехдюймового дисковода — но пришлось их штук пять перепробовать, пока рабочий попался. Полушагового режима добиться помнится не удалось — это было компенсировано махинацией с частотой. Моя почта dk2k(собака)mail(точка)ru. Отличная статья, очень сильно помогла в выборе микросхемы драйвера.

Только есть один вопрос — решил использовать L6228 (тот же 6208, но в 2 раза слабее). Почитал даташит — HALF/FULL режимы понятны, а MICROSTEPPING как на ней организовать? Сам движок маломощный, но он будет крутить винт микрометра, а значит нужно чтобы он делал как можно более точные шаги и делал этих шагов ровно определенное количество. Есть какие-нибудь рекомендации по подключению этого драйвера? Управлять собираюсь посредсттвом одиночных импульсов с микроконтроллера. Очень прошу отписать в ближайшее время,заранее спасибо.

Программа Управления Шаговым Двигателем Через Lpt

Схема собрана и у знакомого все было гут но запускаю у себя и появляются проблемы при низкой частоте шаговик просто делает пару шагов в одну сторону потом обратно при этом Л298 сильно греетса далее может помогло увеличение частоты- движок перестал от малейшей нагрузки менять направление, крутится туда сюда, он просто крутится в одну сторону при подаче с МК атмега8 сигнала направления движения либо игнорирует его, либо пока стоит одино лог уровень двигается а при ином стоит на месте. Вопрос от чего все эти глюки могут быть и что с этим делать?! Доброго дня суток DI HALT!Я вот разжился тремя моторчиками от принтера,марку принтера не знаю,достался скелет с целенькими моторчиками.Я вот хотел бы один сделать под ручную сверлилку,вторую под небольшой станочек,уже цангу на 3мм прикупил.Но вот беда в том что инфы мало.Значит написано на моторчике (на всех трёх одинаковые): RS-555SH DD555XO7(возможно что 00555XO7) CHINA,и лейбла сильно напоминает Mabuchi. Так вот погуглил даташитов всяких что я не понял к какому мои моторчики относятся,И под какое напряжение с током подключатьи сколько оборотов то крутит,у меня самое большой Блок Питания-это старенький БСП-5 на макс.V-12V макс.А-0.5mA.

И как туда управление оборотов смастрячить можно,на моторчике всего два вывода(один с красным пятном,похоже что это плюс),может что попроще подскажете по регулятору оборотов?Да и кстати вот даташиты,один на другой не похож: 1- (только у меня без дырок на боках) 2- 3- (оборотов сколько-охрен.ть)http://www.gasgoo.com/showroom/antheakinmore/auto-products/1119729.html. Есть очень интересный вопрос. В даташитах на контроллеры шаговиков есть информация, что после включения или сброса шаговик переводится в home position (обычно 45 градусов).

В принципе логично, т.к. Контроллер не запоминает, в каком положении остановился ротор, да и положение ротора могло измениться из-за внешних факторов.

Так вот, я так понимаю, повторяемости просто так не добиться? То есть, например, я «отшагал» 100 шагов по часовой стрелке. Ротор остановился не в home position. Выключил питание. При включении ротор повернется в home position и если я отшагаю 100 шагов против часовой стрелки — я не попаду в ту же позицию, с которой начал? DI HALT помоги пожалуйста разобраться со схемкой L297+L298. DI HALT, знаю тебя как автора познавательных статей, написанных в понятной форме и с чувством юмора и надеюсь, что ты сможешь помочь.

К сожалению, в интернете мало схем по той штуке, которую я хочу сделать. Дано: CD привод, небольшие познания в радиоэлектронике, программировании микроконтроллеров на С (CVAVR). Задача: Управлять скоростью вращения CD привода (отсоединенного от компа) с помощью кнопок. А сама скорость выводится на ЖКИ.

Пока не хватает знаний, к сожалению, для того, чтобы осуществить задуманное. Здравствуйте,прочитал Вашу статью,спасибо, очень познавательно. Как то ранее не приходилось работать с шаговиками,теперь по работе возникла такая необходимость, может Вы подскажите (основываясь на свой опыт),как грамотно организовать управление двумя шаговиками — раздельно? Понимаю что можно тупо спаять 2 канала,на тех микросхемах что Вы описывали,но может что то есть на пиках или авр? Может где встречали схемы? Или ссылку кинете,буду благодарен за помощь!

Сам программы как то не очень получается писать,а вот спаять любую схему и прошить -тут как два пальца. А пока я для начала попробую Вашу схему спаять для одного двигателя,так сказать для опыта, и возник вопрос 1. Куда подключать выход SYNC (L297),и за что он отвечает? Куда подключить выход HOME (L297),и за что он отвечает? С остальными выводами всё ясно,на CLOC что нибудь замучу сам а чем ВЫ управляете этой схемой? Может поделитесь схемой,если конечно она не патентована? Можно на почту заранее спасибо за помощь!