Codice Arduino e video: joystick a due assi
In questo tutorial esploreremo come utilizzare un joystick XY a doppio asse con Arduino. Questo joystick può essere impiegato come controller di gioco o per il controllo di bracci robotici, tra le altre applicazioni. L'obiettivo principale sarà rilevare la posizione del joystick e lo stato del suo interruttore a pulsante, che potranno essere visualizzati su un monitor seriale.

Nel corso del tutorial implementeremo un semplice programma che legge le posizioni X e Y del joystick e le visualizza nel Monitor seriale di Arduino. Quando il joystick viene premuto, verrà rilevato anche lo stato dell'interruttore. Per una spiegazione dettagliata del codice, assicurati di guardare il video ai timestamp specificati (nel video a :00).
Hardware spiegato
I componenti principali per questo progetto includono il modulo joystick a doppio asse e la scheda Arduino. Il modulo joystick è costituito da due potenziometri, uno per l'asse X e uno per l'asse Y, che forniscono valori analogici in base alla posizione del joystick. L'interruttore a pulsante sul joystick viene usato per rilevare quando viene premuto.
Quando muovi il joystick, i potenziometri cambiano la loro resistenza, che viene tradotta in valori compresi tra 0 e 1023. Questo ci permette di determinare con precisione la posizione del joystick. L'interruttore a pulsante è collegato a un pin di ingresso digitale sull'Arduino, permettendoci di leggere il suo stato senza bisogno di una resistenza esterna grazie alla funzione di pull-up interna.
Dettagli della scheda tecnica
| Produttore | Generico |
|---|---|
| Numero di parte | Modulo joystick a doppio asse |
| Tensione logica/IO | 5 V |
| Tensione di alimentazione | 5 V |
| Intervallo di tensione in uscita | 0 - 5 V |
| Risoluzione | analogico a 10 bit (0-1023) |
| Tipo di interruttore | Pulsante |
| Pacchetto | Modulo standard |
- Assicurarsi di fornire un'alimentazione corretta (5 V) al modulo joystick.
- Collega le uscite X e Y del joystick ai pin analogici A0 e A1, rispettivamente.
- Usa il pin digitale 6 per l'interruttore del joystick.
- Utilizzare una configurazione con resistenza di pull-up per il pin dell'interruttore.
- Monitorare i valori di uscita per assicurarsi che siano compresi tra 0 e 1023.
Istruzioni di cablaggio


Per collegare il joystick a doppio asse all'Arduino, inizia collegando il pin di massa del joystick al rail di massa sulla tua breadboard. Successivamente, collega il pin 5V del joystick al rail positivo sulla breadboard. I due pin variabili del joystick, etichettati come X e Y, dovrebbero essere collegati ai pin analogiciA0eA1sull'Arduino, rispettivamente.
Per l'interruttore a pulsante sul joystick, collegalo al pin digitale6sull'Arduino. Questa connessione utilizza la resistenza di pull-up interna, quindi non è necessario un resistore esterno. Infine, se vuoi monitorare lo stato dell'interruttore con un LED, collega la gamba più lunga del LED al pin digitale13e la gamba più corta collegata a massa tramite una resistenza da 680 ohm
Esempi di codice e guida passo-passo
Nel codice Arduino definiamo il pin per l'interruttore e specifichiamo le dimensioni dello schermo per mappare i valori del joystick. La funzione setup inizializza la comunicazione seriale e imposta la modalità del pin dell'interruttore.
void setup() {
Serial.begin(9600); // initialize serial communication
pinMode(sw, INPUT_PULLUP); // setting pin sw as input
pinMode(13, OUTPUT); // LED pin
}Nella funzione loop() leggiamo i valori analogici per le posizioni X e Y e li mappiamo alle dimensioni dello schermo definite. Anche lo stato dell'interruttore viene letto e stampato sul Monitor Seriale.
void loop() {
int x = analogRead(A0); // read analog value for X
int y = analogRead(A1); // read analog value for Y
int sStat = digitalRead(sw); // read switch state
// Print values to Serial Monitor
Serial.print("X: ");
Serial.print(xPos);
Serial.print(" Y: ");
Serial.println(yPos);
}Infine, il codice verifica se l'interruttore è premuto, accendendo o spegnendo il LED in base allo stato dell'interruttore. Ciò fornisce un feedback visivo quando il pulsante del joystick viene attivato.
if(sStat == LOW) {
Serial.println("Switch pressed");
digitalWrite(13, HIGH); // Turn LED ON
} else {
digitalWrite(13, LOW); // Turn LED OFF
}Per vedere come i valori del joystick cambiano in tempo reale, carica il codice sul tuo Arduino e apri il Monitor Seriale. I valori si aggiorneranno ogni mezzo secondo, mostrando le posizioni X e Y correnti insieme allo stato dell'interruttore (nel video a 01:30).
Dimostrazione / Cosa aspettarsi
Quando muovi il joystick, i valori X e Y dovrebbero cambiare di conseguenza, variando da 0 a 1023. Se premi il pulsante del joystick, il LED collegato al pin 13 si accenderà, indicando che l'interruttore è attivo. Se il joystick è centrato, dovresti vedere valori intorno a 512 per entrambi gli assi, a seconda della calibrazione del joystick.
Marcatori temporali del video
- 00:00- Introduzione al joystick a doppio asse
- 01:30- Spiegazione del codice e funzionalità
- 02:45- Istruzioni di cablaggio
- 03:15- Output atteso e test
Cose di cui potresti avere bisogno
-
AmazonAcquista XY Joystick su Amazonamzn.to
Risorse e riferimenti
Nessuna risorsa ancora.
File📁
Nessun file disponibile.