Корзина 0 позиций
на сумму 0 ₽
+7 (495) 664 38 98
Наша почта:
sale@ardstudio.ru
Адрес | Как проехать?
Москва, космонавта Волкова, 10
Время работы:
Пн-Вс 10-19

Двухосевой модуль джойстика TZT для Arduino

Двухосевой модуль джойстика TZT для Arduino  от магазина ArdStudio в Москве
Двухосевой модуль джойстика TZT для Arduino  от магазина ArdStudio в Москве
Двухосевой модуль джойстика TZT для Arduino  от магазина ArdStudio в Москве
Двухосевой модуль джойстика TZT для Arduino  от магазина ArdStudio в Москве
Двухосевой модуль джойстика TZT для Arduino  от магазина ArdStudio в Москве
Двухосевой модуль джойстика TZT для Arduino  от магазина ArdStudio в Москве
  • Артикул AS00352
90 ₽
Количество
шт
Двухосевой джойстик — удобный и наглядный интерфейс для управления электронными устройствами. Модуль от TZT позволяет легко добавить в проект на Arduino ручное аналоговое управление по двум координатам (X и Y) плюс кнопочный ввод (Z). Он широко применяется в игровых контроллерах, робототехнике, системах дистанционного управления и интерактивных инсталляциях.

Как устроен и как работает двухосевой модуль джойстика TZT для Arduino

Модуль объединяет:
  • два потенциометра (по 10 кОм) — для осей X и Y;
  • тактовую кнопку — активируется при нажатии на ручку джойстика.

Принцип работы двухосевого модуля джойстика TZT для Arduino:

К крайним выводам каждого потенциометра подаётся напряжение (5 В и GND).
При наклоне ручки движок потенциометра перемещается, меняя сопротивление.
На среднем выводе формируется аналоговое напряжение (0–5 В), пропорциональное углу наклона.
Arduino считывает напряжение через аналоговые входы и переводит в числовое значение (0–1023).
Кнопка (ось Z) выдаёт цифровой сигнал (HIGH/LOW) при нажатии.

Особенность: джойстик самоцентрирующийся — после отпускания ручка возвращается в среднее положение благодаря пружинному механизму.

Ключевые характеристики двухосевого модуля джойстика TZT для Arduino: 
1. Напряжение питания: 3,3–5 В.
2. Выходной сигнал:
  • аналоговый (X, Y): 0–5 В (соответствует положению ручки);
  • цифровой (Z): HIGH/LOW (состояние кнопки).
3. Разрешение АЦП: 10 бит (значения 0–1023 для X и Y).
4. Сопротивление потенциометров: 10 кОм.
5. Тип кнопки: мгновенного действия (momentary).
6. Угол отклонения: ~30° в каждую сторону (зависит от механики).
7. Габариты: ~34 × 34 × 15 мм.
8. Разъём: 5‑контактный (VCC, GND, VRx, VRy, SW).

Как интерпретировать данные:
В нейтральном положении X и Y ≈ 512 (2,5 В).
Наклон вправо/вверх ↑ значение X/Y → ближе к 1023 (5 В).
Наклон влево/вниз ↓ значение X/Y → ближе к 0 (0 В).
Кнопка Z: 0 — нажата, 1 — отпущена (при включённом подтягивающем резисторе).

Типичные проекты и сценарии
1. Игровой контроллер
  • управление персонажем в аркаде;
  • симулятор полёта/гонок.
2. Робот‑манипулятор
  • ручное управление захватом и суставами;
  • навигация платформы.
3. Дистанционный пульт
  • управление сервоприводами, моторами, освещением;
  • интерфейс для «умного дома».
4. Интерактивная инсталляция
  • управление визуальными эффектами (свет, видео);
  • арт‑объекты с обратной связью.
5. Симулятор или тренажёр
  • имитация управления техникой (кран, экскаватор);
  • обучение оператора.
6. Графическая навигация
  • перемещение курсора или объекта на экране;
  • управление камерой в 3D‑среде.
7. Настройка параметров
  • регулировка громкости, яркости, температуры;
  • выбор режимов устройства.
Плюсы и ограничения двухосевого модуля джойстика TZT для Arduino
Преимущества:
  • простое подключение к Arduino;
  • два аналоговых канала + цифровая кнопка в одном модуле;
  • самоцентрирующаяся ручка — удобство использования;
  • низкая стоимость и доступность;
  • компактный размер;
  • наглядность управления.
Ограничения:
  • механический износ потенциометров и кнопки (ресурс ~10 000–50 000 циклов);
  • небольшой угол отклонения (не для точных измерений);
  • погрешность потенциометров (±10 %);
  • чувствительность к грязи и влаге (негерметичность);
  • люфт при длительной эксплуатации.

Скетч для двухосевого модуля джойстика TZT на Arduino
Необходимые компоненты:
  • Плата Arduino (Uno, Nano, Mega и др.);
  • Двухосевой модуль джойстика TZT;
  • Соединительные провода.
Схема подключения
  • Модуль джойстика имеет 5 контактов:
  • VCC → 5 V Arduino;
  • GND → GND Arduino;
  • VRX (ось X) → аналоговый пин A0 Arduino;
  • VRY (ось Y) → аналоговый пин A1 Arduino;
  • SW (кнопка) → цифровой пин 2 Arduino.
Базовый скетч (вывод данных в Serial Monitor)

const int SW_PIN = 2;     // Пин для кнопки джойстика
const int X_PIN = A0;    // Пин для оси X
const int Y_PIN = A1;    // Пин для оси Y


void setup() {
  pinMode(SW_PIN, INPUT);
  digitalWrite(SW_PIN, HIGH);  // Включаем внутренний подтягивающий резистор
  Serial.begin(9600);
  Serial.println("Джойстик инициализирован. Ожидание данных...");
}


void loop() {
  // Считываем значения осей и кнопки
  int xValue = analogRead(X_PIN);
  int yValue = analogRead(Y_PIN);
  int buttonState = digitalRead(SW_PIN);


  // Выводим данные в Serial Monitor
  Serial.print("X: ");
  Serial.print(xValue);
  Serial.print(" | Y: ");
  Serial.print(yValue);
  Serial.print(" | Кнопка: ");
  Serial.println(buttonState == LOW ? "НАЖАТА" : "ОТПУЩЕНА");

  delay(200);  // Задержка для удобства чтения
}


Расширенный скетч (с обработкой «мёртвой зоны» и масштабированием)

const int SW_PIN = 2;
const int X_PIN = A0;
const int Y_PIN = A1;


// Параметры калибровки
const int DEADZONE = 10;      // «Мёртвая зона» вокруг центра (в единицах АЦП)
const int MIN_READ = 0;         // Минимальное значение АЦП
const int MAX_READ = 1023;    // Максимальное значение АЦП
const int MIN_OUT = -100;     // Минимальное выходное значение
const int MAX_OUT = 100;     // Максимальное выходное значение

int lastButtonState = HIGH;     // Предыдущее состояние кнопки
unsigned long lastPressTime = 0;  // Время последнего нажатия


void setup() {
  pinMode(SW_PIN, INPUT);
  digitalWrite(SW_PIN, HIGH);
  Serial.begin(9600);
  Serial.println("Расширенный скетч джойстика. Ожидание данных...");
}


void loop() {
  int xRaw = analogRead(X_PIN);
  int yRaw = analogRead(Y_PIN);
  int buttonRaw = digitalRead(SW_PIN);

  // Обработка «мёртвой зоны» для осей
  int xProcessed = mapAxis(xRaw);
  int yProcessed = mapAxis(yRaw);

  // Дебаунсинг кнопки
  handleButton(buttonRaw);


  // Вывод данных
  Serial.print("X: ");
  Serial.print(xProcessed);
  Serial.print(" | Y: ");
  Serial.print(yProcessed);
  Serial.print(" | Кнопка: ");
  Serial.println(buttonRaw == LOW ? "НАЖАТА" : "ОТПУЩЕНА");

  delay(100);
}

// Функция обработки оси с «мёртвой зоной»
int mapAxis(int rawValue) {
  if (abs(rawValue - 512) < DEADZONE) {
    return 0;  // В «мёртвой зоне» — возвращаем 0
  }
  // Масштабируем значение в диапазон MIN_OUT...MAX_OUT
  return map(rawValue, MIN_READ, MAX_READ, MIN_OUT, MAX_OUT);
}

// Функция дебаунсинга кнопки
void handleButton(int currentState) {
  unsigned long currentTime = millis();
  if (currentState == LOW && lastButtonState == HIGH && currentTime - lastPressTime > 50) {
    Serial.println("--> Кнопка нажата!");
    lastPressTime = currentTime;
  }
  lastButtonState = currentState;
}


Пояснения к коду
1. Подключение пинов
  • Оси VRX/VRY подключаются к аналоговым пинам (A0, A1) — они возвращают значения 0–1023.
  • Кнопка SW подключается к цифровому пину с внутренним подтягивающим резистором (HIGH в покое, LOW при нажатии).
2. Чтение данных
  • analogRead() — считывает положение осей (0 = крайнее левое/нижнее, 1023 = крайнее правое/верхнее, ~512 = центр).
  • digitalRead() — проверяет состояние кнопки (HIGH = отпущена, LOW = нажата).
3. Обработка «мёртвой зоны»
  • В функции mapAxis() задаётся зона вокруг центра (по умолчанию ±10 единиц), где значение считается нулевым. Это устраняет «дрожание» в центральном положении.
4. Дебаунсинг кнопки
  • Функция handleButton() фильтрует ложные срабатывания кнопки (дребезг контактов) с задержкой 50 мс.
5. Масштабирование значений
  • map() преобразует диапазон 0–1023 в удобный для использования (например, -100…+100).
Калибровка джойстика
1. Центр осей
  • В покое значения X/Y должны быть около 512. Если сильно отличаются — проверьте подключение или качество модуля.
2. «Мёртвая зона»
  • Подберите DEADZONE так, чтобы в покое возвращалось 0, но при небольшом отклонении — ненулевое значение.
3. Крайние положения
  • При полном отклонении оси значение должно быть близко к 0 или 1023. Если нет — возможно, потенциометр изношен.
Рекомендации по использованию
1. Питание
  • Используйте стабильное 5 В. При нестабильном питании добавьте конденсатор 100 мкФ между VCC и GND.
2. Механические ограничения
  • Не прилагайте чрезмерных усилий к ручке джойстика — это может повредить потенциометры.
3. Фильтрация шумов
  • Для плавных значений можно добавить усреднение (среднее из 3–5 измерений).
4. Применение
  • Управление сервоприводами/моторами (X = скорость, Y = направление).
  • Интерфейс пользователя (меню, навигация).
  • Игры и симуляторы.
  • Робототехника (дистанционное управление).
Возможные доработки
Сохранение калибровки — запишите крайние значения X/Y в EEPROM.
Экспоненциальное масштабирование — для более точного управления в центре.
Жёсткие ограничения — добавьте проверку на перегрузку потенциометров.
Мультиплексирование — подключите несколько джойстиков через аналоговый мультиплексор.
  • Артикул AS00352
  • Бренд TZT
  • Рекомендуемое напряжение питания 3,3–5  В
Двухосевой модуль джойстика TZT для Arduino
90 ₽

Датчик движения HC-SR501 TZT для Arduino

  110 ₽
Артикул
AS00345
шт

Датчик газа MQ-2 TZT для Arduino

  160 ₽
Артикул
AS00323
шт

Адаптер питания 9В, 2А для Arduino

  760 ₽
Артикул
AS00325
шт

Мини-модуль светофора TZT для Arduino

  60 ₽
Артикул
AS00340
шт
Корзина 0 позиций
на сумму 0 ₽