Материал: MPU_SU_Laboratornaya_rabota_3_Avramenok_Pshebelskaya

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

МиНОБРНАУКИ РОССИИ

Санкт-Петербургский государственный

электротехнический университет

«ЛЭТИ» им. В.И. Ульянова (Ленина)

Кафедра систем автоматического управления

Лабораторная работа №3

по дисциплине

«Микропроцессорный устройства систем управления»

Вариант 9

Студенты гр. 8491

Авраменок Д.А.

Пшебельская Р.С.

Преподаватель

Голик С.Е.

Санкт-Петербург

2020

Цель работы: Изучение принципов программного управления шаговым двигателем с использованием параллельного порта МК.

Задание: Составить программу управления шаговым двигателем для реализации заданного режима управления и графика изменения скорости вращения(см. табл.1).

Табл.1.

Вариант задания

График изменения скорости вращения

Режим управления

9

Двухфазный полношаговый

  1. Схема макета, относящегося к заданию:

Рис.1. Схема макета.

  1. Б

    1

    лок-схема алгоритма программы:

//1 участок, длительность будет 5с

//ускорение мотора, вращение по часовой стрелке

//на каждой скорости мотор провернется 2 раза

1

//включение необходимой катушки

//задержка влияющая на скорость мотора, чем больше задержка, тем медленнее мотор

//2 участок, длительность будет 5с

2

2

9

10

2

9

10

2

8

11

3

//замедление мотора, вращение по часовой стрелке

//мотор покоит--ся

//3-4 участки, длительность будет 10с

//5 участок, длительность будет 5с

3

8

11

3

7

12

4

7

12

4

6

1300

5

//уско-рение мотора, вращение против часовой стрелки

//замедление мотора, вращение против часовой стрелки

//6 участок, длительность будет 1с

6

13

5

  1. Текст программы на языке С:

/*

Разобьем наш график изменения скорости на 6 участков

----|1. мотор вращается по часовой стрелке и ускоряется |----

----|2. мотор вращается по часовой стрелке и замедляется |----

----|3-4. мотор покоится |----

----|5. мотор вращается против часовой стрелки и ускоряется |----

----|6. мотор вращается против часовой стрелки и замедляется |----

*/

#include <mega128.h>

#include <delay.h>

void main(void)

{

unsigned char k;

signed char j;

unsigned int i;

unsigned char steps[]=

{0x03,0x06,0x0C,0x09};

DDRC = 0x0F;

{

while (1)

{ //1 участок, длительность будет 5с

for(i=150;i>=30;i-=20) //ускорение мотора, вращение по часовой стрелке

{

for(k=0;k<=1;k++) //на каждой скорости мотор провернется 2 раза

{

for(j=0;j<=3;j++) //включение необходимой катушки

{

PORTC = steps[j];

delay_ms(i); //задержка влияющая на скорость мотора, чем больше задержка, тем медленнее мотор

}

}

}

//2 участок, длительность будет 5с

for(i=30;i<=150;i+=20)

{ //замедление мотора, вращение по часовой стрелке

for(k=0;k<=1;k++)

{

for(j=0;j<=3;j++)

{

PORTC = steps[j];

delay_ms(i);

}

}

}

//3-4 участки, длительность будет 10с

for(i=150;i>=30;i-=20) //мотор покоится

{

for(k=0;k<=1;k++)

{

for(j=0;j<=3;j++)

{

delay_ms(i);

delay_ms(i);

}

}

}

//5 участки, длительность будет 5с

for(i=150;i>=30;i-=20) //ускорение мотора, вращение против часовой стрелки

{

for(k=0;k<=1;k++)

{

for(j=3;j>=0;j--)

{

PORTC = steps[j];

delay_ms(i);

}

}

}

//6 участки, длительность будет 1с

for(i=30;i<=150;i+=20) //замедление мотора, вращение против часовой стрелки

{

for(k=0;k<=1;k++)

{

for(j=3;j>=0;j--)

{

PORTC = steps[j];

delay_ms(i);

}

}

}

}

}

}

Вывод: Были изучены принципы программного управления шаговым двигателем с использованием параллельного порта МК. Была составлена программа управления шаговым двигателем для реализации заданного режима управления и графика изменения скорости вращения.