dijous, 20 de juny de 2013

Connectar un joystick analògic a l'Arduino

El meu joystick és un dels components del següent pack: http://dx.com/p/arduno-37-in-1-sensor-module-kit-black-142834 (podeu veure tots els components del pack catalogats aquí).El text de la placa diu "Keyes SJoys" i, segons el llistat de components, es diu "XY-axis joystick module KY-023".

El seu funcionament és molt senzill (fins i tot més del que m'esperava). Té 4 pins:

  1. GND: directe d el'Arduino
  2. +5V: directe de l'Arduino
  3. VRx i VRy: que retornen el valor de l'eix X i Y. S'han de connectar als Analog IN (per exemple a A0 i A1)
  4. SW: que en teoria serveix per veure si s'ha premut en mode botó. De moment no he aconseguit capturar-ho.
Vista dels connectors


He trobat un tutorial de com connectar-lo aquí: http://jannehuo.wordpress.com/2013/02/07/arduino-joystick-2/. Només cal llegir els valors de VRx i VRy amb la funció "analogRead" com ja havíem fet amb el potenciòmetre. Aquí un codi d'exemple que treu per terminal els dos valors separats per coma.

Codi d'exemple

int joy1 = 0;//pin analogic de les X
int joy2 = 1;//pin analógic de les Y
int val1 = 0;//valor X
int val2 = 0;//valor Y

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

void loop() {
 //llegim els valors
 val1 = analogRead(joy1);
 delay(100); //recomanen posar-ho
 val2 = analogRead(joy2);

 //imprimim els valors
 Serial.print(val1);
 Serial.print(",");
 Serial.print(val2);
 Serial.println();
 delay(1);
}

Com queda la connexió

2 comentaris:

Christophe Romana ha dit...

If you put SW in A2 then analog read it, you get 0 when the button is pressed.

Christophe Romana ha dit...
L'autor ha eliminat aquest comentari.