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

Всем привет!
В этой статье я расскажу, как сделать интересный и несложный проект на Arduino — управление сразу двумя сервоприводами с помощью джойстика.
Джойстик — аналоговое устройство ввода, которое имеет два потенциометра, ручку и кнопку. При движении ручки поворачиваются оси потенциометров и изменяются данные на аналоговых выходах потенциометров.
Наш код будет принимать значения с джойстика, сопоставлять со значениями градуса для сервопривода (сопоставляются значения с джойстика и градус серво — 0-0, 1023-180), затем отправлять нужное значение на серво.
Дополнительно устанавливать библиотеки не нужно, нужна только одна библиотека Servo.h, но она уже предустановлена в IDE.
Код скопируйте вот здесь:
#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.

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