Tutorial: Joystick shield with Arduino

The Joystick Shield is an Arduino add-on that has a 2 axis joystick and 5 buttons (one in the joystick). We can use it to control a lot of things that needs analog and digital commands. Here we have the circuit extracted from the datasheet):

Here we have a sample code, modified from here.

//Create variables for each button on the Joystick Shield to assign the pin numbers

char button0=3, button1=4, button2=5, button3=6;
char sel=2;

void setup(void)
{
pinMode(sel, INPUT); //Set the Joystick 'Select'button as an input
digitalWrite(sel, HIGH); //Enable the pull-up resistor on the select button

pinMode(button0, INPUT); //Set the Joystick button 0 as an input
digitalWrite(button0, HIGH); //Enable the pull-up resistor on button 0

pinMode(button1, INPUT); //Set the Joystick button 1 as an input
digitalWrite(button1, HIGH); //Enable the pull-up resistor on button 1

pinMode(button2, INPUT); //Set the Joystick button 2 as an input
digitalWrite(button2, HIGH); //Enable the pull-up resistor on button 2

pinMode(button3, INPUT); //Set the Joystick button 3 as an input
digitalWrite(button3, HIGH); //Enable the pull-up resistor on button 3

Serial.begin(9600); //Turn on the Serial Port at 9600 bps
}

void loop(void)
{
Serial.print(analogRead(0)); //Read the position of the joysticks X axis and print it on the serial port.
Serial.print(",");
Serial.print(analogRead(1)); //Read the position of the joysticks Y axis and print it on the serial port.
Serial.print(",");
Serial.print(digitalRead(sel)); //Read the value of the select button and print it on the serial port.
Serial.print(",");
Serial.print(digitalRead(button0)); //Read the value of the button 0 and print it on the serial port.
Serial.print(",");
Serial.print(digitalRead(button1)); //Read the value of the button 1 and print it on the serial port.
Serial.print(",");
Serial.print(digitalRead(button2)); //Read the value of the button 2 and print it on the serial port.
Serial.print(",");
Serial.println(digitalRead(button3)); //Read the value of the button 3 and print it on the serial port.

//Wait for 100 ms, then go back to the beginning of 'loop' and repeat.
delay(100);
}

Upload the code to your board and open the serial monitor. You will see the numbers as below:

Move the joystick around and watch the first 2 values changing. The following numbers represents the buttons. Push one of them and the value will become zero.

References:

http://www.sparkfun.com/products/9760

http://dlnmh9ip6v2uc.cloudfront.net/datasheets/Dev/Arduino/Shields/...

http://www.sparkfun.com/Code/Joystick_Shield_Example.zip

Views: 3600

Tags: arduino, joystick, shield, tutorial

Comment

You need to be a member of GarageLab (arduino, electronics, robotics, hacking) to add comments!

Join GarageLab (arduino, electronics, robotics, hacking)

Latest Activity

Mattia Di Cretico is now a member of GarageLab (arduino, electronics, robotics, hacking)
2 hours ago
Paul Lawler left a comment for Paul Lawler
"Paul has sadly passed away - please cancel his membership - RJB (wife)"
16 hours ago
tom jensen joined Marcelo Rodrigues's group
Thumbnail

Arduino

Group for the Arduino communitySee More
18 hours ago
GarageLab posted blog posts
22 hours ago
GarageLab posted blog posts
Tuesday
Abraham de Villiers is now a member of GarageLab (arduino, electronics, robotics, hacking)
Tuesday
GarageLab posted a blog post

3D printed humanoid robot goes open source

If you’ve ever dreamed of manufacturing your own legion of mechanical minions, a group of robotics…See More
Monday
Marion Hale posted a status
"Status"
Monday
Marion Hale posted a status
"Status"
Saturday
Marion Hale posted a status
"Status"
Saturday
Profile IconMarion Hale and Pratap Kumar Panigrahi joined GarageLab (arduino, electronics, robotics, hacking)
Jul 25
GarageLab posted blog posts
Jul 24
GarageLab posted blog posts
Jul 23
Profile Icongan bensie, Philip Malmstedt and Rodney Leinberger joined GarageLab (arduino, electronics, robotics, hacking)
Jul 22
GarageLab posted blog posts
Jul 21
Profile Iconjolian ahmed, Abdalla, Raul Patterson and 2 more joined GarageLab (arduino, electronics, robotics, hacking)
Jul 21
GarageLab posted blog posts
Jul 17
GarageLab posted blog posts
Jul 15
Ilyass Renswoude joined Sergio Imperador's group
Thumbnail

Robotics

Let's share ideas about building robots.See More
Jul 14
Profile IconShein Wah, Liu Chin Ho and Suresh Babu joined GarageLab (arduino, electronics, robotics, hacking)
Jul 14

© 2014   Created by Marcelo Rodrigues.

Badges  |  Report an Issue  |  Terms of Service