Joystick Shield拓展板

来自小钉锤WIKI
跳到导航 跳到搜索


一、Joystick Shield

1. 图示:

11.jpg

2. 价格:

11~27元

二、接口

1. 插板式

由于这块拓展板比较大,所以板子设计成可以直接插在Arduino上,除了几个端口被拓展板使用以外,其他引脚插口都可以正常当成Arduino引脚被使用。

2. 连线式

如果要将拓展板分离,独立连线,最少需要10根杜邦线。

6根控制6个按键,是数字引脚(D);2根控制遥杆,是模拟引脚(A);1根电源线和1根地线。

12312321.jpg

  • 电源3.3V或5V可以选其一,也可以都连接,然后在左下角的拨码开关处进行选择。
3.NRF24L01接口 arduino

CE_PIN  9

CSN_PIN 10

三、驱动程序

1. 遥感控制

引脚选择:

X值接A0口

Y值接A1口

#define PIN_ANALOG_X 0
#define PIN_ANALOG_Y 1
void setup() {
 Serial.begin(9600);
}

void loop() {
 Serial.print("x: ");
 Serial.println(analogRead(PIN_ANALOG_X));
 Serial.print("y: ");
 Serial.println(analogRead(PIN_ANALOG_Y));
 delay(500);
}


2. 按键控制

引脚选择:

A接D2

B接B3

C接D5

D接D4

E接D6

F接D7

#define BUTTON_UP 2
#define BUTTON_RIGHT 3
#define BUTTON_DOWN 5
#define BUTTON_LEFT 4
#define BUTTON_E 6
#define BUTTON_F 7
#define DELAY 500
void setup() {
  
 Serial.begin(9600);
 
 pinMode(BUTTON_UP, INPUT);
 digitalWrite(BUTTON_UP, HIGH);
 pinMode(BUTTON_RIGHT, INPUT);
 digitalWrite(BUTTON_RIGHT, HIGH);
 pinMode(BUTTON_DOWN, INPUT);
 digitalWrite(BUTTON_DOWN, HIGH);
 pinMode(BUTTON_LEFT, INPUT);
 digitalWrite(BUTTON_LEFT, HIGH);
 pinMode(BUTTON_E, INPUT);
 digitalWrite(BUTTON_E, HIGH);
 pinMode(BUTTON_F, INPUT);
 digitalWrite(BUTTON_F, HIGH);
 
}
void loop() {
 if(digitalRead(BUTTON_UP) == LOW) {
   Serial.println("Button A is pressed");
   delay(DELAY);
 }
 else if(digitalRead(BUTTON_RIGHT) == LOW) {
   Serial.println("Button B is pressed");
   delay(DELAY);
 }
 else if(digitalRead(BUTTON_DOWN) == LOW) {
   Serial.println("Button C is pressed");
   delay(DELAY);
 }
 else if(digitalRead(BUTTON_LEFT) == LOW) {
   Serial.println("Button D is pressed");
   delay(DELAY);
 }
 else if(digitalRead(BUTTON_E) == LOW) {
   Serial.println("Button E is pressed");
   delay(DELAY);
 }
 else if(digitalRead(BUTTON_F) == LOW) {
   Serial.println("Button F is pressed");
   delay(DELAY);
 }
}


参考资料:https://www.allaboutcircuits.com/projects/level-up-arduino-joystick-shield-v2.4/