- Необхідний матеріал
- Кругова діаграма
- Що таке сервомотор?
- Пояснення коду Arduino
- Керування кількома сервоприводами за допомогою Arduino - Робота:
Використовувати один або два сервопривода з Arduino просто, але що, якщо ми хочемо використовувати більше одного сервомотора?
Тут ми збираємося показати вам, як керувати кількома серводвигунами за допомогою Arduino. Підключення декількох серводвигунів до Arduino здається простим, але якщо ми підключимо всі сервоприводи до виводів живлення Arduino, вони не працюватимуть належним чином через відсутність достатньої кількості струму для приводу всіх двигунів. Отже, вам доведеться використовувати окреме джерело живлення для двигунів, будь то від деяких адаптерів (5v 2A), або від акумуляторів високої якості 9v.
Необхідний матеріал
- Arduino UNO
- Серводвигун
- Блок живлення
- Макет
- Підключення проводів
Кругова діаграма
Що таке сервомотор?
Перш ніж вдаватися до деталей, спочатку ми повинні знати про сервомотори.
Сервомотори доступні різних форм і розмірів. Сервомотор буде мати в основному там дроти, один для позитивної напруги, інший для заземлення і останній для встановлення положення. ЧЕРВОНИЙ провід підключений до живлення, Чорний провід підключений до землі, а ЖОВТИЙ провід - до сигналу.
Сервомотор - це комбінація двигуна постійного струму, системи управління положенням, шестерень. Положення вала електродвигуна постійного струму регулюється керуючою електронікою в сервоприводі, виходячи з коефіцієнта завантаження ШІМ-сигналу штифтом СИГНАЛУ.
Простіше кажучи, керуюча електроніка регулює положення вала, керуючи двигуном постійного струму. Ці дані щодо положення вала передаються через штифт SIGNAL. Дані про положення управління повинні надсилатися у вигляді ШІМ-сигналу через сигнальний штифт сервомотора.
Частота сигналу ШІМ (модульована по ширині імпульсу) може змінюватися залежно від типу сервомотора. Тут найважливішим є КОЕФІЦІЄНТ ШИМ-сигналу. На основі цього ОБОВ'ЯЗКУ ОБЛАСТІ управління електроніка регулює вал.
Як показано на малюнку нижче, для того, щоб вал переводився на 9o годинник, СИЛОВОСТЬ УВІМКНЕННЯ повинна становити 1/18. 1 мс часу увімкнення та 17 мс часу вимкнення при сигналі 18 мс.
Щоб вал був перенесений на годинник 12o, час включення сигналу повинен становити 1,5 мс, а час вимкнення - 16,5 мс. Цей коефіцієнт декодується системою управління на сервоприводі, і він регулює положення на основі нього. Цей ШІМ тут генерується за допомогою ARDUINO UNO.
Перед підключенням сервоприводів до Arduino ви можете протестувати свій сервопривід за допомогою цієї схеми тестера сервомотора. Також перевірте наші сервопроекти нижче:
- Управління сервомотором за допомогою гнучкого датчика
Пояснення коду Arduino
Повний код Arduino для Multiple Servo Control наведено в кінці.
Arduino має бібліотеку для серводвигунів, і вона обробляє всі пов'язані з ШІМ функції для обертання сервоприводу, вам просто потрібно ввести кут, на який ви хочете повернутись, і є функція servo1.write (кут); який поверне сервопривід на потрібний кут.
Отже, ми починаємо з визначення бібліотеки для сервомотора.
#включати
У наведеному нижче коді ми ініціалізуємо всі чотири сервоприводу як Servo1, Servo2, Servo3 та Servo4.
Серво серво1; Серво серво2; Серво серво3; Серво серво4;
Потім ми встановлюємо весь вхідний штифт сервоприводу за допомогою Arduino. Як показано в коді нижче, Servo1 підключений до 3-го виводу Arduino. Ви можете змінювати шпильки відповідно до вас, але майте на увазі, що це повинен бути ШІМ-штифт. Використання сервоприводу з цифровими штифтами Arduino не є надійним.
void setup () { servo1.attach (3); servo2.attach (5); servo3.attach (6); servo4.attach (9); }
Тепер у функції void loop () ми просто обертаємо весь сервопривід від 0 до 180 градусів, а потім від 180 до 0 градусів. Затримка, використана в наведеному нижче коді, використовується для збільшення або зменшення швидкості сервоприводу, оскільки вона впливає на збільшення або зменшення швидкості змінної 'i'.
void loop () { for (int i = 0; i <180; i ++) { servo1.write (i); servo2.write (i); servo3.write (i); servo4.write (i); затримка (10); } for (i = 180; i> 0; i--) { servo1.write (i); servo2.write (i); servo3.write (i); servo4.write (i); затримка (10); } }
Керування кількома сервоприводами за допомогою Arduino - Робота:
Ми всі стикаємося з поточною проблемою, використовуючи більше двох сервоприводів з одним Arduino. Єдиним рішенням цього є підключення зовнішнього джерела живлення з відповідною величиною струму (у цьому проекті я використовував 2А з джерелом живлення 9 В). Для зовнішнього джерела живлення ви можете використовувати адаптери, RPS (регульований пристрій живлення) або якісні акумулятори напругою 9 В, для використання невеликого сервоприводу можна використовувати USB-порт для ноутбука. Щоб скористатися зовнішнім джерелом живлення, вам просто потрібно підключити землю Arduino до зовнішнього джерела живлення.
Використовуйте код Arduino, наведений нижче, для програмування вашого Arduino та підключіть усі серводвигуни, як показано на схемі, з належним живленням двигунів. Тому всі сервоприводи працюватимуть разом без будь-яких перерв.