TinkerKit Joystick Overview The Joystick module is similar to analog joysticks found in gamepads. It is made made by mounting two potentiometers at a 90 degrees angle. The potentiometers are connected to a short stick centered by springs. Output: This module will output roughly 2.5 volts from both outputs when in its resting position. Moving the stick will cause the outputs to change from 0v to 5v depending on its direction. If you connect this module to an Arduino through the Tinkerkit Shield, you can expect to read a value of roughly 512 in its resting position (expect small variations due to tiny imprecisions of the springs and mechanism) When you move the joystick you should see the values change from 0 to 1023 depending on its position. Module Description: This module features two 4k7 Ohm linear potentiometers, two standard TinkerKit 3pin connector, two signal amplifiers, a green LED that signals that the module is correctly powered and two yellow LED whose brightness depends on the values output by the module. This module is a SENSOR. Its connectors are OUTPUTs which must be be connected to two of the INPUT connectors on the TinkerKit Shield. Code Example /* Analog input, analog output, serial output Reads two analog input pins; a T000030 Jopystick Module Analog Sensor connected to I0 and I1, maps the result to a range from 0 to 255 and uses the result to set the pulsewidth modulation (PWM) two T010111 LED Module connected on O0 and O1. Also prints the results to the serial monitor. created 7 dec 2010 by Davide Gomba This example code is in the public domain. */ #define #define #define #define #define #define #define #define #define #define #define #define O0 O1 O2 O3 O4 O5 I0 I1 I2 I3 I4 I5 11 10 9 6 5 3 A0 A1 A2 A3 A4 A5 // These constants won't change. They're used to give names // to the pins used: const int analogInPin1 = I0; // Analog input pin that the Joystick's first pin is attached to const int analogInPin2 = I1; // Analog input pin that the Joystick's second pin is attached to const int analogOutPin1= O0; // Analog output pin that the LED is attached to const int analogOutPin2= O1; // Analog output pin that the LED is attached to int sensorValue1 = 0; // value read from the Joystick's first pin int sensorValue2 = 0; // value read from the Joystick's second pin int outputValue1 = 0; // value output to the PWM (analog out) int outputValue2 = 0; // value output to the PWM (analog out) void setup() { // initialize serial communications at 9600 bps: Serial.begin(9600); } void loop() { // read the both analog in values: sensorValue1 = analogRead(analogInPin1); sensorValue2 = analogRead(analogInPin2); // map it to the range of the analog out: outputValue1 = map(sensorValue1, 0, 1023, 0, 255); outputValue2 = map(sensorValue2, 0, 1023, 0, 255); // change the analog out value: analogWrite(analogOutPin1, outputValue1); analogWrite(analogOutPin2, outputValue2); // print the results to the serial monitor: Serial.print("Joystick X = " ); Serial.print(sensorValue1); Serial.print("\t Joystick Y = " ); Serial.print(sensorValue2); Serial.print("\t output 1 = "); Serial.print(outputValue1); Serial.print("\t output 2 = "); Serial.println(outputValue2); // wait 10 milliseconds before the next loop // for the analog-to-digital converter to settle // after the last reading: delay(10); }