Сервомотор і arduino

Вчимося керувати сервомотором з використанням Arduino.

Спочатку ми розглянемо як забезпечити обертання вихідного вала серводвігателя в автоматичному режимі "вперед" і в зворотному напрямку. Після цього додатково включимо в схему потенціометр, який забезпечить управління поворотом сервоприводу.

необхідні вузли

Для того, щоб освоїти наведені в статті методики управління сервоприводом вам знадобляться:

  • 1 сервомотор
    Сервомотор і arduino
  • 1 змінний резистор (потенціометр) на 10 кОм
    Сервомотор і arduino
  • Монтажна плата
    Сервомотор і arduino
  • 1 мікроконтролер Arduino Uno
    Сервомотор і arduino
  • Коннектори тато-тато
    Сервомотор і arduino
  • 1 конденсатор на 100 мкФ (не обов'язково)
    Сервомотор і arduino

Схема підключення для 'Sweep' (автоматичне обертання)

Для цього експерименту вам треба підключити до Arduino тільки сервомотор.

Сервомотор і arduino

На сервомоторами 3 контакту. Колір контактів може відрізнятися в залежності від фірми виробника, але червоний - це завжди контакт 5 В. Контакт GND (земля) може бути чорним або коричневим. Що залишився третій контакт - це сигнал, який використовується для управління становищем ротора серви. Зазвичай він жовтого або жовтого кольорів. Цей контакт ми підключаємо до цифрового піну 9 на Arduino.

На контактах серви передбачені роз'єми, в які можна встановити коннектори (проводу) і з'єднати з макетної платою, а потім з Arduino.

Сервомотор і arduino

серводвигун смикається

Іноді при підключенні серви відпрацьовується задані команди або відпрацьовують некоректно. Причому відбуватися це може тільки при підключенні до певних USB портів. Причина в тому, що серви вимагають досить велику потужність для живлення, особливо на початку руху ротора. Ці різкі скачки споживаної потужності можуть сильно "просаджувати" напруга на Arduino. Може статися навіть перезавантаження плати.

Якщо подібне відбувається, вам треба додати конденсатор (470 мкФ або більше) між рейками GND і 5V на вашій макетке.

Сервомотор і arduino

Конденсатор виконує роль своєрідна резервуара для електричного струму. Коли серводвигун починає працювати, він отримує залишки заряду з конденсатора і від джерела живлення Arduino одночасно.

Довга нога конденсатора - це позитивний контакт, вона підключається до 5V. Негативний контакт часто маркується символом '-'.

Скетч Arduino 'Sweep' (автоматичне обертання)

Завантажте на Arduino скетч, який розглянуто нижче. Після завантаження ротор серви повинен почати обертатися в одному напрямку, а потім в протилежному.

Програма заснована на стандартному скетчі 'sweep', який ви можете знайти в меню Arduino Examples в папці 'servo'.

int servoPin = 9;

int angle = 0; // кут серви в градусах