Все статьиHardware

Управление двумя сервоприводами SG-90 джойстиком

БА
Бексултан Айтен
CTO, Alashed
21 июня 2025 г.
7 мин чтения
Управление двумя сервоприводами SG-90 джойстиком

Как сделать проект на Arduino — управление сразу двумя сервоприводами SG-90 с помощью джойстика. Код, схема подключения и видео-демонстрация.

Управление двумя сервоприводами SG-90 джойстиком
Управление двумя сервоприводами SG-90 джойстиком

Всем привет!

В этой статье я расскажу, как сделать интересный и несложный проект на Arduino — управление сразу двумя сервоприводами с помощью джойстика.

Джойстик — аналоговое устройство ввода, которое имеет два потенциометра, ручку и кнопку. При движении ручки поворачиваются оси потенциометров и изменяются данные на аналоговых выходах потенциометров.

Наш код будет принимать значения с джойстика, сопоставлять со значениями градуса для сервопривода (сопоставляются значения с джойстика и градус серво — 0-0, 1023-180), затем отправлять нужное значение на серво.

Дополнительно устанавливать библиотеки не нужно, нужна только одна библиотека Servo.h, но она уже предустановлена в IDE.

Код скопируйте вот здесь:

```cpp

#include <Servo.h>

// Создаем объекты для сервоприводов

Servo servoX;

Servo servoY;

// Пины подключения

const int joyX = A0; // Джойстик X-ось

const int joyY = A1; // Джойстик Y-ось

const int servoPinX = 5; // Серво X (горизонталь)

const int servoPinY = 6; // Серво Y (вертикаль)

void setup() {

// Прикрепляем сервоприводы к соответствующим пинам

servoX.attach(servoPinX);

servoY.attach(servoPinY);

}

void loop() {

// Чтение значений с джойстика

int xValue = analogRead(joyX);

int yValue = analogRead(joyY);

// Преобразование значений в градусы (0-180)

int angleX = map(xValue, 0, 1023, 0, 180);

int angleY = map(yValue, 0, 1023, 0, 180);

// Управление сервоприводами

servoX.write(angleX);

servoY.write(angleY);

// Небольшая задержка для стабильности

delay(10);

}

`

Схема подключения представлена ниже. Сервоприводы обязательно нужно запитать от мощного источника питания, не от Arduino. Если запитать от платы, от USB, то сервоприводы не будут вращаться и питание на плате будет проседать. Я подключил БП на 12 вольт к плате и подключил сервы на 5V. Но рекомендую запитывать всё-таки от внешнего питания, не от Arduino.

Схема подключения сервоприводов SG-90 к Arduino с джойстиком
Схема подключения сервоприводов SG-90 к Arduino с джойстиком

Видео-демонстрация работы:

(скоро)

Попробуйте Alashed бесплатно

Подключите школу к пилоту. Генерируйте КМЖ за 2 минуты, ведите CodeStudio уроки, заказывайте оборудование — всё в одном месте.

Попробовать бесплатноДемо