instructables
How to Interface PS2 Wireless Controller W/ Arduino
by Electropeak
You can read this and other amazing tutorials on ElectroPeak's official website
Overview
Controllers have a long history in our lives; from controlling remote control cars and quadcopters to game consols
and …, they all use wireless or wired controllers. In this tutorial, you will learn how to connect and use a PS2 game
console controller with Arduino.
What You Will Learn:
PS2 controllers features
How to connect a PS2 controller to Arduino
How to use a PS2 controller with Arduino
How to Interface PS2 Wireless Controller W/ Arduino: Page 1
Step 1: PS2 Controllers Features
Everyone knows Sony game consoles called PlayStation, and you have probably held it at least once. Sony game
controllers have 12 analog keys sensitive to pressure, (4 keys for direction, 4 operation keys, Cross, Triangle,
Circle, and Square, L1, L2, R1, and R2) and 5 digital keys (MODE, START, SELECT, R3, L3) and 2 analog
joysticks.
There are 2 motors inside controllers that can make vibration because of their imbalance.
The wireless controller works with 2,4GHz frequency and it has a range of 10 meters. It also has an optical
indicator for sending and receiving data. This controller needs only 3 AAA batteries for power (in some cases it
needs just 2 AAA batteries).
Where you can use a PS2 controller:
Controlling wheeled robots and remote control cars
Controlling robotics arms
Controlling a camera
Controlling flying robots
...
How to Interface PS2 Wireless Controller W/ Arduino: Page 2
Step 2: How to Connect PS2 Controller to Arduino
PS2 controller receiver includes 9 pins:
1. Data: master line for sending data to slave (MOSI)
2. Command: slave line for sending data to master (MISO)
3. Vibration: vibration motors supply; 7.2 volts to 9 volts
4. Ground: circuits ground
5. VCC: circuits supply; 3.3 volts
6. Attention: CS or Chip Select pin for calling slave and preparing the connection
7. Clock: equivalent to SCK pin for clock
8. No Connection: useless
9. Acknowledge: acknowledge signal from the controller to PS2 receiver
Step 3: Interfacing PS2 Controller and Arduino
In order to use a PS2 controller, you need to introduce the controllers key to Arduino. Then choose a proper
function for each key according to your project.
Step 4: Circuit
How to Interface PS2 Wireless Controller W/ Arduino: Page 3
Step 5: Code
You need to use the PS2X library for this code. type. 0 means the controller is not detected correctly,
1 means DualShock controller detection, and 2
After adding the library to Arduino, you can open means GuitarHero controller detection.
PS2X library Example or Copy the attached code and
upload it on your board. You can see the results in read_gamepad(boolean motor1, byte motor2);
the serial monitor window by pressing different keys. function start reading the status of the keys when the
state of the vibration of the motor is determined.
The most practical functions in this library are: (motor 2 is the bigger one. )
ps2x.config_gamepad(clock, command, attention, Button (but type); function returns 1 when the
data, Pressures? Rumble?); function sets the specific key in function argument is pressed. In
controller pin and sensitivity to pressure and vibration DualShock controller keys are named as the attached
of the motors. If you want keys insensitive to table.
pressure, or motors don’t have vibration, set
Pressures, and Rumble as false. This function returns Analog (but type); function returns analog keys
value for error. value, then you can decide for your operation
accordingly.
ready(); function determine the detected controller
How to Interface PS2 Wireless Controller W/ Arduino: Page 4
Download
https://www.instructables.com/ORIG/F4S/PBJZ/JVKSHN1C/F4SPBJZJVKSHN1C.zip
…
Download
https://www.instructables.com/ORIG/FQY/QUS1/JVKSHN1E/FQYQUS1JVKSHN1E.ino
…
Step 6: What's Next?
Try to build a remote control car with 2 wheels that moves to a different direction by pressing
direction keys. And the cars speed change with the amount of pressure on the key. The car beeps
by pressing a square key, and its lights turn on with pressing the cross key.
How to Interface PS2 Wireless Controller W/ Arduino: Page 5
Step 7: Buy 2.4GHz Wireless Shock Game Controller
BuyGame Black 2.4GHz Wireless Shock Game Controller from ElectroPeak
Step 8: LIke Us on FaceBook
If you find this tutorial helpful and interesting please like us on facebook:
www.facebook.com/electropeak
How to Interface PS2 Wireless Controller W/ Arduino: Page 6