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

Сущность двигателей с переменным магнитным сопротивлением. Особенность волновой и фазовой коммутации фаз. Зависимость момента от скорости. Способы изменения направления тока. Структура, основные характеристики и возможности микросхемы ATtiny 2313.

Рубрика Производство и технологии
Вид дипломная работа
Язык русский
Дата добавления 08.10.2016
Размер файла 1,6 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Существует еще одно решение, обеспечивающее высокую скорость на-растания тока и низкую мощность потерь. Основано оно на применении двух источников питания.

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

Еще одной трудностью является невозможность определения момента времени t1 для общего случая. Для двигателя с меньшей индуктивностью обмоток скорость нарастания тока выше и при фиксированном t1 средний ток может оказаться выше номинального, что приведет к перегреву двигателя.

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

Для обеспечения высокой скорости нарастания тока используют на-пряжение источника питания, в несколько раз превышающее номинальное. Путем регулировки скважности импульсов, среднее напряжение и ток под-держиваются на номинальном для обмотки уровне. Поддержание произво-дится в результате действия обратной связи. Последовательно с обмоткой включается резистор -- датчик тока R.

Падение напряжения на этом резисторе пропорционально току в об-

мотке. Когда ток достигает установленного значения, ключ выключается, что приводит к падению тока. Когда ток спадает до нижнего порога, ключ снова включается. Этот процесс повторяется периодически, поддерживая среднее значение тока постоянным.

Управляя величиной Uоп можно регулировать ток фазы, например, увеличивать его при разгоне и торможении и снижать при работе на постоянной скорости. Можно также задавать его с помощью ЦАП в форме сину-соиды, реализуя таким образом микрошаговый режим. Такой способ управ-ления ключевым транзистором обеспечивает постоянную величину пульса-ций тока в обмотке, которая определяется гистерезисом компаратора. Однако частота переключений будет зависеть от скорости изменения тока в обмотке, в частности, от ее индуктивности и от напряжения питания. Кроме того, две такие схемы, питающие разные фазы двигателя, не могут быть засинхрони-зированы, что может явиться причиной дополнительных помех.

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

Такая схема обеспечивает постоянную частоту коммутации, однако ве-личина пульсаций тока не будет постоянной. Частота генератора обычно вы-бирается не менее 20кГц, чтобы двигатель не создавал слышимого звука. В то же время слишком высокая частота переключений может вызвать повы-шенные потери в сердечнике двигателя и потери на переключениях транзи-сторов. Хотя потери в сердечнике с повышением частоты растут не так быст-ро ввиду уменьшения амплитуды пульсаций тока с ростом частоты. Пульса-ции порядка 10% от среднего значения тока обычно не вызывают проблем с потерями.

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

На рисунке 24 а, показано состояние ключей H-моста, когда обмотка включена. Включены ключи A и D, направление тока показано стрелкой. На рисунке 24 б, обмотка выключена, но ключ A включен. ЭДС самоиндукции закорачивается через этот ключ и диод VD3. В это время на выводах обмотки будет небольшое напряжение, равное прямому падению на диоде плюс падение на ключе (напряжение насыщения транзистора). Так как напряжение на выводах обмотки мало, малой будет и скорость изменения тока. Соответственно малой будет и скорость спада магнитного поля. А это значит, еще некоторое время статор двигателя будет создавать магнитное поле, которого в это время быть не должно. На вращающийся ротор это поле будет оказывать тормозящее воздействие. При высоких скоростях работы двигателя этот эффект может серьезно помешать нормальной работе двигателя. Быстрый спад тока при выключении является очень важным для высокоскоростных контроллеров, работающих в полушаговом режиме.

Возможен и другой способ отключения тока обмотки, когда размыка-ются все ключи H-моста (рисунок 24, в). При этом ЭДС самоиндукции закорачивается чрез диоды VD2, VD3 на источник питания. Это значит, что во время спада тока на обмотке будет напряжение, равное сумме напряжения источника питания и прямого падения на двух диодах. По сравнению с первым случаем, это значительно большее напряжение. Соответственно, более быстрым будет спад тока и магнитного поля. Такое решение, использующее напряжение источника питания для ускорения спада тока является наиболее простым, но не единственным.

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

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

При ключевом регулировании величина пульсаций тока зависит от скорости его спада. Если обеспечить закорачивание обмотки диодом, будет реализован медленный спад тока. Это приводит к уменьшению амплитуды пульсаций тока, что является весьма желательным, особенно при работе двигателя в микрошаговом режиме. Для данного уровня пульсаций медленный спад тока позволяет работать на более низких частотах ШИМ, что уменьшает нагрев двигателя. По этим причинам медленный спад тока широко используется.

Однако существует несколько причин, по которым медленное нарастание тока не всегда является оптимальным:

- из-за отрицательной обратной ЭДС, ввиду малого напряжения на обмотке во время спада тока, реальный средний ток обмотки может оказаться завышенным.

- когда требуется резко уменьшить ток фазы (например, в полушаговом режиме), медленный спад не позволит сделать это быстро;

- когда требуется установить очень низкое значение тока фазы, регулирование может нарушится из-за существования ограничения на минимальное время включенного состояния ключей.

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

1.8 Достоинства и недостатки шагового двигателя

К достоинствам шаговых двигателей можно отнести следующие их особенности:

ь угол поворота ротора определяется числом импульсов, которые поданы на двигатель;

ь двигатель обеспечивает полный момент в режиме остановки (если обмотки запитаны);

ь прецизионное позиционирование и повторяемость. Хорошие шаговые двигатели имеют точность от 3 до 5% от величины шага. Эта ошибка не накапливается от шага к шагу;

ь возможность быстрого старта/остановки/реверсирования;

ь высокая надежность, связанная с отсутствием щеток, срок службы шагового двигателя фактически определяется сроком службы подшипников;

ь однозначная зависимость положения от входных импульсов обеспечивает позиционирование без обратной связи;

ь возможность получения очень низких скоростей вращения для нагрузки, присоединенной непосредственно к валу двигателя без промежуточного редуктора;

ь может быть перекрыт довольно большой диапазон скоростей, скорость пропорциональна частоте входных импульсов;

Недостатки шаговых двигателей:

· шаговым двигателем присуще явление резонанса;

· возможна потеря контроля положения ввиду работы без обратной связи;

· потребление энергии не уменьшается даже без нагрузки;

· затруднена работа на высоких скоростях;

· невысокая удельная мощность;

· относительно сложная схема управления;

2. ОПЫТНО-ЭКСПЕРИМЕНТАЛЬНАЯ ЧАСТЬ

2.1 Разработка структурно-функциональной схемы стенда управления шаговым двигателем

Постановка задачи

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

Ориентировочно, проект стенда должен содержать следующие блоки:

· Блок А -- блок отработки навыков переключения обмоток униполярного шагового двигателя;

· Блок Б -- блок отработки навыков разработки программных модулей для управления различными режимами шагового двигателя.

Структурно-функциональная схема блока отработки навыков переключения обмоток униполярного шагового двигателя -- Блока А

Очевидно, что Блок А должен быть примитивно-простым, но позволяющим получить простейшие навыки управления обмотками униполярного шагового двигателя. В связи с этим, самым простым решением является ручное управление с помощью контактных переключателей, например, с помощью кнопок или реле. Для этого, в среде электронного проектирования Isis Proteus, было проведено исследование1 модели MOTOR-STEPPER из библиотеки Isis Proteus. Библиотечные характеристики этого устройства приведены на рисунке 26.

Рисунок 26 -- Библиотечные характеристики примитива Isis Proteus MOTOR-STEPPER -- униполярного шагового двигателя

Модель Блока А приведена на рисунке 27.

Рисунок 27 -- Модель Блока А, блока ручного управления

В качестве источников импульсов выбраны библиотечные примитивы примитивы Isis Proteus -- логические ноль (меньше 2,5 В) и единица (5 В) -- LOGICSTATE

Основные положения при разработке модели, основанные на анализе теоретической части:

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

· Одним из распространенных методов коммутации обмоток является метод с перекрытием или метод полушаговой последовательности, при котором двигатель делает шаг в половину основного (в данном случае при шаге 900, половиной шага будет значение 450);

· Источником питания для модели выбран примитив внешнего источника питания Isis Proteus POWER (для ручного управления скорость вращения вала не имеет значения)

Результаты моделирования (результаты исследования 1) представлены в таблице 1 .

Таблица 1 -- Результаты моделирования ручного управления шаговым двигателем в прямом направлении

Скриншоты состояний

Наименования обмоток,
на которые п
одан ток

Переключатель
(состояние, б
иты)

Начальное состояние

(все реле -- разомкнуты)

2a

1000

2a2b

1100

2b

0100

2b1b

0110

1b

0010

1b1a

0011

1a

0001

* При моделировании угол примет значение 360, а затем обнулится

1a2a

1001

Структурно-функциональная схема блока отработки навыков разработки программных модулей для управления различными режимами шагового двигателя

Центральным узлом такого блока должен быть, очевидно, микроконтроллер, выбор которого предполагает наличие таких характеристик, как стоимость и достаточное количество выводов. В линейке микроконтроллеров AVR фирмы ATMEL таким микроконтроллером является восьмиразрядный микроконтроллер Attiny2313, основные характеристики которого представлены в приложении А [стр. 12, 4]. Для управления униполярным шаговым двигателем необходимо количество выводов, равное четырем, поэтому недорогой и простой в управлении микроконтроллер Attiny2313 подходит по всем характеристикам.

Рисунок 28 -- Модель Блока Б (первый вариант)

Чтобы удостовериться в правильности первого исследования, проведенного по блоку ручного управления, необходимо было провести исследование на тех же битовых значениях сигналов относительно обмоток шагового двигателя (исследование 2) применительно к микроконтроллеру Attiny2313, выбранному в качестве управляющего блока. Исходные значения битов представлены в таблице 3 (в прямом направлении) и в таблице 4 (в обратном направлении):

Таблица 3 -- Исходные значения битов для моделирования полушагового режима в прямом направлении

Значение угла поворота

Наименования обмоток, на которые подан ток

Битовые значения
(для микроконтроллера)

7

6

5

4

3

2

1

0

450

2a

0

0

0

0

1

0

0

0

900

2a2b

0

0

0

0

1

1

0

0

1350

2b

0

0

0

0

0

1

0

0

1800

2b1b

0

0

0

0

0

1

1

0

2250

1b

0

0

0

0

0

0

1

0

2700

1b1a

0

0

0

0

0

0

1

1

3150

1a

0

0

0

0

0

0

0

1

360000

1a2a

0

0

0

0

1

0

0

1

Таблица 4 -- Исходные значения битов для моделирования полушагового режима в обратном направлении

Значение угла поворота

Наименования обмоток, на которые подан ток

Битовые значения
(для микроконтроллера)

7

6

5

4

3

2

1

0

-450

1a

0

0

0

0

0

0

0

1

-900

1a1b

0

0

0

0

0

0

1

1

-1350

1b

0

0

0

0

0

0

1

0

-1800

1b2b

0

0

0

0

0

1

1

0

-2250

2b

0

0

0

0

0

1

0

0

-2700

2b2a

0

0

0

0

1

1

0

0

-3150

2a

0

0

0

0

1

0

0

0

-360000

2a1a

0

0

0

0

1

0

0

1

Но, при первом же запуске программы (листинг 1), угол поворота шагового двигателя показал значение -1350 (рисунок 29), вместо значения угла поворота +450. Анализ ситуации показал отсутствие цепи электрического тока (логическая 1 (5v) - ток микроконтроллера направлен навстречу току двигателя, электрическая цепь отсутствует)

Рисунок 29 - Модель Блока Б - блока управления шаговым двигателем микроконтроллером

Листинг 1 - Программа управления обмоткой 2а шагового двигателя микроконтроллером

This program was produced by the

CodeWizardAVR V2.05.1b Evaluation

Automatic Program Generator

© Copyright 1998-2011 Pavel Haiduc, HP InfoTech s.r.l.

Project : issled2

Version : 1

Date : 19.06.2015

Author : Freeware, for evaluation and non-commercial use only

Company : xrom

Comments:

shagmk

Chip type : ATtiny2313A

AVR Core Clock frequency: 4,000000 MHz

Memory model : Tiny

External RAM size : 0

Data Stack size : 32

#include <tiny2313a.h>

#include <delay.h>

// Declare your global variables here

void main(void)

{

// Declare your local variables here

// Crystal Oscillator division factor: 1

#pragma optsize-

CLKPR=0x80;

CLKPR=0x00;

#ifdef _OPTIMIZE_SIZE_

#pragma optsize+

#endif

// Input/Output Ports initialization

// Port A initialization

// Func2=In Func1=In Func0=In

// State2=T State1=T State0=T

PORTA=0x00;

DDRA=0x00;

// Port B initialization

// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out

// State7=1 State6=1 State5=1 State4=1 State3=1 State2=1 State1=1 State0=1

PORTB=0xFF;

DDRB=0xFF;

// Port D initialization

// Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In

// State6=P State5=P State4=P State3=P State2=P State1=P State0=P

PORTD=0x7F;

DDRD=0x00;

while (1)

{

PORTB=0b00001000;

delay_ms(1500);

}

}

Чтобы создать электрическую цепь, необходимо в 3 бит (4-й пин микроконтроллера) записать 0 (рисунок 30, листинг 2).

Рисунок 30 - Модель Блока Б - блока управления шаговым двигателем микроконтроллером

Листинг 2 - Программа управления обмоткой 2а шагового двигателя микроконтроллером

This program was produced by the

CodeWizardAVR V2.05.1b Evaluation

Automatic Program Generator

© Copyright 1998-2011 Pavel Haiduc, HP InfoTech s.r.l.

Project : issled2

Version : 1

Date : 19.06.2015

Author : Freeware, for evaluation and non-commercial use only

Company : xrom

Comments:

shagmk

Chip type : ATtiny2313A

AVR Core Clock frequency: 4,000000 MHz

Memory model : Tiny

External RAM size : 0

Data Stack size : 32

#include <tiny2313a.h>

#include <delay.h>

// Declare your global variables here

void main(void)

{

// Declare your local variables here

// Crystal Oscillator division factor: 1

#pragma optsize-

CLKPR=0x80;

CLKPR=0x00;

#ifdef _OPTIMIZE_SIZE_

#pragma optsize+

#endif

// Input/Output Ports initialization

// Port A initialization

// Func2=In Func1=In Func0=In

// State2=T State1=T State0=T

PORTA=0x00;

DDRA=0x00;

// Port B initialization

// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out

// State7=1 State6=1 State5=1 State4=1 State3=1 State2=1 State1=1 State0=1

PORTB=0xFF;

DDRB=0xFF;

// Port D initialization

// Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In

// State6=P State5=P State4=P State3=P State2=P State1=P State0=P

PORTD=0x7F;

DDRD=0x00;

while (1)

{

PORTB=0b00000111;

delay_ms(1500);

Полученный результат виртуальной модели удовлетворяет условиям позиционирования угла поворота шагового двигателя: +450. Поэтому таблицы временных битовых комбинаций в прямом направлении (+, Таблица 5, листинг 3) и в обратном (-, Таблица 6, листинг 4) примут следующий вид:

Таблица 5 -- Измененные исходные значения битов для моделирования полушагового режима в обратном (+) направлении

Значение угла поворота

Наименования обмоток, на которые подан ток

Битовые значения
(для микроконтроллера)

7

6

5

4

3

2

1

0

450

2a

0

0

0

0

0

1

1

1

900

2a2b

0

0

0

0

0

0

1

1

1350

2b

0

0

0

0

1

0

1

1

1800

2b1b

0

0

0

0

1

0

0

1

2250

1b

0

0

0

0

1

1

0

1

2700

1b1a

0

0

0

0

1

1

0

0

3150

1a

0

0

0

0

1

1

1

0

360000

1a2a

0

0

0

0

0

1

1

0

This program was produced by the

CodeWizardAVR V2.05.1b Evaluation

Automatic Program Generator

© Copyright 1998-2011 Pavel Haiduc, HP InfoTech s.r.l.

Project : issled2

Version : 1

Date : 19.06.2015

Author : Freeware, for evaluation and non-commercial use only

Company : xrom

Comments:

shagmk

Chip type : ATtiny2313A

AVR Core Clock frequency: 4,000000 MHz

Memory model : Tiny

External RAM size : 0

Data Stack size : 32

#include <tiny2313a.h>

#include <delay.h>

// Declare your global variables here

void main(void)

{

// Declare your local variables here

// Crystal Oscillator division factor: 1

#pragma optsize-

CLKPR=0x80;

CLKPR=0x00;

#ifdef _OPTIMIZE_SIZE_

#pragma optsize+

#endif

// Input/Output Ports initialization

// Port A initialization

// Func2=In Func1=In Func0=In

// State2=T State1=T State0=T

PORTA=0x00;

DDRA=0x00;

// Port B initialization

// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out

// State7=1 State6=1 State5=1 State4=1 State3=1 State2=1 State1=1 State0=1

PORTB=0xFF;

DDRB=0xFF;

// Port D initialization

// Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In

// State6=P State5=P State4=P State3=P State2=P State1=P State0=P

PORTD=0x7F;

DDRD=0x00;

while (1)

{

PORTB=0b00000111;//45 grad

delay_ms(1500);

PORTB=0b00000011;//90 grad

delay_ms(1500);

PORTB=0b00001011;//135 grad

delay_ms(1500);

PORTB=0b00001001;//180 grad

delay_ms(1500);

PORTB=0b00001101; //225 grad

delay_ms(1500);

PORTB=0b00001100;//270 grad

delay_ms(1500);

PORTB=0b00001110;//315 grad

delay_ms(1500);

PORTB=0b00000110;//360 --> 00 grad

delay_ms(1500);

}

}

Таблица 6 -- Измененные исходные значения битов для моделирования полушагового режима в обратном (-) направлении

Значение угла поворота

Наименования обмоток, на которые подан ток

Битовые значения
(для микроконтроллера)

7

6

5

4

3

2

1

0

-450

1a

0

0

0

0

1

1

1

0

-900

1a1b

0

0

0

0

1

1

0

0

-1350

1b

0

0

0

0

1

1

0

1

-1800

1b2b

0

0

0

0

1

0

0

1

-2250

2b

0

0

0

0

1

0

1

1

-2700

2b2a

0

0

0

0

0

0

1

1

-3150

2a

0

0

0

0

0

1

1

1

-360000

2a1a

0

0

0

0

0

1

1

0

This program was produced by the

CodeWizardAVR V2.05.1b Evaluation

Automatic Program Generator

Project : issled2

Version : 1

Date : 19.06.2015

Author : Freeware, for evaluation and non-commercial use only

Company : xrom

Comments:

shagmk

Chip type : ATtiny2313A

AVR Core Clock frequency: 4,000000 MHz

Memory model : Tiny

External RAM size : 0

Data Stack size : 32

#include <tiny2313a.h>

#include <delay.h>

// Declare your global variables here

void main(void)

{

// Declare your local variables here

// Crystal Oscillator division factor: 1

#pragma optsize-

CLKPR=0x80;

CLKPR=0x00;

#ifdef _OPTIMIZE_SIZE_

#pragma optsize+

#endif

// Input/Output Ports initialization

// Port A initialization

// Func2=In Func1=In Func0=In

// State2=T State1=T State0=T

PORTA=0x00;

DDRA=0x00;

// Port B initialization

// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out

// State7=1 State6=1 State5=1 State4=1 State3=1 State2=1 State1=1 State0=1

PORTB=0xFF;

DDRB=0xFF;

// Port D initialization

// Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In

// State6=P State5=P State4=P State3=P State2=P State1=P State0=P

PORTD=0x7F;

DDRD=0x00;

while (1)

{

PORTB=0b00011110;//-45 grad

delay_ms(1500);

PORTB=0b00001100;//-90 grad

delay_ms(1500);

PORTB=0b00001101;//-135 grad

delay_ms(1500);

PORTB=0b00001001;//-180 grad

delay_ms(1500);

PORTB=0b00001011; //-225 grad

delay_ms(1500);

PORTB=0b00000011;//-270 grad

delay_ms(1500);

PORTB=0b00000111;//-315 grad

delay_ms(1500);

PORTB=0b00000110;//-360 --> 00 grad

delay_ms(1500);

}

}

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

Вывод: большую нагрузку нельзя “напрямую” подключать к микроконтроллеру. В этом случае, нагрузку к микроконтроллеру необходимо подключать через транзистор, используя его как ключ [5].

Исходя из этого, и подобрав сопротивления, модель Блока Б принимает вид, представленный на рисунке 31:

Рисунок 31 - Модель Блока Б - блока управления шаговым двигателем микроконтроллером на транзисторных ключах

Рисунок 32 - Модель Блока Б - блока управления шаговым двигателем микроконтроллером на транзисторных ключах с кнопками управления

Окончательный вариант Блока Б с добавлением кнопок для управления шаговым двигателем в прямом (+) и обратном (-) направлении представлен на рисунке 32. Программный код управления представлен листингом 5. При этом битовые значения сигналов на соответствующих пинах микроконтроллера соответствуют значениям из таблицы 3 (для прямого (+) направления) и значениям из таблицы 4 (для обратного (-) направления), так как для работы транзистора на базу должно быть подано напряжение (в данном случае 5 В, то есть логическая единица)

This program was produced by the

CodeWizardAVR V2.05.1b Evaluation

Automatic Program Generator

© Copyright 1998-2011 Pavel Haiduc, HP InfoTech s.r.l.

http://www.hpinfotech.com

Project : issled3

Version : 1

Date : 20.06.2015

Author : XROMOLUK

Company : XROM

Comments:

upravl shag dvig

Chip type : ATtiny2313A

AVR Core Clock frequency: 4,000000 MHz

Memory model : Tiny

External RAM size : 0

Data Stack size : 32

#include <tiny2313a.h>

#include <delay.h>

// Declare your global variables here

void main(void)

{

// Declare your local variables here

// Crystal Oscillator division factor: 1

#pragma optsize-

CLKPR=0x80;

CLKPR=0x00;

#ifdef _OPTIMIZE_SIZE_

#pragma optsize+

#endif

// Input/Output Ports initialization

// Port A initialization

// Func2=In Func1=In Func0=In

// State2=T State1=T State0=T

PORTA=0x00;

DDRA=0x00;

// Port B initialization

// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out

// State7=1 State6=1 State5=1 State4=1 State3=1 State2=1 State1=1 State0=1

PORTB=0xFF;

DDRB=0xFF;

// Port D initialization

// Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In

// State6=P State5=P State4=P State3=P State2=P State1=P State0=P

PORTD=0x7F;

DDRD=0x00;

while (1)

{if(PIND.0==0)

{

PORTB=0b00001000;

delay_ms(1500);

PORTB=0b00001100;

delay_ms(1500);

PORTB=0b00000100;

delay_ms(1500);

PORTB=0b00000110;

delay_ms(1500);

PORTB=0b00000010;

delay_ms(1500);

PORTB=0b00000011;

delay_ms(1500);

PORTB=0b00000001;

delay_ms(1500);

PORTB=0b00001001;

delay_ms(1500);

}

if(PIND.1==0)

{

PORTB=0b00000001;

delay_ms(1500);

PORTB=0b00000011;

delay_ms(1500);

PORTB=0b00000010;

delay_ms(1500);

PORTB=0b00000110;

delay_ms(1500);

PORTB=0b00000100;

delay_ms(1500);

PORTB=0b00001100;

delay_ms(1500);

PORTB=0b00001000;

delay_ms(1500);

PORTB=0b00001001;

delay_ms(1500);

}

}

}

Общая структурно-функциональная схема стенда управления шаговым двигателем с добавлением кнопки полного шага в прямом направлении представлена на рисунке 33. Окончательный вариант программы для Блока Б представлен на листинге 6.

Рисунок 33 -- Проект стенда управления шаговым двигателем

This program was produced by the

CodeWizardAVR V2.05.1b Evaluation

Automatic Program Generator

© Copyright 1998-2011 Pavel Haiduc, HP InfoTech s.r.l.

Project : issled3

Version : 1

Date : 20.06.2015

Author : XROMOLUK

Company : XROM

Comments:

upravl shag dvig

Chip type : ATtiny2313A

AVR Core Clock frequency: 4,000000 MHz

Memory model : Tiny

External RAM size : 0

Data Stack size : 32

#include <tiny2313a.h>

#include <delay.h>

// Declare your global variables here

void main(void)

{

// Declare your local variables here

// Crystal Oscillator division factor: 1

#pragma optsize-

CLKPR=0x80;

CLKPR=0x00;

#ifdef _OPTIMIZE_SIZE_

#pragma optsize+

#endif

// Input/Output Ports initialization

// Port A initialization

// Func2=In Func1=In Func0=In

// State2=T State1=T State0=T

PORTA=0x00;

DDRA=0x00;

// Port B initialization

// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out

// State7=1 State6=1 State5=1 State4=1 State3=1 State2=1 State1=1 State0=1

PORTB=0xFF;

DDRB=0xFF;

// Port D initialization

// Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In

// State6=P State5=P State4=P State3=P State2=P State1=P State0=P

PORTD=0x7F;

DDRD=0x00;

while (1)

{if(PIND.0==0)

{

PORTB=0b00001000;

delay_ms(1500);

PORTB=0b00001100;

delay_ms(1500);

PORTB=0b00000100;

delay_ms(1500);

PORTB=0b00000110;

delay_ms(1500);

PORTB=0b00000010;

delay_ms(1500);

PORTB=0b00000011;

delay_ms(1500);

PORTB=0b00000001;

delay_ms(1500);

PORTB=0b00001001;

delay_ms(1500);

}

if(PIND.1==0)

{

PORTB=0b00000001;

delay_ms(1500);

PORTB=0b00000011;

delay_ms(1500);

PORTB=0b00000010;

delay_ms(1500);

PORTB=0b00000110;

delay_ms(1500);

PORTB=0b00000100;

delay_ms(1500);

PORTB=0b00001100;

delay_ms(1500);

PORTB=0b00001000;

delay_ms(1500);

PORTB=0b00001001;

delay_ms(1500);

}

if(PIND.2==0)

{

PORTB=0b00001100;

delay_ms(1500);

PORTB=0b00000110;

delay_ms(1500);

PORTB=0b00000011;

delay_ms(1500);

PORTB=0b00001001;

delay_ms(1500);

}

}

}

2.2 Возможные неполадки в работе шагового двигателя

Вид неполадки

Причина

Рекомендации по устранению

Пропуск шагов

Некачественный блок управления двигателем (подделка драйвера)

Заменить драйвер

Неверные настройки драйвера

Неверно выбранное напря-жение питания и тока. Проверить нас-тройки повторно и отредактировать при необходимости

Двигатель перегружен

Нагрузка на двигатель слишком велика. Снизить скорость или поставить двигатель побольше

Бракованный двигатель

Прозвонить обмотки, проверить их сопротивление(должно совпадать с паспортным).

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

Заменить двигатель при необходимости.

Неточное
исполнение
режимов

Дребезг на контактах управляющих сигналов

Проверить пайку и изоляцию. При необходимости перепаять и заменить изоляцию

Проблемы с генерацией сигналов

Заменить драйвер

Заключение

В данном дипломном проекте представлен проект стенда управления шаговым двигателем в полушаговом прямом (+)режиме, полушаговом обратном (-)режиме и полношаговым режиме (+). Представлен обзор систематизированной теоретической информации, позволяющей поэтапно проследить за ходом разработки проекта стенда. Совершенствование стенда предполагает добавление микрошагового режима управления с использованием специальных микросхем драйверов, таких как:

· микросхемы L293DNE;

· микросхемы M54531P;

· микросхемы ULN2004.

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

Приложения

Приложение А

Структура, основные характеристики и возможности микросхемы ATtiny 2313

Микросхема ATtiny 2313 представляет собой восьмиразрядный микроконтроллер с внутренней программируемой Flash-памятью размером 2 Кбайт.

Общие сведения:

· использует AVRRISC архитектуру;

· AVR-это высокое быстродействие и специальная RISC-архитектура с низким потреблением;

· 120 мощных инструкций, большинство из которых выполняется за один машинный цикл;

· 32 восьмиразрядных регистра общего назначения;

· полностью статическая организация (минимальная частота может быть равна 0);

· до 20 миллионов операций в секунду (MIPS/Sec) при тактовой частоте 20 МГц.

Сохранение программ и данных при выключенном питании:

· Кбайт встроенной программируемой Flash-памяти, до 10000 циклов записи/стирания;

· 128 байт встроенной программируемой энергонезависимой памяти данных (EEPROM);

· до 10000 циклов записи/стирания;

· 128 байт внутреннего ОЗУ (SRAM);

· программируемые биты защиты от чтения и записи программной памяти и EEPROM.

Периферийные устройства:

· один 8-разрядный таймер/счётчик с программируемым определителем и режимом совпадения;

· один 16-разрядный таймер/счетчик с программируемым определителем, режимом совпадения и режимом захвата;

· четыре канала ШИМ (PWM);

· встроенный аналоговый компаратор;

· программируемый сторожевой таймер и встроенный тактовый генератор;

· универсальный последовательный интерфейс USI (Universal Serial Interface);

· полнодуплексный USART.

Особенности микроконтроллера:

· специальный вход debug WIRE для управления встроенной системой отладки;

· внутрисистемный программируемый последовательный интерфейс SPI;

· поддержка как внешних, так и внутренних источников прерываний;

· три режима низкого потребления (Idle, Power-downи Standby);

· встроенная система аппаратного сброса при включении питания;

· внутренний перестраиваемый тактовый генератор;

· цепи ввода-вывода и корпус;

· 18 программируемых линий ввода-вывода;

· три вида корпусов;

· PDIP- 20 контактов;

· SOIC - 20 контактов;

· QFN/MLF - 20 контактных площадок.

Напряжения питания:

· 1,8 - 5,5 В (для ATtiny2313V);

· 2,7 - 5,5 В (для ATtiny2313).

Диапазон частот тактового генератора ATtiny2313V:

· 0-4 МГц при напряжении 1,8-5,5 В;

· 0-10 МГц при напряжении 2,7-5,5 В.

Диапазон частот тактового генератора ATtiny2313:

· 0-10МГц при напряжении 2,7-5,5 В;

· 0-20 МГц при напряжении 4,5-5,5 В.

Ток потребления в активном режиме:

· 1 МГц, 1,8 В: 230 мкА;

· 32 кГц, 1,8 В: 20 мкА (с внутренним генератором).

Ток потребления в режиме низкого потребления:

· не более 0,1 мкА при напряжении 1,8 В.

Ядро AVR имеет большой набор инструкции для работы с 32 регистрами общего назначения. Все 32 регистра непосредственно связаны арифметико-логическим устройством (ALU), которое позволяет выполнять команду для двух разных регистров за один такт системного генератора. Такая архитектура позволила достигнуть производительности в десять раз большей, чем у традиционных микроконтроллеров, построенных по CISC-технологии

Особенности микросхемы ATtiny2313

· Микросхема ATtiny2313 имеет следующие особенности:

· Кбайт системной программируемой Flash-памяти программ;

· 128 байт EEPROM;

· 128 байт SRAM (ОЗУ);

· 18 линий ввода-вывода (I/O);

· 32 рабочих регистра;

· однопроводной интерфейс для внутрисхемной отладки;

· два многофункциональных таймера/счетчика с функцией совпадения;

· поддержка внешних и внутренних прерываний;

· последовательный программируемый USART-порт;

Блок-схема микроконтроллера ATtiny2313:

· универсальный последовательный интерфейс с детектором начала передачи;

· программируемый сторожевой таймер с внутренним генератором;

· три программно изменяемых режима энергосбережения.

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

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

Микросхема изготовлена с использованием уникальной высокочастотной технологии фирмы Atmel. Внутренняя Flash-память программ может быть перепрограммирована при помощи ISP-интерфейса без извлечения микроконтроллера из платы. Объединение 8-разрядного RISC-процессора внутрисистемной перепрограммируемой Flash-памятью на одном кристалле делают микросхему ATtiny2313 мощным средством, которое обеспечивает очень гибкие и недорогие решения многих прикладных задач управления.

Центральное ядро процессора

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

Рассмотрим общие вопросы архитектуры AVR.

Краткая характеристика архитектуры

Чтобы максимально ускорить работу и сделать возможным параллельное выполнение нескольких операций, микроконтроллеры AVR используют Гавардскую архитектуру.

Блок-схема микроконтроллера ATtiny2313

Такая архитектура предусматривает отдельную память и отдельную шину адреса как для программы, так и для данных.

Каждая команда из пяти программ выполняются за один машинный цикл с использованием многоуровневой конвейерной обработки. В тот момент, когда очередная команда выполняется, следующая команда считывается из программной памяти. Такая концепция позволяет выполнять по одной команде за один такт системного генератора. Программный сегмент памяти физически представляет собой встроенную перепрограммируемую Flash-память.

Файл регистров быстрого доступа содержит 32 восьмиразрядных регистра общего назначения, доступ к которым осуществляется за один такт системного генератора. Это позволяет арифметико-логическому устройству (ОЛУ) осуществлять большинство своих операций за один такт.

Типичная операция АЛУ выполняется следующим образом: из регистрового файла читаются два операнда, выполняется операция. Результат сохранения опять же в файле регистров. Все эти три действия выполняются за один цикл тактового генератора.

Шесть из этих 32 регистраторов могут использоваться как три 16-разрядных регистра-указателя косвенной адресации. Эти сдвоенные регистры могут использоваться для адресации данных в адресном пространстве ОЗУ. Такая организация даёт возможность программного вычисления адреса.

Один из этих регистров-указателей может также использоваться в качестве указателя адреса данных, размещённых в памяти программ (Flash-памяти). Эти дополнительные составные 16-разрядные регистры именуются X, Yи Z.

АЛУ поддерживает арифметические и логические операции между двумя регистраторами или между константой и регистратором. В АЛУ также могут выполняться операции с отдельными регистраторами. После каждой арифметической операции обновляется регистр статуса для того, чтобы отразить информацию о её результате.

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

Большинство инструкций AVRпредставляет собой одно 16-разрядное слово. Каждый адрес памяти программы содержит 16-битовую инструкцию или половину 32-разрядной инструкции.

При выполнении процедуры обработки прерывания или подпрограммы текущее значение счётчика команд (PC)сохраняется в стеке.

Стек фактически размещён в одном адресном пространстве с памятью данных SRAM (ОЗУ) и, следовательно, размер стека ограничен только размером SRAM и тем, какую часть SRAM использует остальная программа.

Программа пользователя обязательно должна инициализировать указатель стека (SP)сразу после сброса (прежде, чем будет выполнена подпрограмма или будет вызвано прерывание). Указатель стека (SP) имеет свой конкретный адрес в пространстве регистров ввода-вывода. К данным в ОЗУ (SRAM) можно получить доступ, используя память различных способов адресации, поддержанных архитектурой AVR.

Адресное пространство всех видов памяти в архитектуре AVR являются регулярным линейным. Гибкий модуль прерываний имеет ряд регистраторов управления в адресном пространстве регистров ввода-вывода и дополнительный флаг глобального разрешения прерываний в регистре статуса.

Каждый вид прерывания имеет свой отдельный вектор в таблице векторов прерываний. Прерывания имеют приоритет в соответствии с их положением в таблице векторов прерываний. Чем ниже адрес вектора прерывания, тем выше приоритет.

Пространство регистров ввода-вывода содержит 64 адреса для регистров управления периферийными устройствами, регистров управления режимами работы процессора и другими функциями ввода/вывода. К любому регистру ввода-вывода можно получить доступ непосредственно по его номеру или как к ячейке памяти данных. В адресном пространстве памяти данных регистры ввода-вывода располагаются сразу после файла регистров общего назначения (0x20 - 0x5F).

Характеристики микроконтроллера ATtiny2313

EEPROM

1 Кб

Аналоговые входы (АЦП)

0

Входное напряжение (предельное)

5,5 Вольт

Входное напряжение (рекомендуемое)

4,5-5 Вольт

ОЗУ

128 байт

Тактовая частота

20 МГц

Flash-память

2кБ

Микроконтроллер ATtiny2313 имеет один порт разрядностью 8 бит и один порт разрядностью 7 бит. Модуль для работы по протоколу USART. На нем можно отлично отработать навыки по разработке программ для микроконтроллеров.

Цоколевка корпуса

Размещено на Allbest.ru


Подобные документы

  • Шаговые двигатели, их преимущества и недостатки, статические и динамические характеристики. Двигатели с переменным магнитным сопротивлением. Различные способы управления фазами. Зависимость момента от угла поворота ротора для одной запитанной обмотки.

    курсовая работа [995,1 K], добавлен 07.03.2015

  • Создание высокопроизводительных станков, робототехнических комплексов. Описание работы схемы реверсивного распределения импульсов в коммутаторе системы управления синхронно-шаговым двигателем. Монтажная схема с учетом заданного базиса микросхем на плате.

    курсовая работа [5,1 M], добавлен 09.01.2014

  • Основные виды, устройство и принцип работы шаговых двигателей. Управление шаговым двигателем с помощью автономного контроллера. Управление контроллером с помощью системы программирования PureBasic. Модель крана как пример применения шаговых двигателей.

    дипломная работа [5,7 M], добавлен 06.03.2013

  • Электропривод с двигателем постоянного тока с независимым возбуждением. Построение в MatLab релейной схемы управления двигателем, регулирование по скорости. Сравнительный анализ разработанных систем управления станка с числовым программным управлением.

    курсовая работа [732,0 K], добавлен 08.07.2012

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

    курсовая работа [257,8 K], добавлен 05.02.2013

  • Определение передаточных функций звеньев. Логарифмические характеристики и проверка на устойчивость. Расчет зависимости угловой скорости от задающего напряжения и момента сопротивления в статическом режиме работы. Переходные процессы изменения скорости.

    курсовая работа [1,0 M], добавлен 24.10.2015

  • Принципиальная схема микроконтроллера шагового двигателя: назначение портов вывода, характеристики генератора, блок-схема работы индикатора. Листинг подпрограммы управления микропроцессором и проверка работоспособности по импульсной последовательности.

    курсовая работа [604,2 K], добавлен 05.01.2010

  • Устройство, обслуживание и виды сварочных трансформаторов. Трансформаторы с нормальным магнитным рассеиванием и с магнитными шунтами. Регулировка сварочного тока. Однопостовые сварочные трансформаторы. Схема трансформатора с нормальным магнитным током.

    курсовая работа [747,1 K], добавлен 25.02.2010

  • Синтез регуляторов системы управления для электропривода постоянного тока. Модели двигателя и преобразователя. Расчет и настройка системы классического токового векторного управления с использованием регуляторов скорости и тока для асинхронного двигателя.

    курсовая работа [3,3 M], добавлен 21.01.2014

  • Конструктивное выполнение машин постоянного тока, их основные узлы, принцип действия. Характеристики ДТП, специфика их пуска. Особенности использования принципа параллельного возбуждения. Описание двигателей смешанного возбуждения и сфера их применения.

    реферат [1,2 M], добавлен 31.03.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.