Главная | Регистрация | Вход


Меню сайта
Модели
ArtCam Руководство Пользователя
Самодельный ЧПУ
Случайная модель
икона Георгий Победоносец в окладе
икона Божьей Матери Владимирская
Главная » Статьи » Самодельный ЧПУ

Драйвер шагового дигателя (управление шаговыми двигателями с помощью компьютера)

Драйвер шагового дигателя (управление шаговыми двигателями с помощью компьютера)

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

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

Я, в своих экспериментах использовал шаговые двигатели от 5,25-дюймов дисководов. В основном в дисководах попадаются двигатели с сопротивлением обмоток 70 ом и напряжением питания 12в. Всю электрическую схему можно разбить на две части: контроллер (буфер) и драйвер см.рис.1.

http://www.cqham.ru/image4/Vetrov904071.gif

Разработанный мной контроллер может обслуживать до 16 шаговых двигателей, он собран на трех микросхемах 555TM7. Схема контроллера изображена на рис.2.

http://www.cqham.ru/image4/Vetrov904072.gif

Контроллер подключается к 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.

http://www.cqham.ru/image4/Vetrov904073.gif

Диоды можно использовать любые с допустимым импульсным током 200мА

Также можно использовать серийные микросхемы (stepper motor driver), например ULN 2004 (9 ключей) на 0.6А. или НА13408 (1.5А) см.рис.4

http://www.cqham.ru/image4/Vetrov904074.jpg

Для питания контроллера и шаговых двигателей понадобится блок питания.

Его мощность зависит от мощности шаговых двигателей. При использовании двигателей от 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 об/сек. При большей частоте двигатель будет пропускать шаги.



Комментарии
Реклама

Copyright MyCorp © 2024

uCoz Яндекс.Метрика