美文网首页我爱编程
Joystick Shield拓展板驱动

Joystick Shield拓展板驱动

作者: Murrey_Xiao | 来源:发表于2017-05-15 09:35 被阅读311次

    借了大花哥的手柄玩了玩 查看卖家给的数据手册和官方网站给的帮助文档,整理此篇。

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

    四、参考资料

    相关文章

      网友评论

        本文标题:Joystick Shield拓展板驱动

        本文链接:https://www.haomeiwen.com/subject/uqwcxxtx.html