- Material requerit
- Esquema de connexions
- Mòdul Joystick
- Codi i explicació
- Control de LEDs mitjançant Joystick amb Arduino
El primer que ens ve al cap escoltar la paraula Joystick és el controlador del joc. Sí, és exactament el mateix i es pot utilitzar amb finalitats de joc. A part dels jocs, té moltes altres aplicacions en electrònica de bricolatge. Aquest joystick no és altra cosa que una combinació de dos potenciòmetres per al pla X i Y respectivament. Llegeix la tensió a través del potenciòmetre i dóna valor analògic a l’Arduino, i el valor analògic canvia a mesura que movem l’eix del joystick (que és simplement el punter del potenciòmetre).
En aquest circuit, estem relacionant Joystick amb Arduino simplement controlant quatre LED segons el moviment del Joystick. Hem col·locat 4 LEDs de manera que representin la direcció del moviment de l’eix del joystick. Aquest joystick també té un polsador que es pot utilitzar per a altres propòsits o es pot deixar inactiu. També es connecta un LED únic a l’interruptor del joystick, ja que el botó del joystick premut fa que aquest LED s’encengui.
Material requerit
- Arduino UNO
- Mòdul Joystick
- LEDs-5
- Resistència: 100ohm-3
- Connexió de cables
- Taula de pa
Esquema de connexions

Mòdul Joystick
Els joysticks estan disponibles en diferents formes i mides. A la figura següent es mostra un mòdul Joystick típic. Aquest mòdul Joystick normalment proporciona sortides analògiques i les tensions de sortida proporcionades per aquest mòdul continuen canviant segons la direcció en què el movem. I podem obtenir la direcció del moviment interpretant aquests canvis de voltatge mitjançant algun microcontrolador. Anteriorment, hem relacionat Joystick amb AVR i Raspberry Pi.

Aquest mòdul joystick té dos eixos com podeu veure. Són eixos X i eix Y. Cada eix de JOYSTICK està muntat a un potenciòmetre o pot. Els punts mitjans d’aquests testos són expulsats com Rx i Ry. Per tant, Rx i Ry són punts variables d’aquests pots. Quan el joystick està en espera, Rx i Ry actuen com a divisors de tensió.
Quan el joystick es mou al llarg de l'eix horitzontal, el voltatge del pin Rx canvia. De la mateixa manera, quan es mou al llarg de l'eix vertical, la tensió al pin Ry canvia. Per tant , tenim quatre direccions del joystick en dues sortides ADC. Quan es mou el pal, el voltatge de cada passador augmenta o baixa segons la direcció.
Aquí, connectem aquest mòdul Joystick amb l’Arduino UNO que inclou un mecanisme ADC (convertidor analògic a digital) integrat, tal com es mostra al vídeo al final. Obteniu més informació sobre l’ús de l’ADC d’Arduino aquí.
Codi i explicació
Al final es menciona el codi Arduino complet.
Al codi següent, hem definit els eixos X i Y del mòdul Joystick per al pin analògic A0 i A1 respectivament.
#define joyX A0 #define joyY A1
Ara, al codi següent, estem inicialitzant el PIN 2 d’Arduino per al commutador (polsador) del mòdul Joystick i el valor de buttonstate i buttonstate1 serà 0 a l’inici.
botó int = 2; int buttonState = 0; int buttonState1 = 0;
Al codi següent, configurem la velocitat de transmissió a 9600 i definim el pin 7 com a pin de sortida i el pin de botó com a pin d’entrada. Inicialment, el pin del botó es mantindrà alt fins que el commutador premi.
void setup () {pinMode (7, OUTPUT); pinMode (botó, INPUT); digitalWrite (botó, ALTA); Serial.begin (9600); }
Aquí, en aquest codi, estem llegint els valors del pin analògic A0 i A1 i imprimim en sèrie.
int xValue = analogRead (joyX); int yValue = analogRead (joyY); Serial.print (xValue); Serial.print ("\ t"); Serial.println (yValue);
Les condicions per encendre i apagar el LED segons el moviment de l’ eix del joystick es defineixen al codi següent. Aquí només prenem valors analògics de tensió al pin A0 i A1 d’Arduino. Aquests valors analògics canviaran a mesura que movem el joystick i el LED brillarà segons el moviment del joystick.

Aquesta condició és per al moviment de l’eix del joystick en la direcció de l’eix -Y
if (xValue> = 0 &&YValue <= 10) {digitalWrite (10, HIGH); } else {digitalWrite (10, BAIX);}
Aquesta condició és per al moviment de l'eix del joystick en la direcció de l'eix -X
if (xValue <= 10 &&Value> = 500) {digitalWrite (11, HIGH); } else {digitalWrite (11, BAIX);}
Aquesta condició és per al moviment de l’eix del joystick en la direcció de l’eix + X.
if (xValue> = 1020 &&YValue> = 500) {digitalWrite (9, HIGH); } else {digitalWrite (9, BAIX);}
Aquesta condició és per al moviment de l’eix del joystick en la direcció de l’eix + Y
if (xValue> = 500 && yValue> = 1020) {digitalWrite (8, HIGH); } else {digitalWrite (8, BAIX);}
Quan movem l'eix del joystick en diagonal, es produeix una posició quan el valor analògic de X i Y serà 1023 i 1023 respectivament, ambdós brillaran el LED 9 i Pin 8. Perquè compleix les condicions del LED. Per tant, per eliminar aquest desajustament, hem donat la condició que si el valor de (X, Y) és (1023, 1023), els dos LED es mantenen en estat OFF
if (xValue> = 1020 &&YValue> = 1020) {digitalWrite (9, BAIX); digitalWrite (8, BAIX); }
La condició següent s’utilitza per fer funcionar el LED connectat al commutador de polsador. En prémer el commutador del joystick, el LED s'encendrà i es bloquejarà fins que es deixi anar el botó. És opcional utilitzar el botó de commutació del mòdul Joystick.
if (buttonState == BAIX) {Serial.println ("Switch = High"); digitalWrite (7, ALT); } else {digitalWrite (7, BAIX);}
Control de LEDs mitjançant Joystick amb Arduino

Després de carregar el codi a l'Arduino i connectar els components segons el diagrama del circuit, ara podem controlar els LED amb el joystick. Podem encendre els quatre LEDs en cada sentit segons el moviment de l’eix del joystick. El joystick té dos potenciòmetres a l’interior, un per al moviment de l’eix X i un altre per al moviment de l’eix Y. Cada potenciòmetre rep 5V de l’Arduino. Així, a mesura que movem el joystick, el valor de la tensió canviarà i el valor analògic als pins analògics A0 i A1 també canviarà.
Per tant, des de l’Arduino, estem llegint el valor analògic dels eixos X i Y i encenem els LED segons el moviment de l’eix del joystick. Es fa servir un interruptor de polsador del mòdul Joystick per controlar el LED únic del circuit, tal com es mostra al vídeo següent.
