Способы управления фазами шагового двигателя 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Способы управления фазами шагового двигателя



Существует несколько способов управления фазами шагового двигателя. Первый способ обеспечивается попеременной коммутацией фаз, при этом они не перекрываются, в один момент времени включена только одна фаза (рис. 4.3, а). Этот способ называют «one phase on» full step или wave drive mode.

Точки равновесия ротора для каждого шага совпадают с «естественными» точками равновесия ротора у незапитанного двигателя.

 

Рис. 4.3. Диаграммы управления двигателем

Второй способ – управление фазами с перекрытием: две фазы включены в одно и то же время. Его называют «two-phase-on» full step или просто full step mode. При этом способе управления ротора фиксируется в промежуточных позициях между полюсами статора (рис. 4.3, б) и обеспечивается примерно на 40 % больший момент, чем в случае одной включенной фазы. Этот способ управления обеспечивает такой же угол шага, как и первый, но положение точек равновесия ротора смещено на пол-шага.

Третий способ является комбинацией первых двух и называется полушаговым режимом  «one and two-phase-on» half step или просто half step mode, когда двигатель делает шаг в половину основного. Этот метод управления достаточно распространен, так как двигатель с меньшим шагом стоит дороже и очень заманчиво получить от 100-шагового двигателя 200 шагов на оборот. Каждый второй шаг запитан лишь одной фазой, а в остальных случаях запитаны две (рис. 4.3, в). В результате угловое перемещение ротора составляет половину угла шага для первых двух способов управления. Кроме уменьшения размера шага этот способ управления позволяет частично избавиться от явления резонанса. Полушаговый режим обычно не позволяет получить полный момент, хотя наиболее совершенные драйверы реализуют модифицированный полушаговый режим, в котором двигатель обеспечивает практически полный момент, при этом рассеиваемая мощность не превышает номинальной.

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

Контрольные точки макета позволяют наблюдать форму токов в каждой из фаз (полуобмоток) двигателя. Осциллограф подключается массовым щупом к одной из контрольных точек, а сигнальным – к клемме «Общий».

Управление двигателями осуществляется по униполярной схеме. В качестве источника питания +12 В и +5 В используется встроенный блок питания.

 

Подача управляющих импульсов +5 В. В на контаты разъема Х1, расположенного на задней панели макета, осуществляется замыканием контакта Х1.1 и Х1.2-Х1.5 (для двигателя 1), Х1.6-Х1.9 (для двигателя 2). Последовательное замыкание Х1.1 на Х1.2 à 3à4à5 приводит к вращению вала двигателя 1 по часовой стрелке. Для двигателя 2: 6à7à8à9. Таким образом, осуществляется однофазное управление (т.е. в каждый момент времени подключена одна фаза – полуобмотка двигателя). Вращение против часовой стрелки осуществляется подачей импульсов на фазы в обратном порядке. Назначение выводов разъема Х1 (DB9-F) приведены в табл. 4.1.

Переключатель на передней панели макета для включения режима повышенных токов в полуобмотках двигателя. В этом режиме ток равен 0,9 А (вместо 0,45 А в обычном режиме).

Контакт 1 à +5 B.

Таблица 4.1

Назначение выводов разъема Х1 (DB9-F)

 

Контакт

Двигатель 1

Двигатель 2

полуобмотки

полуобмотки

1 2 3 4 1 2 3 4
2 х              
3   х            
4     х          
5       х        
6         х      
7           х    
8             х  
9               х

 

На верхней панели непосредственно над переключателем расположены два светодиода (один светодиод на один двигатель), которые сигнализируют о включенном режиме повышенных токов. Этот режим не рекомендуется включать на длительное время из-за большого тепловыделения на элементах схемы.

Элементы схемы управления:

VT 1- VT 4: KT972A;

VD 1- VD 4: 1N4007;

R 1- R 4: 9,1 кОм.

Функциональная электрическая схема макета показана на рис. 4.4.

Пример исходного кода программы для работы с интерфейсом LPT на языке программирования Borland Delphi 7

 

Программа создана в визуальной среде программирования Borland Delphi 7.

unit Unit1;

interface

 

Рис. 4.4.Функциональная электрическая схема макета (а)

 

 

Рис. 4.4.Функциональная электрическая схема макета (б)

 

 

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, LPTIO,

ExtCtrls, StdCtrls;

type

TForm1 = class(TForm)

Panel1: TPanel;

ComboBox1: TComboBox;

Label1: TLabel;

procedure FormCreate(Sender: TObject);

procedure FormDestroy(Sender: TObject);

private

{ Private declarations }

Lpt: TLptPortConnection;

public

{ Public declarations }

 function GetCurrentPort: byte

 function GetCurrentRegister: byte;

function Pin2: boolean; function Pin3: boolean; function Pin4: boolean; function Pin5: boolean; function Pin6: boolean; function Pin7: boolean; function Pin8: boolean; function Pin1: boolean;

procedure ButtonPin2; procedure ButtonPin3; procedure ButtonPin4; procedure ButtonPin5; procedure ButtonPin6; procedure ButtonPin7; procedure ButtonPin8; procedure ButtonPin1;

end;

var

Form1: TForm1;

Ch: Boolean;

I: integer;

implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);

var msg: AnsiString;

begin

 Lpt:= TLptPortConnection.Create;

 if not Lpt.Ready then

begin

Application.MessageBox(PChar(msg),'ERROR',MB_OK);

Application.Terminate;

end;

ComboBox1.Items.Clear;

 ComboBox1.Text:= '';

 if Lpt.IsPortPresent(LPT1) then ComboBox1.Items.Add('$3BC');

 if Lpt.IsPortPresent(LPT2) then ComboBox1.Items.Add('$378'); //-ÂÍÈÌÀÍÈÅ: $378 çäåñü íàçâàí LPT2!

 if Lpt.IsPortPresent(LPT3) then ComboBox1.Items.Add('$278');

 if 0<>ComboBox1.Items.Count then ComboBox1.ItemIndex:= 0;

end;

procedure TForm1.FormDestroy(Sender: TObject);

begin

 Lpt.Destroy;

end;

function TForm1.GetCurrentPort: byte;    

begin

 if '$3BC' = ComboBox1.Text then

GetCurrentPort:=LPT1

                       else

if '$378' = ComboBox1.Text then

GetCurrentPort:=LPT2 else

GetCurrentPort:=LPT3;

end;

function TForm1.Pin2: boolean;

 Var

 d: boolean;

 begin

d:= true;

d:= d and (1 = (1 and Lpt.ReadPort((GetCurrentPort),0)));

Pin2:= d;

 end;

 function TForm1.Pin3: boolean;

 Var

 d: boolean;

 begin

d:= true;

d:= d and (2 = (2 and Lpt.ReadPort(GetCurrentPort,0)));

Pin3:= d;

 end;

 

 function TForm1.Pin4: boolean;

 Var

 d: boolean;

 begin

d:= true;

d:= d and (4 = (4 and Lpt.ReadPort(GetCurrentPort,0)));

Pin4:= d;

 end;

 function TForm1.Pin5: boolean;

 Var

 d: boolean;

 begin

d:= true;

d:= d and (8 = (8 and Lpt.ReadPort(GetCurrentPort,0)));

Pin5:= d;

 end;

 function TForm1.Pin6: boolean;

 Var

 d: boolean;

 begin

d:= true;

d:= d and (16 = (16 and Lpt.ReadPort(GetCurrentPort,0)));

Pin6:= d;

 end;

 function TForm1.Pin7: boolean;

 Var

 d: boolean;

 begin

d:= true;

d:= d and (32 = (32 and Lpt.ReadPort(GetCurrentPort,0)));

Pin7:= d;

 end;

 function TForm1.Pin8: boolean;

 Var

 d: boolean;

 begin

d:= true;

d:= d and (64 = (64 and Lpt.ReadPort(GetCurrentPort,0)));

Pin8:= d;

 end;

 function TForm1.Pin1: boolean;

 Var

 d: boolean;

 begin

d:= true;

d:= d xor (STROBE = (STROBE and Lpt.ReadPort(GetCurrentPort,2)));

Pin1:= d;

 end;

procedure TForm1.ButtonPin2;

 begin

 Lpt.WritePort (GetCurrentPort,0,(1 xor Lpt.ReadPort((GetCurrentPort),0)));

 end;

 procedure TForm1.ButtonPin3;

 begin

 Lpt.WritePort (GetCurrentPort,0,(2 xor Lpt.ReadPort((GetCurrentPort),0)));

 end;

 procedure TForm1.ButtonPin4;

 begin

 Lpt.WritePort (GetCurrentPort,0,(4 xor Lpt.ReadPort((GetCurrentPort),0)));

 end;

 procedure TForm1.ButtonPin5;

 begin

 Lpt.WritePort (GetCurrentPort,0,(8 xor Lpt.ReadPort((GetCurrentPort),0)));

 end;

 procedure TForm1.ButtonPin6;

 begin

 Lpt.WritePort (GetCurrentPort,0,(16 xor Lpt.ReadPort((GetCurrentPort),0)));

 end;

procedure TForm1.ButtonPin7;

 begin

 Lpt.WritePort (GetCurrentPort,0,(32 xor Lpt.ReadPort((GetCurrentPort),0)));

 end;

 procedure TForm1.ButtonPin8;

 begin

 Lpt.WritePort (GetCurrentPort,0,(64 xor Lpt.ReadPort((GetCurrentPort),0)));

 end;

 procedure TForm1.ButtonPin1;

 begin

 Lpt.WritePort (GetCurrentPort,2,(1 xor Lpt.ReadPort((GetCurrentPort),2)));

 end;

procedure TForm1.Button1Click;

//Программа поочередно выставляет и снимает 1 на каждом из 8 выводов данных

begin

for i:=1 to 1000 do

begin

if ch:=true then exit;

ButtonPin1;Sleep(100);ButtonPin1;Sleep(100);

ButtonPin2;Sleep(100);ButtonPin2;Sleep(100);

ButtonPin3;Sleep(100);ButtonPin3;Sleep(100);

ButtonPin4;Sleep(100);ButtonPin4;Sleep(100);

ButtonPin5;Sleep(100);ButtonPin5;Sleep(100);

ButtonPin6;Sleep(100);ButtonPin6;Sleep(100);

ButtonPin7;Sleep(100);ButtonPin7;Sleep(100);

ButtonPin8;Sleep(100);ButtonPin8;Sleep(100);

end;

end;

 end.

Задания к лабораторной работе

 

1. Изучить структурную, функциональную схему лабораторного макета;

2. Составить «заготовку» отчета и, правильно ответив на 5 вопросов преподавателя, получить допуск к выполнению работы;

3. Аккуратно подключить (в присутствии лаборанта или преподавателя) макет к компьютеру через LPT порт и включить питание.

4. Запустить программу управления драйвером (шаговым двигателем) и изучить ее.

5. Оформить отчет по работе и защитить у преподавателя.

Список рекомендуемой литературы:

1. Джордейн Р. Справочник программиста персональных компьютеров./ М.: Радио и связь, 1992.–280 с.

2. Кулешов С.В. Интерфейс PIC контроллера с компьютером./ Радио. – №7. 2003.– С.20-22.

3. http://www.kulakov.ru/ (разработка электронных устройств на PIC – контроллерах).

4. http://www.toehelp.ru/theory/electromach/contents.html (описание принципов работы шаговых двигателей).

5. http://www.maxim-ic.COM/quick_view2.cfm/qv_pk/179 (описание микросхемы MAX232).

Список рекомендуемой литературы

 

1. Джордейн Р. Справочник программиста персональных компьютеров./ – М.: Радио и связь, 1992.–280 с.

2.  «Руководство по эксплуатации платы ЛА- н10М6PCI», ЗАО «Руднев -Шиляев», М., 2003 г. (CD-диск с руководством пользователя у преподавателя).

3. Кулешов С.В. Интерфейс PIC контроллера с компьютером./ Радио. – №7. 2003.–С.20-22.

4. Новоченко И.В. Интегральные схемы для бытовой радиоаппаратуры./ М.: Радио и связь,1995.–324 с.

5. Перельман Б.Л. Транзисторы для аппаратуры широкого применения: Справочник./ М: Радио и связь,1986.–567с.

6. Руководство по эксплуатации контроллеров КРОСС (CD-диск с руководством пользователя у преподавателя).

7. Яценков В.С. Микроконтроллеры Microchip. Практ. руководство./ М.: Горячая линия - Телеком, 2002.–296 с.

8. http://www.zeim.ru/production/DOcs/controllers/rp-1.pdf. – описание SCADA системы ISaGRAF ч. 1.

9. http://www.zeim.ru/production/DOcs/controllers/rp-2.pdf. – описание SCADA системы ISaGRAF ч. 2.

10. http://www.zeim.ru/production/DOcs/controllers/rp-3.pdf. – описание SCADA системы ISaGRAF ч. 3.

11. http://www.zeim.ru/production/DOcs/controllers/rp-4.pdf. – описание SCADA системы ISaGRAF ч. 4.

12.  http://www.rudshel.ru/pdf/LA-n10M6PCI.rar.-описание измерительной платы ЛА-н10М6PCI:

13.  http://www.rudshel.ru/show/?id=100 - описание утилиты ADCLab.

14.  http://PIC16F84.narod.ru/index.htm – устройство управления на микроконтроллере PIC16F84.

15.  http://www.kulakov.ru/ – разработка электронных устройств на PIC – контроллерах.

16.  http://www.toehelp.ru/theory/electromach/contents.html – (описание принципов работы шаговых двигателей).

17.  http://www.kulakov.ru/ – (разработка электронных устройств на PIC – контроллерах).

18. http://www.toehelp.ru/theory/electromach/contents.html – (описание принципов работы шаговых двигателей).

19. http://www.microchip.ru/lit/pic/pic16x8x/PIC16F84. – (описание PIC16F84).

20. http://www.maxim-ic.COM/quick_view2.cfm/qv_pk/179  –  (описание микросхемы MAX232).

21. ISaGRAF версия 3.51. Руководство пользователя (CD диск с руководством пользователя у преподавателя).

22.  Seiichi Inoue. PIC контроллер управляет электродвигателем // Радио. – №6. 2002.– С.4,5.

 

Оглавление

 

Общие указания. 3

Лабораторная работа 1. Исследование макета «Эмулятор светофора»на основе промышленного контроллера КРОСС……………...……….…...4

Лабораторная работа 2. Исследование автоматизированного измерения сигналов с использованием платы ЛА-н10М6PCI 11

Лабораторная работа 3. Исследование метода управления шаговым двигателем с ПЭВМ RS 232 через PIC контроллер………...…….....…25

Лабораторная работа 4. Прямое управление шаговым двигателем через LPT порт 39

Список рекомендуемой литературы.. 51



Поделиться:


Последнее изменение этой страницы: 2021-02-07; просмотров: 165; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.188.10.246 (0.059 с.)