Código Arduino e Vídeo: Joystick de Dois Eixos

Código Arduino e Vídeo: Joystick de Dois Eixos

Neste tutorial, vamos explorar como utilizar um joystick XY de dois eixos com Arduino. Este joystick pode ser usado como controlador de jogos ou para controlar braços robóticos, entre outras aplicações. O foco principal será detectar a posição do joystick e o estado do seu botão de pressão, e exibir essas informações no monitor serial.

XY-Dual access joystick

Ao longo do tutorial, implementaremos um programa simples que lê as posições X e Y do joystick e as exibe no Monitor Serial do Arduino. Quando o joystick for pressionado, o estado do interruptor também será detectado. Para uma explicação detalhada do código, certifique-se de assistir ao vídeo nos marcadores de tempo especificados (no vídeo em 00:00).

Hardware explicado

Os componentes principais deste projeto incluem o módulo de joystick de dois eixos e a placa Arduino. O módulo do joystick é composto por dois resistores variáveis, um para o eixo X e outro para o eixo Y, que fornecem valores analógicos com base na posição do joystick. O botão pulsador do joystick é usado para detectar quando ele é pressionado.

Quando você move o joystick, os potenciômetros alteram sua resistência, que é convertida em valores entre 0 e 1023. Isso nos permite determinar a posição do joystick com precisão. O botão de pressão está conectado a um pino de entrada digital do Arduino, permitindo-nos ler seu estado sem precisar de um resistor externo, utilizando o resistor pull-up interno.

Detalhes da Ficha Técnica

FabricanteGenérico
Número da peçaMódulo de joystick de dois eixos
Tensão lógica/E/S5 V
Tensão de alimentação5 V
Faixa de tensão de saída0 a 5 V
ResoluçãoAnalógico de 10 bits (0-1023)
Tipo de interruptorBotão pulsador
PacoteMódulo padrão

  • Garanta a alimentação adequada (5 V) ao módulo do joystick.
  • Conecte as saídas X e Y do joystick aos pinos analógicos A0 e A1, respectivamente.
  • Use o pino digital 6 para o interruptor do joystick.
  • Utilize uma configuração de resistor pull-up para o pino do interruptor.
  • Monitore os valores de saída para garantir que estejam entre 0 e 1023.

Instruções de fiação

Arduino wiring for XY-Dual access joystick
Arduino wiring for XY-Dual access joystick
Arduino X-Y-Joystick wiring
Arduino X-Y-Joystick wiring

Para ligar o joystick de dois eixos ao Arduino, comece conectando o pino de terra do joystick ao trilho de terra da sua protoboard. Em seguida, conecte o pino de 5V do joystick ao trilho positivo da protoboard. Os dois pinos variáveis do joystick, rotulados como X e Y, devem ser conectados aos pinos analógicos do Arduino.A0eA1no Arduino, respectivamente.

Para o interruptor de pressão no joystick, conecte-o ao pino digital6no Arduino. Esta conexão utiliza o resistor pull-up interno, portanto você não precisa de um resistor externo. Por fim, se você quiser monitorar o estado do interruptor com um LED, conecte a perna mais longa do LED ao pino digital13e a perna mais curta através de um resistor de 680 ohms ao terra.

Exemplos de Código e Guia Passo a Passo

No código Arduino, definimos o pino do interruptor e especificamos as dimensões da tela para mapear os valores do joystick. A função setup inicializa a comunicação serial e configura o modo do pino do interruptor.

void setup() {
  Serial.begin(9600); // initialize serial communication
  pinMode(sw, INPUT_PULLUP); // setting pin sw as input
  pinMode(13, OUTPUT); // LED pin
}

Na função loop, lemos os valores analógicos das posições X e Y e os mapeamos para as dimensões da tela definidas. O estado do interruptor também é lido e impresso no Monitor Serial.

void loop() {
  int x = analogRead(A0); // read analog value for X
  int y = analogRead(A1); // read analog value for Y
  int sStat = digitalRead(sw); // read switch state
  // Print values to Serial Monitor
  Serial.print("X: ");
  Serial.print(xPos);
  Serial.print(" Y: ");
  Serial.println(yPos);
}

Finalmente, o código verifica se o botão está pressionado, ligando ou desligando o LED com base no estado do botão. Isso fornece feedback visual quando o botão do joystick é ativado.

if(sStat == LOW) {
    Serial.println("Switch pressed");
    digitalWrite(13, HIGH); // Turn LED ON
  } else {
    digitalWrite(13, LOW); // Turn LED OFF
  }

Para ver como os valores do joystick mudam em tempo real, carregue o código no seu Arduino e abra o Monitor Serial. Os valores serão atualizados a cada meio segundo, exibindo as posições atuais X e Y juntamente com o estado do interruptor (no vídeo em 01:30).

Demonstração / O que esperar

Quando você mover o joystick, os valores X e Y devem mudar de acordo, variando de 0 a 1023. Se você pressionar o botão do joystick, o LED conectado ao pino 13 acenderá, indicando que o interruptor está ativo. Se o joystick estiver centralizado, você deve ver valores em torno de 512 para ambos os eixos, dependendo da calibração do joystick.

Marcadores de tempo do vídeo

  • 00:00- Introdução ao joystick de dois eixos
  • 01:30- Explicação do código e funcionalidade
  • 02:45- Instruções de fiação
  • 03:15- Saída esperada e testes

Imagens

Arduino wiring for XY-Dual access joystick
Arduino wiring for XY-Dual access joystick
XY-Dual access joystick
XY-Dual access joystick
XY-Dual access joystick
XY-Dual access joystick
XY-Dual access joystick
XY-Dual access joystick
XY-Dual access joystick
XY-Dual access joystick
XY-Dual access joystick
XY-Dual access joystick
Arduino X-Y-Joystick wiring
Arduino X-Y-Joystick wiring
58-This is the Arduino code for a dual-axis joystick.
Idioma: C++
Copiado!

Coisas que você pode precisar

Recursos e referências

Ainda não há recursos.

Arquivos📁

Nenhum arquivo disponível.