Joystick Shield拓展板驅動

借了大花哥的手柄玩了玩 查看賣家給的數據手冊和官方網站給的幫助文檔,整理此篇。

一、Joystick Shield

1. 圖示:

Joystick Shield拓展板
2. 價格:

11~27元

二、連線

1. 插板式

由于這塊拓展板比較大,所以板子設計成可以直接插在Arduino上,除了幾個端口被拓展板使用以外,其他引腳插口都可以正常當成Arduino引腳被使用。

2. 連線式

如果要將拓展板分離,獨立連線,最少需要10根杜邦線。
6根控制6個按鍵,是數字引腳(D);2根控制遙桿,是模擬引腳(A);1根電源線和1根地線。

  • 電源3.3V或5V可以選其一,也可以都連接,然后在左下角的撥碼開關處進行選擇。

三、驅動程序

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);
 }
}

四、參考資料

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容