Беспроводной джойстик PS2 на 2.4G для Arduino проектов
- Модель:Wireless joystick ps2 for arduino
- Артикул:45014098
- Доступно:54 шт.
- Вес:300.00 г
- Размеры (Д x Ш x В):200.00 x 150.00 x 60.00 мм
Этот беспроводной джойстик PS2 работает на частоте 2.4 ГГц и предназначен для управления Arduino-проектами. Он идеально подходит для управления роботами, автомобильными шасси, дронами или другими DIY устройствами. Устройство отличается простотой подключения и удобством использования благодаря наличию встроенного беспроводного передатчика и приёмника. Джойстик предоставляет несколько аналоговых и цифровых кнопок, что позволяет интегрировать его в проекты с различными потребностями.
Характеристики:
- Рабочая частота: 2.4 ГГц.
- Дальность передачи сигнала: до 10 метров.
- Интерфейс: поддержка передачи данных по SPI или UART через модуль приёмника.
- Питание: 2 батарейки AA (джойстик) и питание 5 В для приёмника.
- Совместимость: Arduino, ESP32, STM32 и другие микроконтроллеры.
Элементы управления:
- 2 аналоговых джойстика.
- 4 кнопки направления (вверх, вниз, влево, вправо).
- 4 функциональные кнопки (X, O, квадрат, треугольник).
- Дополнительные триггеры (L1, R1, L2, R2).
Подключение к Arduino
Подключение приёмника:
Приёмник имеет стандартные выводы:
- VCC – подключается к 5 В (или 3.3 В, в зависимости от микроконтроллера).
- GND – к общему проводу.
- MISO, MOSI, SCK, CS – подключаются к соответствующим пинам на Arduino (для SPI).
Пример подключения:
Приёмник Arduino
-------- -------
VCC 5V
GND GND
MISO D12
MOSI D11
SCK D13
CS D10
Пример кода для Arduino
1. Считывание данных джойстика:
#include <PS2X_lib.h> // Библиотека для работы с PS2 контроллерами
PS2X ps2x; // Объект для управления джойстиком
#define PS2_DAT 12
#define PS2_CMD 11
#define PS2_SEL 10
#define PS2_CLK 13
void setup() {
Serial.begin(9600);
// Инициализация джойстика
if (ps2x.config_gamepad(PS2_CLK, PS2_CMD, PS2_SEL, PS2_DAT, true, true)) {
Serial.println("Ошибка подключения джойстика.");
} else {
Serial.println("Джойстик подключен!");
}
}
void loop() {
ps2x.read_gamepad(false, 0); // Считывание данных
int leftJoystickX = ps2x.Analog(PSS_LX);
int leftJoystickY = ps2x.Analog(PSS_LY);
int rightJoystickX = ps2x.Analog(PSS_RX);
int rightJoystickY = ps2x.Analog(PSS_RY);
if (ps2x.ButtonPressed(PSB_CIRCLE)) {
Serial.println("Кнопка O нажата!");
}
Serial.print("Левый джойстик: X=");
Serial.print(leftJoystickX);
Serial.print(", Y=");
Serial.println(leftJoystickY);
delay(100);
}
2. Управление роботом на основе джойстика:
#include <PS2X_lib.h>
PS2X ps2x;
#define LEFT_MOTOR_PIN 5
#define RIGHT_MOTOR_PIN 6
void setup() {
pinMode(LEFT_MOTOR_PIN, OUTPUT);
pinMode(RIGHT_MOTOR_PIN, OUTPUT);
if (ps2x.config_gamepad(13, 11, 10, 12, true, true)) {
Serial.println("Ошибка подключения!");
} else {
Serial.println("Джойстик подключен.");
}
}
void loop() {
ps2x.read_gamepad(false, 0);
int speed = map(ps2x.Analog(PSS_LY), 0, 255, -255, 255);
analogWrite(LEFT_MOTOR_PIN, abs(speed));
analogWrite(RIGHT_MOTOR_PIN, abs(speed));
if (speed < 0) {
digitalWrite(LEFT_MOTOR_PIN, HIGH);
digitalWrite(RIGHT_MOTOR_PIN, HIGH);
} else {
digitalWrite(LEFT_MOTOR_PIN, LOW);
digitalWrite(RIGHT_MOTOR_PIN, LOW);
}
delay(50);
}
Возможные проблемы и их решения
Не удаётся подключиться к джойстику:
- Проверьте правильность подключения проводов.
- Убедитесь, что джойстик и приёмник находятся в зоне действия сигнала.
Некорректное считывание данных:
- Убедитесь, что установлена подходящая библиотека (например, PS2X).
- Проверьте конфигурацию SPI на Arduino.
Задержки в работе:
- Сократите частоту опроса в функции read_gamepad.
- Проверьте, нет ли помех в работе 2.4 ГГц сигнала.
Проблемы с питанием:
- Убедитесь, что батарейки джойстика заряжены.
- Проверьте, что приёмник получает стабильное напряжение.
Комплектация:
- Джойстик PS2 беспроводной (батарейки типа ААА в комплект не входят)
- Радио приемник
- Переходная плата подключения к контроллеру
- Соединительные провода
Библиотека и пример PS2X_lib
Пока не было вопросов.

































