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

Здравствуйте товарищи, Ардуино знаю только поверхностно, но появилась необходимость в создании пульта ДУ и приемника.
Элементы:
arduino mini pro
Nrf24l01
Сервоприводы
Джойстик

Суть задумки
Пульт состоящий из Ардуино мини, передатчика и джойстика общается с приемником, на приемнике 2 сервопривода х у вращения, не получается заставить их вращаться, но при этом кнопка джойстика ещё должна переводить в запоминание сектора, например на 90°нажимаем кнопку, ведём до 120° и отпускаем, пока мы управляем джойстиком, все как обычно повороты в право в лево вверх вниз, но когда не трогаем джойстик, то включается память и серво начинают ходить по запомненному сектору туда обратно, по сути запоминать нужно только х.
Может ли кто помочь с програмной частью?
Буду очень благодарен

#include <SPI.h>
#include <RF24.h>

RF24 radio(9, 10); // CE, CSN пины для nRF24L01

const int joystickXPin = A; // Пин для оси X джойстика  
const int joystickYPin = A1; // Пин для оси Y джойстика  
const int buttonPin = 2; // Пин для кнопки джойстика

int savedAngleX = ; // Переменная для хранения запомненного угла X  
int savedAngleY = ; // Переменная для хранения запомненного угла Y  
bool buttonPressed = false; // Флаг для отслеживания состояния кнопки

struct DataPackage {
    int angleX;
    int angleY;
};

void setup() {
    pinMode(buttonPin, INPUT_PULLUP); // Устанавливаем кнопку как вход с подтяжкой  
    Serial.begin(960); // Инициализация последовательного порта  
    radio.begin(); // Инициализация nRF24L01  
    radio.openWritingPipe(xFFFFE1LL); // Установите адрес для передачи  
    radio.setPALevel(RF24_PA_HIGH); // Установите уровень мощности  
}

void loop() {
    int joystickXValue = analogRead(joystickXPin); // Читаем значение оси X  
    int joystickYValue = analogRead(joystickYPin); // Читаем значение оси Y

    // Преобразуем значения в угол (например, от  до 180)
    int angleX = map(joystickXValue,0 , 1023,0 , 180);
    int angleY = map(joystickYValue, 0, 1023, 0, 180);

    // Проверяем состояние кнопки  
    if (digitalRead(buttonPin) == LOW && !buttonPressed) { // Если кнопка нажата  
        savedAngleX = angleX; // Запоминаем угол X  
        savedAngleY = angleY; // Запоминаем угол Y  
        buttonPressed = true; // Устанавливаем флаг  
        Serial.print("Углы запомнены: X=");
        Serial.print(savedAngleX);
        Serial.print(", Y=");
        Serial.println(savedAngleY);
    } else if (digitalRead(buttonPin) == HIGH) {
        buttonPressed = false; // Сбрасываем флаг, когда кнопка отпущена  
    }

    // Если джойстик не двигается (в пределах допустимого диапазона)
    if (abs(joystickXValue - 512) < 50) { // 50 - это допустимый диапазон  
        angleX = savedAngleX; // Устанавливаем запомненный угол X  
    }
    if (abs(joystickYValue - 512) < 50) { // 50 - это допустимый диапазон  
        angleY = savedAngleY; // Устанавливаем запомненный угол Y  
    }

    // Отправляем данные  
    DataPackage data;
    data.angleX = angleX;
    data.angleY = angleY;
    radio.write(&data, sizeof(data)); // Отправляем углы

    Serial.print("Текущие углы: X=");
    Serial.print(angleX);
    Serial.print(", Y=");
    Serial.println(angleY); // Печатаем текущие углы

    delay(100); // Задержка для стабильности  
}

Приемник

#include <RF24.h>
#include <Servo.h>

RF24 radio(9, 10); // CE, CSN пины для nRF24L01  
Servo servoX; // Серво для оси X  
Servo servoY; // Серво для оси Y

struct DataPackage {
    int angleX;
    int angleY;
};

int currentAngleX = ; // Текущий угол X  
int currentAngleY = ; // Текущий угол Y  
int savedAngleX = ; // Запомненный угол X  
int savedAngleY = ; // Запомненный угол Y  
unsigned long lastMoveTime = ; // Время последнего движения  
const unsigned long moveInterval = 100; // Интервал движения по запомненному сектору

void setup() {
    servoX.attach(3); // Подключаем сервопривод X к пину 3  
    servoY.attach(5); // Подключаем сервопривод Y к пину 5  
    Serial.begin(960); // Инициализация последовательного порта  
    radio.begin(); // Инициализация nRF24L01  
    radio.openReadingPipe(1, xFFFFE1LL); // Установите адрес для приема  
    radio.setPALevel(RF24_PA_HIGH); // Установите уровень мощности  
    radio.startListening(); // Начинаем слушать  
}

void loop() {
    if (radio.available()) { // Если есть доступные данные  
        DataPackage data;
        radio.read(&data, sizeof(data)); // Читаем данные

        // Устанавливаем углы для сервоприводов  
        currentAngleX = data.angleX;
        currentAngleY = data.angleY;

        // Запоминаем углы  
        savedAngleX = currentAngleX;
        savedAngleY = currentAngleY;

        Serial.print("Полученные углы: X=");
        Serial.print(currentAngleX);
        Serial.print(", Y=");
        Serial.println(currentAngleY); // Печатаем полученные углы  
    } else {
        // Если нет данных, движемся по запомненному сектору  
        if (millis() - lastMoveTime > moveInterval) {
            servoX.write(savedAngleX);
            servoY.write(savedAngleY);
            lastMoveTime = millis(); // Обновляем время последнего движения  
        }
    }

    // Устанавливаем углы для сервоприводов  
    servoX.write(currentAngleX);
    servoY.write(currentAngleY);
}```

Вам необходимо опубликовать свой код и схему подключения.

Зачем его публиковать, если я попросил помощи в новом коде, а не исправлении ошибок кода сгенерированого ии

Пины джойстика а0 А1 кнопка какой зададим
Пины серво какие зададим
Пины nrf24l01 ce cns для подключения

Я понимаю. Вы хотите, чтобы работа была сделана за вас. здесь:

Легче не стало

Ты не пробовал.

А здесь нельзя ответить? Обязательно на другом разделе что-то писать? Смысл от комментариев, если они бесполезны

Сам хорошо разбираешься в таких кодах с вайфай модулями? Если дам код, сможешь ошибки показать и объяснить почему не пашет?

Если вы разместите здесь код, кто-нибудь поможет.

Как его добавить здесь? Просто вставить и все?