Sesta puntata della serie di articoli dedicati ai sensori di Arduino. Oggi andremo a parlare di un sensore particolare, molto utilizzato in ambito pc/console ed in robotica: il joystick a 3 assi.

Sostanzialmente questo sensore è composto da 2 parti: il pomello in plastica per manovrare e la scheda elettronica per interfacciarlo ai vari componenti e microcontrollori.

joystick 3 assi

il modello presente nel nostro kit di sensori è il classico analogico a 3 assi cartesiani (X, Y, Z).

I due assi X e Y sono degli analogici (simili alle 4 frecce direzionali classiche per intenderci), mentre l'asse Z è digitale e funziona con la pressione esercitata sul pomello (deve essere schiacciato per poter essere attivato).

Il sensore possiede 5 pin di output ( due per l'alimentazione (Vcc e GND) e tre assiali (Vrx, Vry e SV).

Vediamo adesso come collegarlo ad Arduino e programmarlo.

Il pin GND ed il pin Vcc andranno connessi rispettivamente al pin GND ed al pin +5V di Arduino, per poter alimentare il sensore. I pin Vrx e Vry, essendo analogici, andranno collegati a 2 pin analogici di Arduino (rispettivamente A0 e A1); infine il pin SV, essendo digitale, andrà collegato ad un pin digitale di Arduino (nel nostro caso il pin 2).

microcontrollore Arduino

Vediamo adesso come programmare il sensore e Arduino tramite il nostro fidato IDE.

Il codice da caricare su Arduino è il seguente (liberamente modificabile a seconda delle esigenze di ciascuno):

Per prima cosa, usando la variabile #define, dichiariamo il numero dei 3 pin analogico-digitali a cui abbiamo collegato il sensore ( Vrx = A0, Vry = A1, SV = 2).

Impostiamo la variabile pinMode di input per ogni asse (X, Y, Z) ed inizializziamo anche la seriale tramite il comando Serial.begin.

Fatto ciò , all'interno del loop andremo ad impostare delle variabili Serial.print per ciascun asse e ad impostare la lettura dell'uscita di ogni pin tramite il comando analog.Read (digitalRead per il pin 2, essendo digitale).

Infine impostiamo un Delay di circa 100 millisecondi e carichiamo il codice sul nostro Arduino per andare ad effettuare delle prove di funzionamento, visualizzando il range di funzionamento, le forme d'onda dei 3 assi ed il loro andamento nel tempo tramite il plotter seriale e la stampa seriale.

stampa risultato su plotter seriale

E con l'ultima prova con grafico annesso si conclude anche la 6° puntata dedicata ai sensori di Arduino. Mi raccomando, continua a seguire la serie per conoscere anche gli altri sensori ed il loro funzionamento! Alla prossima!