Codice Arduino per utilizzare un joystick XY a doppio asse con uno schermo LCD Nokia 5110

Codice Arduino per utilizzare un joystick XY a doppio asse con uno schermo LCD Nokia 5110

Questo tutorial ti guiderà attraverso il processo di utilizzo di un joystick XY a due assi per controllare un punto visualizzato su uno schermo LCD Nokia 5110. Il progetto prevede la lettura della posizione del joystick e l'aggiornamento del display di conseguenza. Al termine di questa guida avrai una configurazione funzionante in cui muovendo il joystick si modifica la posizione di un punto sullo schermo (nel video a 00:00).

Nokia 5110_LCD

In questo progetto utilizzerai le uscite analogiche del joystick per determinare la sua posizione sugli assi X e Y. Le letture del joystick saranno mappate sulle dimensioni dello schermo LCD, permettendo un movimento fluido del punto. Inoltre, imparerai a leggere l'ingresso dell'interruttore del joystick, che può essere usato per ulteriori interazioni.

Hardware spiegato

Le componenti principali per questo progetto includono l'Arduino, il joystick XY a doppio asse e il display LCD Nokia 5110. L'Arduino funge da microcontrollore, elaborando gli ingressi dal joystick e controllando il display LCD.

Il joystick tipicamente ha due potenziometri — uno per l'asse X e uno per l'asse Y. Quando si muove il joystick, questi potenziometri cambiano resistenza, inviando livelli di tensione variabili ai pin di ingresso analogico dell'Arduino. Il display LCD Nokia 5110 è controllato tramite comunicazione SPI, che consente un trasferimento dati efficiente e aggiornamenti del display.

Dettagli della scheda tecnica

ProduttoreTexas Instruments
Numero di parteL293D
Tensione logica/I/O5 V
Tensione di alimentazione4.5-36 V
Corrente di uscita (per canale)600 mA
Corrente di picco (per canale)1.2 A
Linee guida sulla frequenza PWM20 kHz
Soglie logiche di ingressoCompatibile con TTL
Caduta di tensione / RDS(on) / saturazione1,5 V max
Limiti termici150 °C
PacchettoDIP-16
Note / variantiAmpiamente utilizzato nelle applicazioni dei driver per motori.

  • Garantire una corretta dissipazione del calore per il funzionamento continuo.
  • Usare condensatori di disaccoppiamento per un'alimentazione stabile.
  • Verificare le tensioni nominali per evitare di danneggiare i componenti.
  • Siate cauti con i segnali PWM; assicuratevi che rientrino nei limiti specificati.
  • Verificare le connessioni del cablaggio per evitare cortocircuiti.

Istruzioni per il cablaggio

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

Per collegare il joystick e lo schermo LCD all'Arduino, inizia collegando il pin VCC del joystick al 5V dell'Arduino e il pin GND al GND dell'Arduino. Collega l'uscita dell'asse X del joystick al pin analogicoA0e l'uscita dell'asse Y al pin analogicoA1. L'uscita dell'interruttore del joystick dovrebbe essere collegata al pin digitale2.

Per il display Nokia 5110, collega i seguenti pin: VCC a 5V, GND a GND, SCE al pin7, RST al pin6, D/C al pin5, DN(MOSI) al pin11, e SCLK al pin13. Infine, collega il pin del LED tramite una resistenza da 330 Ohm al pin9per il controllo della retroilluminazione.

Esempi di codice e guida passo-passo

Nella funzione setup, inizializziamo la comunicazione seriale e l'LCD. Il comandolcdBegin()Configura i pin e inizializza il display. Il contrasto è impostato per una visibilità ottimale.

void setup() {
  Serial.begin(9600);
  lcdBegin(); 
  setContrast(40); 
  delay(1000);
  clearDisplay(BLACK);
  updateDisplay();
}

Questo inizializza i componenti necessari per il progetto, garantendo che il display LCD sia pronto a visualizzare le informazioni.

Nokia 5110_LCD back view

Nella funzione loop leggiamo la posizione del joystick e la mappiamo alle dimensioni dello schermo. La posizione del punto viene aggiornata in base ai valori X e Y del 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);
}

Questo codice aggiorna continuamente la posizione del punto sul display LCD in base al movimento del joystick.

Dimostrazione / Cosa aspettarsi

Quando accendi il circuito, l'LCD mostrerà un puntino. Muovendo il joystick il puntino si riposizionerà in tempo reale in base ai movimenti sugli assi X e Y del joystick. Se viene premuto il pulsante del joystick, può attivare funzionalità aggiuntive che puoi implementare. Fai attenzione ai possibili ingressi flottanti se il joystick non è centrato, che potrebbero causare movimenti imprevisti del puntino (nel video a 01:30).

Marcatori temporali del video

  • 00:00- Introduzione al progetto
  • 01:30- Spiegazione del cablaggio
  • 02:45- Revisione del codice
  • 04:10- Dimostrazione della funzionalità

Immagini

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
Lingua: C++
Copia!

Cose di cui potresti avere bisogno

Risorse e riferimenti

File📁

File Fritzing