Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Лабораторная работа 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 – кнопку включения/выключения блока питания
Программный код Инициализация ножек драйвера
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; Просмотров: 321; Нарушение авторского права страницы