// Пины подключения кнопки-джойстика и светодиода
const int pinX = A0; // Пин для оси X
const int pinY = A1; // Пин для оси Y
const int ledPin = 10; // Пин для светодиода
const int ledPin2 = 9;
const int ledPin3 = 8;
const int ledPin4 = 7;
// Пределы значений осей X и Y
const int minValue = 100; // Минимальное значение
const int maxValue = 900; // Максимальное значение
unsigned long prevTime = 0; // Предыдущее время
const unsigned long interval = 100; // Интервал времени (мс)
void setup() {
// Инициализация сериал монитора
Serial.begin(9600);
// Установка пина светодиода как выхода
pinMode(ledPin, OUTPUT);
pinMode(ledPin2, OUTPUT);
pinMode(ledPin3, OUTPUT);
pinMode(ledPin4, OUTPUT);
}
void loop() {
// Получение текущего времени
unsigned long currentTime = millis();
// Проверка временной задержки
if (currentTime - prevTime >= interval) {
// Чтение значений осей X и Y
int axisX = analogRead(pinX);
int axisY = analogRead(pinY);
// Проверка значений оси X
if (axisX <= minValue) {
Serial.println("D");
digitalWrite(ledPin3, LOW); // Выключение светодиода 3
digitalWrite(ledPin2, HIGH); // Включение светодиода 2
} else if (axisX >= maxValue) {
Serial.println("A");
digitalWrite(ledPin2, LOW); // Выключение светодиода 2
digitalWrite(ledPin3, HIGH); // Включение светодиода 3
} else {
digitalWrite(ledPin2, HIGH); // Влключение светодиода 2
digitalWrite(ledPin3, HIGH); // Включение светодиода 3
}
// Проверка значений оси Y
if (axisY <= minValue) {
Serial.println("S");
digitalWrite(ledPin4, LOW);
digitalWrite(ledPin, HIGH);
} else if (axisY >= maxValue) {
Serial.println("W");
digitalWrite(ledPin, LOW); // Включение светодиода 1
digitalWrite(ledPin4, HIGH);
} else {
digitalWrite(ledPin, HIGH);
digitalWrite(ledPin4, HIGH); // Выключение светодиода 4
}
prevTime = currentTime; // Обновление предыдущего времени
}
}