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

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
| Produttore | Texas Instruments |
|---|---|
| Numero di parte | L293D |
| Tensione logica/I/O | 5 V |
| Tensione di alimentazione | 4.5-36 V |
| Corrente di uscita (per canale) | 600 mA |
| Corrente di picco (per canale) | 1.2 A |
| Linee guida sulla frequenza PWM | 20 kHz |
| Soglie logiche di ingresso | Compatibile con TTL |
| Caduta di tensione / RDS(on) / saturazione | 1,5 V max |
| Limiti termici | 150 °C |
| Pacchetto | DIP-16 |
| Note / varianti | Ampiamente 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

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.

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à
Cose di cui potresti avere bisogno
-
Amazon
-
AmazonPurchase XY Joystick from Amazonamzn.to
Risorse e riferimenti
File📁
File Fritzing
-
Nokia 5110 LCD
application/zip0.03 MB -
Black Joystick KY-023
application/zip0.02 MB