- Materiale richiesto
- Schema elettrico
- Modulo joystick
- Codice e spiegazione
- Controllo dei LED tramite Joystick con Arduino
La prima cosa che ci viene in mente ascoltando la parola Joystick è il controller di gioco. Sì, è esattamente lo stesso e può essere utilizzato per scopi di gioco. Oltre ai giochi, ha molte altre applicazioni nell'elettronica fai-da-te. Questo joystick non è altro che una combinazione di due potenziometri rispettivamente per i piani X e Y. Legge la tensione attraverso il potenziometro e fornisce il valore analogico ad Arduino, e il valore analogico cambia mentre spostiamo l'albero del joystick (che è semplicemente il puntatore del potenziometro).
In questo circuito, stiamo interfacciando il Joystick con Arduino semplicemente controllando quattro LED secondo il movimento del Joystick. Abbiamo posizionato 4 LED in modo che rappresentino la direzione del movimento dell'albero del joystick. Questo joystick ha anche un pulsante che può essere utilizzato per vari altri scopi o può essere lasciato inattivo. Un singolo LED è anche collegato all'interruttore del joystick, poiché il pulsante del joystick premuto quel singolo LED si accenderà.
Materiale richiesto
- Arduino UNO
- Modulo joystick
- LED-5
- Resistenza: 100ohm-3
- Cavi di collegamento
- Breadboard
Schema elettrico
Modulo joystick
I joystick sono disponibili in diverse forme e dimensioni. Un tipico modulo Joystick è mostrato nella figura seguente. Questo modulo Joystick fornisce tipicamente uscite analogiche e le tensioni di uscita fornite da questo modulo continuano a cambiare in base alla direzione in cui lo spostiamo. E possiamo ottenere la direzione del movimento interpretando questi cambiamenti di tensione usando un microcontrollore. In precedenza abbiamo interfacciato Joystick con AVR e Raspberry Pi.
Questo modulo joystick ha due assi come puoi vedere. Sono asse X e asse Y. Ogni asse del JOYSTICK è montato su un potenziometro o pentola. I punti medi di questi piatti vengono eliminati come Rx e Ry. Quindi Rx e Ry sono punti variabili per questi piatti. Quando il Joystick è in standby, Rx e Ry agiscono come divisori di tensione.
Quando il joystick viene spostato lungo l'asse orizzontale, la tensione sul pin Rx cambia. Allo stesso modo, quando viene spostato lungo l'asse verticale, la tensione sul pin Ry cambia. Quindi abbiamo quattro direzioni del Joystick su due uscite ADC. Quando lo stick viene spostato, la tensione su ciascun pin aumenta o diminuisce a seconda della direzione.
Qui, stiamo collegando questo modulo Joystick con Arduino UNO che viene fornito con un meccanismo ADC (convertitore analogico-digitale) integrato come mostrato nel video alla fine. Scopri di più sull'utilizzo dell'ADC di Arduino qui.
Codice e spiegazione
Alla fine è menzionato il codice Arduino completo.
Nel codice sottostante, abbiamo definito gli assi X e Y del modulo Joystick rispettivamente per i pin analogici A0 e A1.
#define joyX A0 #define joyY A1
Ora, nel codice seguente, stiamo inizializzando il PIN 2 di Arduino per l'interruttore (pulsante) del modulo Joystick e il valore di buttonstate e buttonstate1 sarà 0 all'inizio.
pulsante int = 2; int buttonState = 0; int buttonState1 = 0;
Nel codice seguente, stiamo impostando la velocità di trasmissione su 9600 e definito il Pin 7 come un pin di uscita e il pin del pulsante come un Pin di ingresso. Inizialmente, il perno del pulsante rimarrà alto fino a quando l'interruttore non premerà.
void setup () {pinMode (7, OUTPUT); pinMode (pulsante, INPUT); digitalWrite (pulsante, ALTO); Serial.begin (9600); }
Qui, in questo codice, stiamo leggendo i valori dai pin analogici A0 e A1 e stampiamo in serie.
int xValue = analogRead (joyX); int yValue = analogRead (joyY); Serial.print (xValue); Serial.print ("\ t"); Serial.println (yValue);
Le condizioni, per l' accensione e lo spegnimento del LED in funzione del movimento dell'albero del Joystick, sono definite nel codice sottostante. Qui stiamo solo prendendo valori analogici di tensione ai pin A0 e A1 di Arduino. Questi valori analogici cambieranno mentre muoviamo il joystick e il LED si illuminerà in base al movimento del joystick.
Questa condizione è per il movimento dell'albero del joystick nella direzione dell'asse -Y
if (xValue> = 0 && yValue <= 10) {digitalWrite (10, HIGH); } else {digitalWrite (10, LOW);}
Questa condizione è per il movimento dell'albero del joystick nella direzione dell'asse -X
if (xValue <= 10 && yValue> = 500) {digitalWrite (11, HIGH); } else {digitalWrite (11, LOW);}
Questa condizione è per il movimento dell'albero del joystick nella direzione dell'asse + X.
if (xValue> = 1020 && yValue> = 500) {digitalWrite (9, HIGH); } else {digitalWrite (9, LOW);}
Questa condizione è per il movimento dell'albero del joystick nella direzione dell'asse + Y
if (xValue> = 500 && yValue> = 1020) {digitalWrite (8, HIGH); } else {digitalWrite (8, LOW);}
Quando spostiamo l'asta del joystick in diagonale, viene una posizione quando il valore analogico di X e Y sarà rispettivamente 1023 e 1023, entrambi i LED del pin 9 e 8 si illumineranno. Perché soddisfa le condizioni del LED. Quindi, per rimuovere quella mancata corrispondenza abbiamo dato una condizione che se il valore di (X, Y) è (1023, 1023) allora entrambi i LED rimangono in condizione OFF
if (xValue> = 1020 && yValue> = 1020) {digitalWrite (9, LOW); digitalWrite (8, LOW); }
La condizione seguente viene utilizzata per azionare il LED collegato all'interruttore a pulsante. Quando premiamo l'interruttore del joystick, il LED si accenderà e si bloccherà fino al rilascio del pulsante. È facoltativo utilizzare l'interruttore a pulsante sul modulo Joystick.
if (buttonState == LOW) {Serial.println ("Switch = High"); digitalWrite (7, HIGH); } else {digitalWrite (7, LOW);}
Controllo dei LED tramite Joystick con Arduino
Dopo aver caricato il codice su Arduino e collegato i componenti come da schema elettrico, possiamo ora controllare i LED con Joystick. Possiamo accendere i quattro LED in ciascuna direzione in base al movimento dell'albero del Joystick. Il Joystick ha due potenziometri al suo interno, uno è per il movimento dell'asse X e un altro è per il movimento dell'asse Y. Ogni potenziometro riceve 5v da Arduino. Quindi, muovendo il joystick, il valore della tensione cambierà e cambierà anche il valore analogico sui pin analogici A0 e A1.
Quindi, da Arduino, stiamo leggendo il valore analogico per gli assi X e Y e accendendo i LED in base al movimento dell'asse del Joystick. Un interruttore a pulsante sul modulo Joystick viene utilizzato per controllare il singolo LED nel circuito come mostrato nel video qui sotto.