Закрыть ... [X]

Ардуино и шаговый двигатель uln2003


Как-то раз мне захотелось поэксперементировать с шаговыми двигателями. С униполярным двигателем всё очень просто, достаточно полумоста на очень бюджетной микросхеме ULN2003 или ULN2803. А вот с биполярным двигателем всё гораздо сложнее. Он имеет минимум две обмотки, на каждом конце которых полярность питания должна меняться на противоположную. Кто-то скажет "зачем изобретать велосипед? Купи драйвер на L239 и радуйся жизни", может быть это и правильно, но мы же не ищем лёгких путей, да и что-нибудь спаять руки чешутся (а драйверы были куплены, просто они ещё ехали из Китая). Немного покопавшись в интернете, я заинтересовался такой штукой, как H-мост.

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

Так как у биполярного двигателя две обмотки, то нам понадобится два H-моста. Тогда для управления двумя мостами у нас получается восемь управляющих проводов (на затворы каждого транзистора). Это очень неудобно, потому что, во первых, нужно много проводов цеплять к управляющему микроконтроллеру, а во вторых, если подать управляющий сигнал одновременно на верхний и на нижний транзисторы одного плеча моста, то мы получим короткое замыкание и просто сожжём два транзистора. Поэтому я решил сделать одну хитрость: затворы нижних транзисторов каждого плеча (они у нас коммутируют минус к обмотке мотора) необходимо подключить через инвертор (в данном случае логический элемент "не"), а затворы верхних транзисторов - на вход того же инвертора. Таким образом мы получаем уже четыре управляющих сигнала (A, B, C ,D).

В итоге, если мы подаём на любую линию управления логическую единицу (ТТЛ), то у нас откроется верхний транзистор плеча, а на затвор нижнего пойдёт логический нуль и он будет закрыт. А если подать на ту же линию логический нуль , то верхний транзистор будет закрыт, а на затвор нижнего будет подана логическая единица (с выхода инвертора), и конец обмотки будет подключён к минусу. С теорией покончено.

Теперь подключаем нашу схему к arduino (или просто микроконтроллеру): линии A,B,C,D - к любому свободному пину, так же же подключаем минус и плюс 5 вольт от платы контроллера. Сами мосты запитываем от отдельного блока питания (у меня был не стабилизированный на 15 вольт). 

Осталось написать программу управления

Будем управлять двигателем в полушаговом режиме (8 шажков). В моей программе написаны три функции: forward - будет крутить двигатель в одну сторону, backward - в обратную, stope - остановка. Функции запускаются с помощью терминала путём отправки символов (f,b и s соответственно). Переменная dl служит для управления скоростью вращения двигателя. Так как программа выполняется по кругу, то двигатель вращается постоянно. По аналогии можно добавить подпрограммы для одного шага или нужного количества шагов.

Внешний вид готового устройства:

Как видно из фотографии, мосты собраны из разных транзисторов (в верхних плечах пары ceb703al и 76129s выпаянные из старых материнок, в нижних плечах irf640  и irf610), так как восемь одинаковых у меня просто не было. Тем не менее схема вполне работоспособна. Так же на фото заметна пара "соплей" - перемычек - как всегда ошибки при рисовании платы.

И в конце статьи - демонстрационное видео работы устройства.

Список радиоэлементов

Обозначение Тип Номинал Количество Примечание Магазин Мой блокнот IC1 R1-R8 T1-T8
Микросхема к1533лн1 1 74als04 Поиск в Fivel В блокнот
Резистор

100Ом-1кОм

1 любой мощности Поиск в Fivel В блокнот
Транзистор IRF740 1 IRF610, IRF630, IRF640, IRF730, Поиск в Fivel В блокнот
Добавить все

Скачать список элементов (PDF)

Прикрепленные файлы:

Теги:


Поделись с друзьями



Рекомендуем посмотреть ещё:



Самодельные ЧПУ станки МозгоЧины Материалы на основе органических вяжу


Ардуино и шаговый двигатель uln2003 ARDUINO недорого в Москве
Ардуино и шаговый двигатель uln2003 100 супер-идей плетения длинных волос / Все для женщины
Ардуино и шаговый двигатель uln2003 Cached
Ардуино и шаговый двигатель uln2003 Microsin - AVR-USB-MEGA 16: управление шаговым двигателем
Ардуино и шаговый двигатель uln2003
Ардуино и шаговый двигатель uln2003 Блоки управления шаговыми двигателями : Контроллер SMSD -4.2
Ардуино и шаговый двигатель uln2003 Браширование дерева с обжигом, мастер-класс. Обсуждение на
Ардуино и шаговый двигатель uln2003 Видео урок для начинающих - вышиваем крестиком
Ардуино и шаговый двигатель uln2003 Декупаж в России - Просмотр темы - Старение древесины. Форум



ШОКИРУЮЩИЕ НОВОСТИ