Construa um Módulo Joystick Arduino: Guia Passo a Passo
Módulo Joystick
Você está lidando atualmente com projetos relacionados a movimento e robótica? Então, há chance de que você já tenha ouvido falar do módulo Joystick Arduino, mas não saiba como fazer um.
Ou talvez queira obter mais informações sobre como funciona um módulo joystick Arduino?
Então, você está no lugar certo.
O objetivo de um Joystick Arduino é comunicar movimento a um Arduino. E ele faz isso em 2-D (2 eixos), tornando-o adequado para aplicações de movimento e robótica.
Neste artigo, você aprenderá tudo sobre o módulo joystick Arduino, como ele funciona e como fazer um circuito joystick Arduino fácil.
Está pronto? Vamos lá!
O que é um Módulo Joystick?
Quase não existe projeto robótico que não exija um joystick. Às vezes é difícil conseguir um controlador que funcione para seus projetos, e pode até ser caro. Mas, um módulo joystick fornece uma maneira mais acessível de alcançar o mesmo resultado.
Além disso, o módulo joystick funciona de forma semelhante aos joysticks encontrados em gamepads analógicos. Seus componentes-chave são dois potenciômetros inclinados em ângulos de 90 graus. Além disso, há uma conexão entre um bastão curto (com molas no centro) e os potenciômetros.
Potenciômetros
O módulo joystick pode emitir cerca de 2,5V dos eixos X e Y quando está em repouso. Agora, quando você move o Joystick, a saída varia de 0V a 5V. No entanto, isso depende da direção.
Além disso, se você usar um microcontrolador com o módulo joystick, o valor real na posição de repouso seria cerca de 512. Assim, quando você move este Joystick, pode ver os valores mudarem de 0 a 1023, mas isso depende de sua posição.
Configuração de Pinos
Aqui está a configuração de pinos para o módulo joystick:
| Pino Nº | Nome do Pino | Descrição |
| 1 | GND | Terminal de terra do módulo |
| 2 | +5V | Terminal de alimentação positiva do módulo |
| 3 | VRx | Tensão proporcional ao eixo X |
| 4 | VRy | Tensão proporcional ao eixo Y |
| 5 | SW | Chave do módulo |
Características
Aqui estão as principais características do módulo joystick Arduino:
- Possui dois potenciômetros independentes para cada eixo (X e Y)
- Não tem muito peso
- Você pode facilmente interligar o módulo com a maioria dos microcontroladores ou Arduino
- Retorna automaticamente à posição central quando não está em uso
- Também possui um botão tipo copo
Especificações Técnicas
As especificações do módulo joystick incluem:
- Tensão de operação de 5V
- O valor do potenciômetro interno é 10k
- Sua temperatura de operação é cerca de 0 a 70 graus Celsius
- Os terminais da interface de pinos são 2,54mm
- As dimensões do módulo joystick são: 1,57 pol x 1,02 pol x 1,26 pol (4,0 cm x 2,6 cm x 3,2 cm)
- Possui cinco pinos
- Dois potenciômetros controlam as direções horizontal e vertical do módulo.
Diagrama Esquemático
A imagem abaixo mostra o esquema completo do módulo joystick. Como mencionado anteriormente, o módulo possui dois potenciômetros que controlam os eixos X e Y.
Esquemático para Módulo Joystick
Além disso, ambos os potenciômetros (10k) movem-se independentemente. Em outras palavras, você pode movê-los individualmente e em suas direções. Também há uma conexão interna do pino do interruptor (SW) ao botão de pressão.
Interligando Joystick com Arduino
Módulos joystick são compatíveis com muitos microcontroladores como Raspberry Pi, Arduino e outros. Além disso, é fácil interligar, e primeiro você deve conectar os pinos dos eixos VRx e VRy aos pinos ADC do microcontrolador.
Além disso, se planeja usar um interruptor, deve conectar o botão aos pinos digitais do microcontrolador.
Módulo Joystick para Microcontrolador
Agora, o diagrama a seguir mostrará como interligar um módulo joystick com um Arduino. Com este diagrama, você poderá conectar o módulo ao Arduino. Também obterá uma saída dependendo da direção em que mover o botão do joystick.
Módulo Joystick para Arduino
Uma vez terminada a interligação, descobriremos que cada direção tem uma faixa de saída fixa. A imagem a seguir mostrará a saída para os eixos X e Y dependendo do movimento do módulo joystick nas quatro direções, +X, -X, +Y e –Y. Também haverá alguns valores analógicos quando mover o botão diagonalmente.
Direções de Movimento
Se você quiser saber quando pressiona o botão do Joystick para baixo, também pode conectar o pino SW ao pino digital 8 do Arduino.
Além disso, o Joystick requer energia para funcionar corretamente. Então, conecte o pino VCC ao terminal 5V do Arduino e o GND ao terminal GND do Arduino.
Código Arduino
É bem fácil codificar este programa no Arduino IDE. Para obter os melhores resultados, você medirá o movimento do Joystick de um pino de entrada digital e duas entradas analógicas. Então, o Arduino exibirá o impacto no seu monitor.
A melhor parte:
Você não precisa de uma biblioteca para codificar este programa. Ele simplesmente lê a entrada analógica e exibe os valores que obtém dela. Além disso, também mostra a saída do botão de pressão.
Aqui está o esboço bruto do código:
#define joyX A0
#define joyY A1
void setup() {
Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
xValue = analogRead(joyX);
yValue = analogRead(joyY);
//print the values with to plot or view
Serial.print(xValue);
Serial.print("\t");
Serial.println(yValue);
}
Imagem mostrando o código Arduino
Mapeamento
Às vezes, não se trata apenas de ler valores analógicos, e pode haver necessidade de mapear seu módulo para um display ou outras interfaces. Para ajudá-lo com isso, mostraremos como mapear os valores do código acima para uma matriz de LED 8x8.
Mapeamento Arduino
O resultado deste processo é mover os pixels no display com o Joystick. Também é fácil alterar o código para mapeá-lo a um display OLED ou gráfico.
#include "LedControl.h"
#define joyX A0
#define joyY A1
int xMap, yMap, xValue, yValue;
LedControl lc = LedControl(12, 11, 10, 1);
void setup() {
Serial.begin(115200);
lc.shutdown(0, false);
/* Set the brightness to a medium values */
lc.setIntensity(0, 8);
/* and clear the display */
lc.clearDisplay(0);
}
void loop() {
// put your main code here, to run repeatedly:
xValue = analogRead(joyX);
yValue = analogRead(joyY);
xMap = map(xValue, 0, 1023, 0, 7);
yMap = map(yValue, 0, 1023, 7, 0);
lc.setLed(0, xMap, yMap, true);
lc.clearDisplay(0);
}
Imagem do código necessário para mapear o Arduino a um display OLED ou gráfico
Nota: o código acima mostra que você pode usar a função map() para mapear as faixas de acordo com suas preferências.
Então, se você acertar tudo, a saída no seu monitor serial deve parecer com isto:
Aplicações
Aqui estão algumas aplicações do módulo Joystick Arduino:
- Você pode usar o módulo joystick em robótica
Drone Robô
- Você também pode controlar o movimento de uma câmera móvel
Câmera Móvel
- Uma grande variedade de aplicações de movimento
Conclusão
Quando você ouve a palavra Joystick, a primeira coisa que pode vir à mente seriam controladores de jogos. No entanto, existem tantas aplicações interessantes do módulo joystick quando se trata de eletrônica DIY.
Controladores de Jogos
Além disso, esses módulos funcionam principalmente para projetos DIY baseados em Arduino e controle de robô. Como discutimos anteriormente, o módulo joystick primeiro libera saída analógica para alimentar a entrada analógica dependendo do movimento horizontal ou vertical do bastão.
Bem, isso conclui este artigo. Se você tiver alguma dúvida ou sugestão, sinta-se à vontade para nos contatar. Estamos sempre felizes em ajudar.
Tecnologia industrial
- Crie um Botão de Teclado "Socável" Personalizado com Arduino: Guia Passo a Passo
- Conectando Arduino Mega ao Módulo GPS NEO‑6M: Guia Passo a Passo
- Volante Joystick Arduino Personalizado para Jogos
- Criar Tons Musicais com Arduino: Um Guia Passo a Passo
- Porta Automática com Arduino e Sensor Ultrassônico HC-SR04
- Construa um Carro Controlado por Bluetooth com Arduino: Guia DIY Completo
- Construa um Mini Osciloscópio DIY com Arduino Nano – Tutorial Passo a Passo
- Automação Residencial JARVIS v1 com Arduino Nano – Tutorial Passo a Passo
- Kit de Projeto Arduino Due: TFT, GPS, RTC, Sensores, Bluetooth e Joystick – Lista Completa de Componentes
- Construa um Robô Controlado por Gestos em Casa com Arduino e MPU-6050