Лабораторна робота №6. Проект з сервоприводом на arduino
Формування компетенцій
ЗК 3, ФК 2, ФК 7, ФК 10, ФК 12.
Мета: дослідити роботу сервоприводу, з використанням фотоелементу та мікроконтролера Arduino.
Завдання: зібрати схему і написати програму зміни положення кута сервоприводу відповідно до роботи фотоелементу.
Обладнання: мікроконтролер Arduino, сервопривід, 2 фотоелемента, проводи-конектори.
Загальні відомості
Сервопривід (серводвигун, сервомашина) є пристроєм, котрий містить електричний двигун. Він дозволяє точно керувати рухом (наприклад, положенням лопасті, як на рис. 4.11) за допомогою негативного зворотного зв’язку. Серводвигун також складається з датчика та блока керування. Блок керування підтримує певні значенняй на датчику за зовнішнім параметром.
Принцип роботи
Спочатку сервопривід отримує імпульсний сигнал — управляючий, котрий і визначає кут повороту валу серводвигуна. Далі блок керування починає порівнювати отриманий параметр із значенням на його датчику. Залежно від результату порівняння, система управління продукує сигнал, який визначає, яку дію треба виконати: прискорення чи уповільнення, поворот, щоб порівняні метрики стали однаковими.
У якості двигуна в механізмі сервоприводу застосовуються колекторні, колекторні Coreless (без осердя) та безколекторні двигуни.
Фотоелемент – електричний пристрій, що виконує роль перетворювача частини світлової енергії в електричну за допомогою фотоефекту. Принцип роботи сучасних фотоелементів заснований на напівпровідниковому p-n переході. Коли фотон поглинається в області, яка прилягає до p-n переходу, утворюється пара носіїв заряду: електрон та дірка. Одна із цих часток являє собою неосновний заряд і з великою ймовірністю проникає крізь перехід. У результаті, за рахунок поглинання енергії фотонів, заряди розділені в просторі й не можуть бути рекомбінованими. Унаслідок
цього порушується рівновага густини зарядів. При підключення елемента до зовнішнього навантаження, по колу протікає струм.
Бібліотека Servo.h
Дана бібліотека дозволяє Arduino управляти роботою серводвигунів. Стандартні сервомашини дозволяють задавати кут повороту валу в діапазоні від 0 до 180 градусів. У двигунах з безперервним обертанням валу можна задавати швидкість його обертання.
У бібліотеці Servo реалізована можливість одночасного управління декількома двигунами: на більшості плат Arduino – до 12, на Arduino Mega – до 48. При цьому, на всіх платах Arduino (за винятком Arduino Mega) використання цієї бібліотеки призводить до непрацездатності ШІМ-функції
analogWrite() на висновках 9 і 10, незалежно від того, підключений серводвигун до цих висновків, чи ні. На платі Arduino Mega діють інші правила: якщо до Arduino підключено менше 12 двигунів, то бібліотека Servo не впливає на ШІМ-функції; в разі підключення від 12 до 23 двигунів - функція ШІМ стане недоступна на виводах 11 і 12.
Деякі команди:
attach() – асоціює вихід Arduino зі змінною типу Servo.
Примітка: у версіях Arduino до 0016 бібліотека Servo може працювати тільки з
серводвигунами, підключеними до виходів 9 і 10.
read() – повертає поточний кут повороту валу серводвигуна (значення, передане функції write () при останньому виклику).
write() – функція відправляє сервоприводу значення, величина якого впливає на стан вала двигуна. У звичайних сервоприводах це значення задає кут повороту вала в градусах. У сервоприводах безперервного обертання таке значення задає швидкість обертання валу (0 – максимальна швидкість в одному напрямку, 180 – максимальна швидкість в іншому напрямку; відправка значення, приблизно рівного 90, призводить до зупинки двигуна).
writeMicroseconds() – відправляє серводвигунів сигнал завдання, виражений в мікросекундах, який характеризує стан вала. У звичайних сервоприводах відправляється значення визначає кут повороту вала. При цьому числа 1000 означає крайнє ліве положення вала (проти годинникової стрілки), 2000 – крайнє праве (за годинниковою стрілкою), а 1500 – положення по середині.
Хід виконання роботи
1. Зібрати макет відповідно завдання.
2. Підключити схему до живлення(5В).
3. Завантажити програму в мікроконтролер Arduino.
4. Перевірити правильність роботи програми.
Контрольні питання
1. Що таке сирвопривід, які складові даної системи? Опишіть принцип роботи.
2. Що таке фотоелемент та на чому побудований його принцип роботи?
3. Яка бібліотека використовується для керування сервопиводом?
4. Який кут повороту валу задають сучасні сервомашини?
5. Які функції виконує команда writeMicroseconds()?
Завдання
Реалізувати ручне керування сервоприводом за допомогою контролера Arduino та підключених до нього кнопок. Здійснити керування 4-ма кнопками на кути (-45о, -90о, +45о, +90 о ) та при цьому виводити значення поточного кута повороту сервопривода на підключений дисплей)
Приклад керування сервоприводом нав. в л.р.5.
Звіт повинен містити
- Назву і мету роботи
- Дані про автора
- Варіант завдання
- Текст програми
- Скріни виконаного завдання
- Опис до скрінів виконаного завдання
- Висновки
Звіт завантажити у форматі *.pdf
Шрифти
Розмір шрифта
Колір тексту
Колір тла
Кернінг шрифтів
Видимість картинок
Інтервал між літерами
Висота рядка
Виділити посилання