Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Лабораторная работа 6: ОРГАНИЗАЦИЯ ШИМ УПРАВЛЕНИЯ С ПОМОЩЬЮ МОДУЛЯ FREEDUINO



 

Цель работы: 1) Ознакомление с принципами ШИМ управления.

2) Написание программы, организующей аппаратную реализацию ШИМ на основе модуля Freeduino

Объект исследования: модуль Freeduino, линейный привод LAS-2-1-200-12-E

Аппаратные средства: пакет Arduino.

 

 

Краткие теоретические сведения

ШИМ - это широтно-импульсная модуляция. т.е. модуляция (управление) напряжением или током путем изменения ширины импульсов при неизменной их величине.

На экране осциллографа ШИМ сигнал выглядит следующим образом:

Это практически цифровой сигнал. Он имеет 2 состояния - либо включено (на ножке МК это лог. " 1" ), либо выключено (на ножке МК это лог. " 0" ). Для создания ШИМ сигнала используются различные ключи – например, встроенные в МК или внешние транзисторы или реле.

ШИМ ( англ. PWM ) сигнал имеет следующие основные параметры:

- период ШИМ - это время между фронтами (или спадами) соседних импульсов - обозначается T - обычно он постоянен по времени. С периодом связана обратная величина - частота ШИМ равная 1 / T в Гц.

- величина ШИМ - это отношение А / Т умноженное на 100 - получаем проценты (англ. X % duty cycle).

- размах ШИМ - это разность между значениями вкл. и выкл. Значение выкл. может быть и ненулевым.

Применение ШИМ позволяет:

1) регулировать мощность в нагрузке.

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

Вот пример регулирования мощности в электродвигателе:

Мотор подключается к питанию +V когда напряжение " PWM In"

будет достаточным для открывания транзистора IRL540. Мощные полевые и IGBT транзисторы правильно переключать с помощью специальных драйверов – например, IRS2110.

Если частота переключений невысокая (до 2-3 КГц), то можно управлять полевыми транзисторами MOSFET серии IRL ножкой МК через резистор 100 Ом, но лучше использовать транзистор IRLZ44.

Управляя полевым транзистором одной ножкой МK, можно переключать ток 50 -100А. Вместо электродвигателя может быть другой тип нагрузки, например, лампа, нагревательный элемент или смешанная нагрузка - т.е. комбинация R, C и L.

2) ШИМ позволяет выполнить цифро-аналоговое преобразование, т.е. с помощью ШИМ можно выводить аналоговый сигнал. Нужно лишь добавить ФНЧ - фильтр низких частот.

ФНЧ может быть простейшим - к выводу МК, на который выводится ШИМ подключается резистор, а другой вывод резистора заземляется конденсатором - на этом конденсаторе будет результат ЦА преобразования PWM сигнала. Но лучше использовать более надежный фильтр низких частот – ФНЧ на основе операционных усилителей.

AVR ATmega168, используемый в модуле Freeduino, имеет 6 аппаратных ШИМ сигналов с частотой до 78 КГц.

 

 

Ход работы

Объект управления

В качестве объекта управления используется линейный привод (актуатор) LAS-2-1-200-12-E компании HIWIN.

Актюатор или линейный привод - очень компактное устройство, представляющее собой готовую систему позиционирования с интегрированным двигателем постоянного тока, редуктором, выдвижным штоком с трапецеидальной резьбой и гайкой (ШВП или передача винт - гайка). При выдвижении, шток не проворачивается, а движется поступательно. Стандартный ход штока актюаторов HIWIN от 50 до 500 мм, так же поставляются линейные приводы с нестандартной величиной хода. Шестерни редуктора - цилиндрические, прямозубые, стальные или бронзовые. Питание двигателя осуществляется от источника постоянного тока напряжением - 12 или 24 В. Источники питания могут поставляться отдельно.

Диапазон рабочих температур от +5 С° до +40 С°. Так же возможен заказ актюаторов для низких температур от -20 С°, а так же от -40 С°. В стандартном исполнении, актюаторы имеют степень защиты IP54, при агрессивных условиях окружающей среды (запылённость, повышенная влажность и т.д.) степень защиты может быть повышена до IP66.

Все актюаторы оснащены концевыми выключателями. Позиционеры и оптические сенсоры поставляются как опции.

Нагрузочная способность актюаторов в зависимости от типа от 200 до 10 000 Н. Скорость в зависимости от нагрузки от 4 до 46 мм/сек. Нагрузочный цикл - 10%. Возможные цвета корпуса - серый или чёрный.

Параметры данного привода

· Скорость – до 20 мм/с

· Напряжение питания – 12 В

· Ток – максимальный - 6 А,

· Нагрузка:

o Вытягивание – 600 Н

o Втягивание – 600 Н

o Удержание – 300 Н

 

Блок управления

Блок управления содержит:

1 – кнопку включения/выключения драйвера

2 – регулятор ШИМ (скорости линейного привода)

3 – переключатель ручного/автоматического режимов управления

4 – регулятор направления движения штока привода

5 – кнопку включения/выключения блока питания

4
5
3
1

 

Программный код

Инициализация ножек драйвера

 

const int PWM_pin = 6;

const int INA_pin = 7;

const int INB_pin = 4;

const int PWM_on = 5;

const int GND_pin = 3;

 

Инициализация ножек регулятора ШИМ

 

const int pot_GND = A0;

const int pot_pin = A1;

const int pot_PWR = A2;

 

Инициализация ножек регулятора направления движения штока привода

 

const int dir_PWR = 12;

const int dir_left = 11;

const int dir_right = 13;

 

 

void setup()

{

 

Serial.begin(9600);

 

Объявление портов выхода драйвера

 

pinMode(PWM_pin, OUTPUT);

pinMode(INA_pin, OUTPUT);

pinMode(INB_pin, OUTPUT);

pinMode(GND_pin, OUTPUT);

pinMode(PWM_on, OUTPUT);

 

Объявление портов входа\выхода регулятора ШИМ

 

pinMode(pot_GND, OUTPUT);

pinMode(pot_pin, INPUT);

pinMode(pot_PWR, OUTPUT);

 

Объявление портов входа\выхода регулятора направления движения штока привода

 

pinMode(dir_PWR, OUTPUT);

pinMode(dir_left, INPUT);

pinMode(dir_right, INPUT);

 

Запись

 

digitalWrite(GND_pin, LOW);

digitalWrite(PWM_on, HIGH);

 

digitalWrite(pot_GND, LOW);

digitalWrite(pot_PWR, HIGH);

 

digitalWrite(dir_PWR, HIGH);

}

 

Управление скоростью линейного привода с помощью ШИМ

 

void loop()

{

 

int velocity = ((1023 - analogRead(pot_pin)) / 4);

 

прямой ход штока

 

if ((digitalRead(dir_left) == LOW) & & (digitalRead(dir_right) == HIGH)) {

 

analogWrite(PWM_pin, velocity);

digitalWrite(INA_pin, HIGH);  

digitalWrite(INB_pin, LOW);

delay(10);

}

 

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

 

if ((digitalRead(dir_left) == HIGH) & & (digitalRead(dir_right) == LOW)) {

analogWrite(PWM_pin, velocity);

digitalWrite(INA_pin, LOW);  

digitalWrite(INB_pin, HIGH);

delay(10);

}

 

Serial.println(velocity);

 

;

}

 


 


Поделиться:



Последнее изменение этой страницы: 2019-03-20; Просмотров: 316; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.027 с.)
Главная | Случайная страница | Обратная связь