#include <Servo.h>
Servo servoX; // Сервопривод для горизонтального движения
Servo servoY; // Сервопривод для вертикального движения
const int horiz = A0; // Горизонтальная ось (X)
const int vert = A1; // Вертикальная ось (Y)
const int deadzone = 20; // Мертвая зона для избежания дребезга
int posX = 90; // Начальная позиция серво X
int posY = 90; // Начальная позиция серво Y
void setup() {
servoX.attach(9);
servoY.attach(10);
servoX.write(posX);
servoY.write(posY);
}
void loop() {
int xValue = analogRead(horiz);
int yValue = analogRead(vert);
// Преобразуем аналоговые значения в диапазон -512 до 512
int moveX = map(xValue, 0, 1023, -512, 512);
int moveY = map(yValue, 0, 1023, -512, 512);
// Двигаем сервопривод только если наклон больше deadzone
if (abs(moveX) > deadzone) {
posX += moveX / 100; // Чем больше наклон, тем быстрее движение
posX = constrain(posX, 0, 180);
}
if (abs(moveY) > deadzone) {
posY += moveY / 100;
posY = constrain(posY, 0, 180);
}
servoX.write(posX);
servoY.write(posY);
delay(15); // Плавность движения
}