Código Arduino para usar um joystick XY de dois eixos com uma tela LCD Nokia 5110
Este tutorial irá guiá-lo através do processo de utilização de um joystick XY de dois eixos para controlar um ponto exibido num ecrã LCD Nokia 5110. O projeto envolve ler a posição do joystick e atualizar o ecrã em conformidade. No final deste guia, terá uma configuração funcional em que mover o joystick altera a posição de um ponto no ecrã (no vídeo em 00:00).

Neste projeto, você utilizará as saídas analógicas do joystick para determinar sua posição nos eixos X e Y. As leituras do joystick serão mapeadas para as dimensões da tela LCD, permitindo que o ponto se mova suavemente. Além disso, você aprenderá a ler a entrada do interruptor do joystick, que pode ser usada para interações adicionais.
Hardware Explicado
Os componentes principais deste projeto incluem o Arduino, o joystick XY de dois eixos e o display LCD Nokia 5110. O Arduino atua como microcontrolador, processando as entradas do joystick e controlando o display LCD.
O joystick normalmente tem dois potenciômetros, um para o eixo X e outro para o eixo Y. À medida que você move o joystick, esses potenciômetros alteram a resistência, enviando níveis de tensão variáveis para os pinos de entrada analógica do Arduino. A tela LCD Nokia 5110 é controlada via comunicação SPI, o que permite transferência eficiente de dados e atualizações do display.
Detalhes da ficha técnica
| Fabricante | Texas Instruments |
|---|---|
| Número da peça | L293D |
| Tensão lógica/E/S | 5 V |
| Tensão de alimentação | 4,5-36 V |
| Corrente de saída (por canal) | 600 mA |
| Corrente de pico (por canal) | 1.2 A |
| Orientação sobre a frequência PWM | 20 kHz |
| Limiares lógicos de entrada | compatível com TTL |
| Queda de tensão / RDS(ligado) / saturação | 1.5 V máx. |
| Limites térmicos | 150 °C |
| Pacote | DIP-16 |
| Notas / variantes | Amplamente utilizado em aplicações de acionamento de motor |
- Assegure a dissipação de calor adequada para operação contínua.
- Use capacitores de desacoplamento para uma alimentação estável.
- Verifique as classificações de tensão para evitar danificar os componentes.
- Tenha cuidado com os sinais PWM; certifique-se de que estejam dentro dos limites especificados.
- Verifique as conexões da fiação para evitar curtos-circuitos.
Instruções de fiação

Para ligar o joystick e o ecrã LCD ao Arduino, comece por ligar o pino VCC do joystick ao 5V do Arduino e o pino GND ao GND do Arduino. Ligue a saída do eixo X do joystick ao pino analógicoA0e a saída do eixo Y para o pino analógicoA1. A saída do interruptor do joystick deve ser conectada ao pino digital2.
Para o LCD Nokia 5110, conecte os seguintes pinos: VCC a 5V, GND a GND, SCE ao pino7, RST ao pino6, D/C para pino5, DN(MOSI) ao pino11, e SCLK ao pino13. Por fim, conecte o pino do LED através de um resistor de 330 Ohm ao pino9para controle da retroiluminação
Exemplos de código e tutorial passo a passo
Na função setup(), inicializamos a comunicação serial e o LCD. O comandolcdBegin()Configura os pinos e inicializa o display. O contraste é ajustado para visibilidade ideal.
void setup() {
Serial.begin(9600);
lcdBegin();
setContrast(40);
delay(1000);
clearDisplay(BLACK);
updateDisplay();
}Isso inicializa os componentes necessários para o projeto, garantindo que o LCD esteja pronto para exibir informações.

Na função loop, lemos a posição do joystick e a mapeamos para as dimensões da tela. A posição do ponto é atualizada com base nos valores X e Y do joystick.
void loop() {
int x = analogRead(A0); // read the x position of joystick
int y = analogRead(A1); // read the y position of joystick
int xPos = map(x, 0, 1023, 0, screenWidth); // map x to screen
int yPos = map(y, 0, 1023, 0, screenHeight); // map y to screen
setCircle(xPos, yPos, thickness, BLACK, 2); // display the dot
updateDisplay();
delay(10);
}Este código atualiza continuamente a posição do ponto na tela LCD com base no movimento do joystick.
Demonstração / O que esperar
Ao ligar o circuito, o LCD exibirá um ponto. Mover o joystick reposicionará o ponto em tempo real de acordo com os movimentos X e Y do joystick. Se o interruptor do joystick for pressionado, isso pode acionar funcionalidades adicionais que você pode implementar. Esteja ciente de possíveis entradas flutuantes se o joystick não estiver centralizado, o que pode levar a movimentos inesperados do ponto (no vídeo em 01:30).
Marcas de tempo do vídeo
- 00:00- Introdução ao projeto
- 01:30- Explicação da fiação
- 02:45- Passo a passo do código
- 04:10- Demonstração da funcionalidade
Coisas que você pode precisar
-
Amazonas
-
AmazonasPurchase XY Joystick from Amazonamzn.to
Recursos e referências
Arquivos📁
Arquivo Fritzing
-
Nokia 5110 LCD
application/zip0.03 MB -
Black Joystick KY-023
application/zip0.02 MB