Arduino - 鼠标按钮控制

使用鼠标库,您可以使用 Arduino Leonardo、Micro 或 Due 控制计算机的屏幕光标。

此特定示例使用五个按钮来移动屏幕光标。其中四个按钮是方向性的(上、下、左、右),一个用于鼠标左键单击。Arduino 的光标移动始终是相对的。每次读取输入时,光标的位置都会相对于其当前位置进行更新。

每当按下其中一个方向按钮时,Arduino 都会移动鼠标,将高输入映射到适当方向上的 5 个范围。

第五个按钮用于控制鼠标左键单击。释放按钮时,计算机将识别该事件。

所需组件

您将需要以下组件 −

  • 1 ×面包板
  • 1 × Arduino Leonardo、Micro 或 Due 板
  • 5 × 10k 欧姆电阻
  • 5 × 瞬时按钮

步骤

按照电路图,将组件连接到面包板上,如下图所示。

Mouse Button Breadboard

草图

在计算机上打开 Arduino IDE 软件。使用 Arduino 语言进行编码将控制您的电路。单击"新建"打开一个新的草图文件。

对于此示例,您需要使用 Arduino IDE 1.6.7

Sketch

Arduino 代码

/*
按钮鼠标控制
仅适用于 Leonardo 和 Due 电路板。通过 Arduino Leonardo、Micro 或 Due 上的 5 个按钮控制鼠标。
硬件:
* 5 个按钮连接到 D2、D3、D4、D5、D6
鼠标移动始终是相对的。此草图读取 4 个按钮,并使用它们来设置鼠标的移动。
警告:当您使用 Mouse.move() 命令时,Arduino 会接管您的鼠标!在使用鼠标命令之前,请确保您有控制权。
*/

#include "Mouse.h"
// 设置五个按钮的引脚号:
const int upButton = 2;
const int downButton = 3;
const int leftButton = 4;
const int rightButton = 5;
const int mouseButton = 6;
int range = 5; // 输出 X 或 Y 方向移动的范围;影响移动速度
int responseDelay = 10; // 鼠标的响应延迟,单位为毫秒

void setup() {
// 初始化按钮的输入:
pinMode(upButton, INPUT);
pinMode(downButton, INPUT);
pinMode(leftButton, INPUT);
pinMode(rightButton, INPUT);
pinMode(mouseButton, INPUT);
// 初始化鼠标控制:
Mouse.begin();
}

void loop() {
    // 读取按钮:
    int upState = digitalRead(upButton);
    int downState = digitalRead(downButton);
    int rightState = digitalRead(rightButton);
    int leftState = digitalRead(leftButton);
    int clickState = digitalRead(mouseButton);
    // 根据按钮状态计算移动距离:
    int xDistance = (leftState - rightState) * range;
    int yDistance = (upState - downState) * range;
    // 如果 X 或 Y 非零,则移动:
    if ((xDistance != 0) || (yDistance != 0)) {
        Mouse.move(xDistance, yDistance, 0);
    }
    
    // 如果鼠标按钮被按下:
    if (clickState == HIGH) {
        // 如果鼠标未按下,则按下它:
        if (!Mouse.isPressed(MOUSE_LEFT)) {
            Mouse.press(MOUSE_LEFT);
        }
    } else { // 否则鼠标按钮未按下:
        // 如果鼠标被按下,则释放它:
        if (Mouse.isPressed(MOUSE_LEFT)) {
        	Mouse.release(MOUSE_LEFT);
    }
}
// 延迟以使鼠标不会移动得太快:
delay(responseDelay);
}

需要注意的代码

使用微型 USB 电缆将您的电路板连接到计算机。按钮连接到引脚 2 至 6 的数字输入。确保使用 10k 下拉电阻。