Joystick Shield
Introduction¶
The Joystick Shield enable your Arduino with a joystick! The shield sits on top of your Arduino and turns it into a simple controller. Five momentary push buttons (4+ joystick select button) and a two-axis thumb joystick gives your Arduino functionality on the level of old Nintendo controllers. 
 This shield is a great piece of uer interface board, it is perfect for gaming and navigating through menu quickly. It has headers for LCDs and RF modules , to communicating and displays easily.
Model: ACS77312JS
Features¶
Dimensions(mm):86.5(L)x53.0(W)x40.0(H)
Application Ideas¶
- Joystick Game
- Greedy Freak
Pin definition and Rating¶
KEY Button Define¶
| Pin | # | KEY | 
|---|---|---|
| D0(RX) | 0 | NULL | 
| D1(TX) | 1 | NULL | 
| D2 | 2 | KEY A | 
| D3 | 3 | KEY B | 
| D4 | 4 | KEY C | 
| D5 | 5 | KEY D | 
| D6 | 6 | KEY E | 
| D7 | 7 | KEY F | 
| D8 | 8 | KEY Down | 
Nokoia 5110 LCD¶
| Pin | # | KEY | 
|---|---|---|
| D9 | 9 | SCLK | 
| D10 | 10 | CSN | 
| D11 | 11 | D/C | 
| D12 | 12 | RST | 
| D13 | 13 | SCE | 
nRF24L01¶
| Pin | # | KEY | 
|---|---|---|
| D9 | 9 | SCE | 
| D10 | 10 | CSN | 
| D11 | 11 | SCK | 
| D12 | 12 | MOSI | 
| D13 | 13 | MISO | 
Usage¶
Hardware Installation¶
Plug JoyStick shield onto the Arduino/Crowduino. Connect the board to PC using USB cable. 
Programming¶
1.Copy the demo code to your sketch, then upload to Arduino or Crowduino board.
int FirstShotX , FirstShotY;
void setup()
{
    for(int i=2; i<9; i++)
   {
    pinMode(i, INPUT);
    digitalWrite(i, 1);
    }
    Serial.begin(9600);
    FirstShotX = 0;
    FirstShotY = 0;
}
void loop()
{
    int i, someInt, flag = 0;
    for(i=2; i<9; i++)
    {
        someInt = digitalRead(i);
        if(someInt == 0)
        {
             flag =1;
             break;
         }
     }
     if(flag == 1)
     {
          switch(i)
          {
              case 2: Serial.println("--------> Button A"); break;
              case 3: Serial.println("--------> Button B"); break;
              case 4: Serial.println("--------> Button C"); break;
              case 5: Serial.println("--------> Button D"); break;
              case 6: Serial.println("--------> Button E"); break;
              case 7: Serial.println("--------> Button F"); break;
              case 8: Serial.println("--------> Button KEY"); break;
              default: break;
           }
           flag=0;
        }
       int sensorValue = analogRead(A0);
       if(FirstShotX == 0)
       {
            FirstShotX = sensorValue;
            Serial.print("FirstShotX = ");
            Serial.println(FirstShotX);
       }
       Serial.print("X = ");
       Serial.println(sensorValue - FirstShotX);
       sensorValue = analogRead(A1);
       if(FirstShotY == 0)
       {
             FirstShotY = sensorValue;
             Serial.print("FirstShotY = ");
             Serial.println(FirstShotY);
        }
         Serial.print("Y = ");
         Serial.println(sensorValue - FirstShotY);
         delay(200);
}
2.Open the serial monitor. Control the JoyStich Shield,you should see some data from you control.
 
