Ветров Роман. 9.04.2007. (vetrovroman на маил.ру)
Использование шаговых
двигателей
(управление шаговыми
двигателями с помощью компьютера)
В данной статье описан один из наиболее простых методов подключения
нескольких шаговых двигателей к компьютеру через порт LPT, и алгоритм управления
двигателями.
По сравнению с обычными двигателями постоянного тока, шаговые двигатели
требуют значительно более сложных схем управления, которые должны
выполнять все коммутации обмоток при работе двигателя.
В зависимости от конфигурации обмоток двигатели делятся на биполярные и
униполярные. Для управления биполярным двигателем требуется
более сложный драйвер. Драйвер – так называется силовая часть
электросхемы управления шаговым двигателем, не путать с программным
драйвером.
Наиболее полно описание видов шаговых двигателей изложено в статье
http://www.telesys.ru/indexold.shtml.
Я, в своих экспериментах использовал шаговые двигатели от
5,25-дюймов дисководов. В основном в дисководах попадаются
двигатели с сопротивлением обмоток 70 Ом. и напряжением питания 12В.
Всю электрическую схему можно разбить на две части: контроллер (буфер)
и драйвер см. рис.1.
Разработанный мной контроллер может обслуживать до 16 шаговых
двигателей, он собран на трех микросхемах 555TM7.
Схема
контроллера изображена на рис.2.
Контроллер подключается к LPT.
Привожу назначение выводов разъема порта LPT.
выв.
|
Название
|
Направление
|
Описание
|
1
|
STROBE
|
ввод
и вывод
|
устанавливается
PC после завершения каждой передачи
данных
|
2/9
|
DO-D7
|
вывод
|
8
линий данных
|
10
|
АСК
|
ввод
|
устанавливается
в "0" внешним устройством после приема байта
|
11
|
BUSY
|
ввод
|
устройство
показывает, что оно занято, путем установки этой линии в
«1»
|
12
|
Paper
out
|
ввод
|
для
принтеров
|
13
|
Select
|
ввод
|
устройство
показывает, что оно готово, путем установки на этой линии «1
»
|
14
|
Autofeed
|
Ввод
и вывод
|
|
15
|
Error
|
ввод
|
индицирует
об ошибке
|
16
|
Initialize
|
Ввод
и вывод
|
|
17
|
Select
In
|
Ввод
и
вывод
|
|
18-25
|
Ground
|
GND
|
общий
провод
|
Я разбил
8 бит данных идущих от LPT
на две группы по 4 бит: «данные» (bit 0-3) и
«адреса» (bit 4-7)
|
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
данные
|
адрес –определяет
на какой двигатель придет сигнал - данные
|
«Данные» передаются на триггеры ТМ7 выводы 2, 3,
6,7 (D1, D2, D3,
D4
см.рис.2), а «адреса» определяют какой из триггеров
запишет эти «данные».
Рассмотрим
примеры:
Биты LPT
|
Примечание
|
7
|
6
|
5
|
4
|
3
|
2
|
1
|
0
|
«адрес»
№ драйвера
|
«данные»
|
4
|
3
|
2
|
1
|
4
|
3
|
2
|
1
|
0
|
0
|
0
|
1
|
0
|
1
|
0
|
1
|
Данные 0101 запишутся в
триггер 1 и передадутся в драйвер 1
|
0
|
0
|
1
|
0
|
0
|
1
|
0
|
1
|
Данные 0101 запишутся в
триггер 1 и передадутся в драйвер 2
|
0
|
1
|
0
|
0
|
0
|
1
|
0
|
1
|
Данные 0101 запишутся в
триггер 1 и передадутся в драйвер 3
|
0
|
0
|
0
|
0
|
1
|
0
|
1
|
1
|
Данные никуда не поступят,
т.к. не выбран «адрес»
|
0
|
1
|
1
|
1
|
1
|
0
|
1
|
1
|
Данные 1011 запишутся сразу
в три триггера 1,2,3
|
В моей схеме 7 бит не
используется т.к. применено 3 двигателя.
Для подключения к схеме 16
двигателей необходимо на управляющие биты
«адреса» установить дешифратор.
К выходам ТМ7 подключается
драйвер – силовые ключи коммутирующие обмотки шагового
двигателя.
Драйвер
состоит из 4х транзисторов КТ 972 см. рис.3.
Диоды можно использовать любые с допустимым импульсным током 200мА.
Также можно использовать серийные микросхемы (stepper
motor driver), например ULN
2004 (9 ключей) на 0.6А. или НА13408 (1.5А.) см.
рис.4
Для питания контроллера и шаговых двигателей понадобится блок питания.
Его мощность зависит от мощности шаговых двигателей. При использовании
двигателей от 5" дисководов потребляемый ток будет равен: 3 двигателя,
одновременно может запитано по 2 обмотки (полу шаговый режим) по 0.6А.
т.е. 3х2х0,6=3,6А.
А теперь о том, как управлять контроллером и шаговыми
двигателями с помощью компьютера.
Проще всего из Qbasic (под DOS)
Команда
OUT 888, Х
Порт принтера LPT имеет адрес 888. процедурой OUT мы в порт помещаем число Х.
Повернем двигатель №1 на
один оборот:
OUT
888, 17 ‘ число 00010001
‘задержка
OUT
888, 18 ‘ число 00010010
‘задержка
OUT
888, 20 ‘ число 00010100
‘задержка
OUT
888, 24 ‘ число 00011000
‘задержка
После каждой команды
необходимо поставить задержку, т.к. шаговый двигатель не успеет
повернуться в следующее положение.
Например создать пустой цикл:
FOR i =
1 TO 100000
NEXT i
Максимальная частота коммутации обмоток шагового двигателя (те которые
были у меня) 2000Гц, что соответствует 4 об/сек. При большей частоте
двигатель будет пропускать шаги.
На основании выше изложенной методики, мной бал собран трех
координатный станок. С помощью которого я рисую и сверлю печатные
платы. Рис.5.
Подробнее можно посмотреть на сайте http://temport.by.ru/
Также на сайте имеется программа под
Windows XP для управления самодельным станком с
ЧПУ. Программа позволят рисовать на станке платы нарисованные в AutoCad,
SprintLayout, Corel DRAW,
P-Cad или из любой другой программы
конвертирующей файлы в DXF,
Gerber.
Перепечатка
статьи только с разрешения
автора.
Ветров Роман. 9.04.2007. vetrovroman
на маил.ру
|