Главная » Arduino
Призовой фонд
на апрель 2017 г.
1. Мультиметр Vici VC97
Паяльник
2. Регулируемый паяльник 60 Вт
Паяльник
3. Тестер компонентов LCR-T4
Паяльник
4. 100 руб.
От пользователей

Управление биполярным шаговым двигателем без использования драйвера

Как-то раз мне захотелось поэксперементировать с шаговыми двигателями. С униполярным двигателем всё очень просто, достаточно полумоста на очень бюджетной микросхеме 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 Микросхемак1533лн11 74als04Поиск в FivelВ блокнот
R1-R8 Резистор
100Ом-1кОм
1 любой мощностиПоиск в FivelВ блокнот
T1-T8 ТранзисторIRF7401 IRF610, IRF630, IRF640, IRF730,Поиск в FivelВ блокнот
Добавить все

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

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

Теги:

Опубликована: 0 0
Я собрал 0 0
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 0 Проголосовало: 0 чел.

Комментарии (8) | Я собрал (0) | Подписаться

0
Публикатор #
На форуме автоматически создана тема для обсуждения статьи.
Ответить
0
Павел #
А интересно схема будет работать или нет, а если и будет то с проблемами. Тут или верхние полевики должны быть P-канальные. А если N-канальные, то управление нужно переделать. Если они и будут открываться то они будут греться. Так как будут не полностью открытые.
Ответить
0
Falconist #
Статья о том, КАК ДЕЛАТЬ НЕЛЬЗЯ ни в коем случае!
Ответить
0

[Автор]
AndrejChoo #
Обожаю конструктивную критику
Ответить
0
RitmLive #
В верхних плечах моста должны применятся либо P канальные полевики, либо N канальные но с волт добавкой в затворах. Для этого нужны драйверы верхнего плеча. Работает у тебя работает но при нормальных нагрузках транзисторы будут не в режиме.
Ответить
0

[Автор]
AndrejChoo #
Спасибо за конструктивный комментарий. Действительно, сначала я хотел поставить мосфеты р и n в разных плечах. Но, плата собиралась из подручного хлама и нужных мосфетов не оказалось. Смысл всей конструкции был в точ, чтобы просто поэкспериментировать с программированием работы шд на ардуино, поэтому высоких токов не требовалось.
Ответить
0
Дмитрий #
У вас не нужных мосфетов не оказалось, а достаточных знаний в области управления ими. Если n-канальные ключи - это
из подручного хлама
, тогда вы неправы. В силовых схемах разработчики отдают предпочтение N-ch полевикам как более эффективным, "сложность в управлении" - туфта. Обязательно поищите про бутстрепное управление верхним ключём - это несложно на дискретных элементах сделать.
Прикрепленный файл: H-мост.GIF
Ответить
0

[Автор]
AndrejChoo #
Вот, к примеру, картинка из даташита на драйвер а4988. Там так же мосфеты с одинаковыми переходами в H-мостах. Так что, возможно не совсем уж моя идея мёртвая.
Прикрепленный файл: A4988.png
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется электрическое сопротивление?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Arduino UNO
Arduino UNO
Конструктор - темброблок на LM1036 iMAX B6 - зарядное для Lion, LiPo, LiFe, Pb, NiCd и NiMH аккумуляторов
вверх