Come collegare modulo joystick ad Arduino

Collegare un joystick alla scheda Arduino vi permetterà di controllare a distanza un’auto o un robot sul microcontrollore Arduino utilizzando un modulo joystick ky-023. Nell’articolo vedremo come collegare il modulo joystick e come controllare i LED con un joystick su Arduino Uno. Presenteremo diversi programmi per il controllo dei LED e dei servomotori con uno schema per collegare un joystick ky-023 a un microcontrollore Arduino.




Per questa attività sono necessari:

  • Arduino Uno / Arduino Nano / Arduino Mega
  • modulo joystick ky-023
  • LED e resistenze
  • servomotore
  • breadboard
  • cavi di collegamento

Modulo joystick ky-023 datasheet, pinout

Il joystick analogico è costituito da una manopola montata su una cerniera con due potenziometri che determinano la posizione del joystick sugli assi X e Y e un pulsante Z. Inclinando la manopola si ruotano i potenziometri e si modifica la tensione di uscita sui contatti del modulo, consentendo di monitorare il grado di deflessione della manopola. Quando la manopola del joystick viene rilasciata, ritorna dolcemente alla posizione centrale.

Modulo ky-023 joystick Arduino pinout, datasheet
Modulo ky-023 joystick Arduino pinout, datasheet

Caratteristiche del modulo potenziometro Arduino:

  • Tensione di alimentazione: 5 V
  • Numero di assi di controllo: 2 assi – X/Y
  • Rotazione della maniglia: 360°
  • Dimensioni: 34 x 26 x 34 mm

Il modulo joystick KY-023 ha i suoi svantaggi. L’impugnatura del joystick non torna sempre esattamente nella posizione centrale, pertanto nel programma si deve considerare la posizione centrale dell’impugnatura del joystick come un intervallo di valori piuttosto che come un valore esatto. Ad esempio, quando l’impugnatura del joystick si trova in posizione centrale, le coordinate X e Y possono essere comprese nell’intervallo 490-530 invece che 512.

Collegamento un modulo joystick ky-023 ad Arduino

Come usare e pilotare joystick ky-023 Arduino Uno
Come usare e pilotare joystick ky-023 Arduino Uno

In questo esempio, i dati del joystick verranno visualizzati sul monitor e, quando si preme il pulsante, il LED sulla scheda si spegnerà. Il programma utilizzerà la funzione map per convertire le variabili X e Y da un intervallo di numeri compreso tra 0 e 1023 a un intervallo di numeri compreso tra 0 e 255. Collegare i LED tramite una resistenza alle uscite analogiche 10 e 11 del microcontrollore Arduino Uno e caricare il seguente programma.

Programma Arduino per controllo LED da un joystick ky-023




#define pinX    A2
#define pinY    A1
#define swPin    2
#define ledPin  13
#define ledX    11
#define ledY    10

void setup() {
  Serial.begin(9600);

  pinMode(ledX, OUTPUT);
  pinMode(ledY, OUTPUT);
  pinMode(ledPin, OUTPUT);

  pinMode(pinX, INPUT);
  pinMode(pinY, INPUT);
  pinMode(swPin, INPUT);

  digitalWrite(swPin, HIGH);
}
 
void loop() {
  boolean ledState = digitalRead(swPin);
  digitalWrite(ledPin, ledState);

  int X = analogRead(pinX);
  int Y = analogRead(pinY);

  X = map(X, 0, 1023, 0, 255);
  Y = map(Y, 0, 1023, 0, 255);

  Serial.print(X);
  Serial.print("\t");
  Serial.println(Y);
  
  analogWrite(ledX, X);
  analogWrite(ledY, Y);
}

Spiegazione del codice per controllo LED da un joystick Arduino:



  1. con la funzione map() è possibile specificare qualsiasi numero, compreso l’intervallo inverso. È possibile utilizzare anche valori negativi.

Collegamento un joystick e servomotore Arduino

Come usare servomotore e joystick Arduino
Come usare servomotore e modulo joystick Arduino

Il joystick è costituito da due potenziometri che cambiano resistenza quando viene modificata la posizione della manopola. Per controllare il servo con il joystick, la prima cosa da fare è collegare il modulo agli ingressi analogici di Arduino. Questo è necessario affinché l’ADC del microcontrollore riceva i dati di posizione del joystick alle coordinate X e Y. Quindi, mediante righe di codice, convertiremo questi dati nella posizione corrispondente del servo.

Programma Arduino per controllo servo da un joystick

#define pinX A1

#include "Servo.h"
Servo servo1;

void setup() {
  pinMode(pinX, INPUT);
 
  servo1.attach(12);
}
 
void loop() {
  int X = analogRead(pinX);

  X = map(X, 0, 1023, 0, 180);
  
  servo1.write(X);
}

Spiegazione del codice per controllo servo da un joystick Arduino:

  1. si prega di notare che i diversi produttori possono avere una piedinatura del joystick diversa da quella riportata nello schema sopra.

Conclusioni. Abbiamo esaminato in dettaglio come il joystick di Arduino viene utilizzato per controllare i LED e i microservi. Potete utilizzare queste informazioni per creare semplici mini robot su Arduino o automobili con controllo remoto dal joystick ky-023. Questo modulo può essere utilizzato in molti interessanti progetti Arduino fai-da-te. Se avete ancora domande su questo argomento, potete lasciarle nei commenti sotto questo post.

5/5 - (1 vote)


Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.