Código Arduino para usar um joystick XY de dois eixos com uma tela LCD Nokia 5110

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).

Nokia 5110_LCD

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

FabricanteTexas Instruments
Número da peçaL293D
Tensão lógica/E/S5 V
Tensão de alimentação4,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 PWM20 kHz
Limiares lógicos de entradacompatível com TTL
Queda de tensão / RDS(ligado) / saturação1.5 V máx.
Limites térmicos150 °C
PacoteDIP-16
Notas / variantesAmplamente 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

Arduino wiring for Nokia 5110 LCD  with Joystick
Arduino wiring for Nokia 5110 LCD with Joystick

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.

Nokia 5110_LCD back view

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

Imagens

Nokia 5110_LCD back view
Nokia 5110_LCD back view
Arduino wiring for Nokia 5110 LCD  with Joystick
Arduino wiring for Nokia 5110 LCD with Joystick
Nokia 5110_LCD
Nokia 5110_LCD
81-Arduino code: Dual-axis joystick with Nokia 5110 screen to display dots
Idioma: C++
Copiado!

Coisas que você pode precisar

Recursos e referências

Arquivos📁

Arquivo Fritzing