Каталог товарів
Клієнту
+38 (066) 305-77-25
Наша адреса
Харків, тимчасово - доставка тільки Новою Поштою, УкрПоштою, МістЕкспрес, ROZETKA Delivery
Телефони
Графік роботи
  • Пн-Пт: з 9 до 18
  • Сб: з 10 до 17
  • Нд: з 11 до 16
E-mail
Ми в соцмережах
Перейти до контактів
0 0
Каталог
Головна
Закладки
0
Порівняти
0
Контакти

Підключення сервоприводу SG90 до Arduino

Підключення сервоприводу SG90 до Arduino
Підключення сервоприводу SG90 до Arduino

Підключення сервоприводу SG90 до Arduino

Зміст

1. Вступ

Сучасна робототехніка та автоматизація не обходяться без використання сервоприводів — електромеханічних пристроїв, що дозволяють точно контролювати кутове положення, швидкість та прискорення. Серед доступних та популярних моделей виділяється сервопривод SG90. Цей мініатюрний та економічний пристрій часто використовується в освітніх проектах, прототипуванні та аматорських розробках.

У цій статті ми детально розглянемо, як підключити сервопривод SG90 до платформи Arduino, яка стала стандартом для багатьох ентузіастів електроніки. Ми також дослідимо принципи роботи сервоприводів, їх програмування та можливості розширення функціональності.

2. Огляд сервоприводу SG90

сервопривод SG90

Технічні характеристики

Параметр Значення
Робоча напруга 4.8V ~ 6V
Максимальний кут повороту 180 градусів
Швидкість 0.1 с/60° при 4.8V
Момент 1.8 кг·см при 4.8V
Розміри 22.2 × 11.8 × 31 мм
Вага ~9 г

Принцип роботи

Сервопривод SG90 є позиційним сервоприводом, який використовує сигнал PWM (широтно-імпульсна модуляція) для визначення кута повороту. Вбудований потенціометр дозволяє контролеру визначати поточний кут і коригувати його відповідно до вхідного сигналу.

Цікаво знати: Технологія PWM використовується не тільки в сервоприводах, але й у багатьох інших пристроях, включаючи регулятори яскравості світлодіодів та управління швидкістю двигунів.

3. Необхідні матеріали та обладнання

  • Arduino UNO або інша сумісна плата (Nano, Mega тощо).
  • Сервопривод SG90.
  • Макетна плата (бредборд) для зручності підключення.
  • З'єднувальні дроти (папа-папа або папа-мама залежно від потреби).
  • Зовнішнє джерело живлення (якщо планується використовувати кілька сервоприводів або інші енергомісткі компоненти).
  • USB-кабель для підключення Arduino до комп'ютера.

4. Підключення SG90 до Arduino

Схема з'єднання

Схема підключення

Підключення дротів:

  1. Коричневий дріт (GND) → Підключіть до GND на Arduino.
  2. Червоний дріт (+V) → Підключіть до 5V на Arduino.
  3. Помаранчевий дріт (Signal) → Підключіть до цифрового виходу D9 на Arduino.

Зауваження щодо живлення

  • Ємність живлення: Arduino може забезпечити обмежений струм на виході 5V. Якщо сервопривод піддається навантаженню або використовується кілька сервоприводів, рекомендується використовувати зовнішнє джерело живлення (наприклад, батарею або блок живлення 5V).
  • Спільне заземлення: У разі використання зовнішнього джерела живлення необхідно з'єднати GND зовнішнього джерела з GND Arduino для забезпечення спільного заземлення.

5. Програмування Arduino для керування SG90

Використання бібліотеки Servo.h

Arduino IDE містить вбудовану бібліотеку Servo.h, яка спрощує керування сервоприводами.

Переваги використання Servo.h:

  • Простота у використанні.
  • Підтримка до 12 сервоприводів на Arduino UNO та до 48 на Arduino Mega.
  • Автоматичне управління сигналами PWM.

Приклад коду

#include <Servo.h>

Servo myServo;  // Створення об'єкта класу Servo

void setup() {
  myServo.attach(9);  // Підключення сервоприводу до виходу D9
}

void loop() {
  // Поворот сервоприводу від 0° до 180°
  for (int pos = 0; pos <= 180; pos += 1) {
    myServo.write(pos);
    delay(15);  // Затримка для плавності руху
  }
  // Поворот сервоприводу від 180° до 0°
  for (int pos = 180; pos >= 0; pos -= 1) {
    myServo.write(pos);
    delay(15);
  }
}
        

Пояснення коду

  • Імпорт бібліотеки: #include <Servo.h> додає можливість використовувати функції для керування сервоприводом.
  • Створення об'єкта: Servo myServo; створює екземпляр сервоприводу.
  • Ініціалізація: У функції setup() ми підключаємо сервопривод до певного піна (myServo.attach(9);).
  • Основний цикл: У loop() сервопривод спочатку обертається від 0° до 180°, а потім назад.
  • Плавність руху: Затримка delay(15); забезпечує плавний перехід між позиціями.

6. Тестування та налагодження

  1. Завантаження скетчу: Підключіть Arduino до комп'ютера та завантажте код через Arduino IDE.
  2. Спостереження: Сервопривод повинен плавно обертатися вперед і назад.
  3. Перевірка підключення: Якщо сервопривод не рухається, перевірте правильність з'єднань.
  4. Перевірка живлення: Переконайтеся, що сервопривод отримує достатню напругу.

Можливі проблеми та їх вирішення

  • Сервопривод тремтить або рухається ривками:
    • Причина: Недостатнє або нестабільне живлення.
    • Рішення: Використовуйте зовнішнє джерело живлення з достатнім струмом.
  • Сервопривод не реагує:
    • Причина: Неправильне підключення сигналу або GND.
    • Рішення: Перевірте всі з'єднання та спільне заземлення.
  • Перегрів сервоприводу:
    • Причина: Перевантаження або блокування руху.
    • Рішення: Забезпечте вільний рух та уникайте тривалого утримання в крайніх положеннях.

7. Розширені можливості та проекти

Керування декількома сервоприводами

Arduino дозволяє керувати кількома сервоприводами одночасно.

Схема кількома сервоприводами одночасно

Приклад:

#include <Servo.h>

Servo servo1;
Servo servo2;

void setup() {
  servo1.attach(9);
  servo2.attach(6);
}

void loop() {
  servo1.write(90);
  servo2.write(45);
  delay(1000);
}
        

Інтеграція з датчиками

Додавання датчиків дозволяє створювати інтерактивні системи.

Приклад проекту: Сервопривод, керований датчиком відстані. У цьому проекті ми будемо використовувати датчик відстані HC-SR04, щоб змінювати кут сервоприводу залежно від виміряної відстані.

Приклад коду з датчиком відстані

#include <Servo.h>
#include <NewPing.h>

#define TRIGGER_PIN 12  // Пін для тригера
#define ECHO_PIN 11     // Пін для ехо
#define MAX_DISTANCE 200 // Максимальна відстань у см
Servo myServo;  // Створюємо об'єкт для керування сервоприводом

NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // Ініціалізація ультразвукового датчика

void setup() {
  myServo.attach(9);  // Підключаємо сервопривод до піну 9
}

void loop() {
  int distance = sonar.ping_cm(); // Вимірюємо відстань
  if (distance > 0) {
    int angle = map(distance, 0, 200, 0, 180); // Масштабуємо відстань до кута сервоприводу
    myServo.write(angle); // Повертаємо сервопривод
  }
  delay(100); // Невелика затримка між вимірами
}
    

8. Цікаві факти про сервоприводи та Arduino

  • Широке застосування: Сервоприводи використовуються не лише в робототехніці, але й у моделях літаків, автомобілях, механізмах автоматичних дверей та системах відеоспостереження.
  • Простота управління: Сервоприводи прості у використанні завдяки стандартним інтерфейсам PWM, що робить їх ідеальними для навчання електроніці та програмуванню.
  • Точність: Вони можуть забезпечувати точне управління положенням, що робить їх корисними для маніпуляторів та інших механізмів, які вимагають точності.

9. Висновок

Підключення сервоприводу SG90 до Arduino є чудовим початковим проектом для тих, хто цікавиться робототехнікою та електронікою. Використовуючи бібліотеку Servo.h, можна легко створити програми для управління сервоприводом та додавати додаткові елементи, такі як датчики або кілька сервоприводів для розширених проектів. Сподіваємося, ця стаття допомогла вам зрозуміти принципи роботи та налаштування сервоприводів з Arduino.

© 2024 Мій Проект. Автор матеріалу Jazzzman. Використання матеріалів дозволено лише з посиланням на джерело.

Рекомендовані товари