查看: 1374|回复: 2

[未解决] arduino Leonardo

[复制链接]
  • TA的每日心情
    开心
    2018-1-27 17:23
  • 签到天数: 53 天

    [LV.5]常住居民I

    发表于 2017-8-5 21:37 | 显示全部楼层 |阅读模式
    怎样做鼠标?

    该用户从未签到

    发表于 2017-8-5 22:06 | 显示全部楼层
    例子里面就有

    /*
      ButtonMouseControl

    For Leonardo and Due boards only.

    Controls the mouse from five pushbuttons on an Arduino Leonardo, Micro or Due.

    Hardware:
    * 5 pushbuttons attached to D2, D3, D4, D5, D6


    The mouse movement is always relative. This sketch reads
    four pushbuttons, and uses them to set the movement of the mouse.

    WARNING:  When you use the Mouse.move() command, the Arduino takes
    over your mouse!  Make sure you have control before you use the mouse commands.

    created 15 Mar 2012
    modified 27 Mar 2012
    by Tom Igoe

    this code is in the public domain

    */

    #include "Mouse.h"

    // set pin numbers for the five buttons:
    const int upButton = 2;
    const int downButton = 3;
    const int leftButton = 4;
    const int rightButton = 5;
    const int mouseButton = 6;

    int range = 5;              // output range of X or Y movement; affects movement speed
    int responseDelay = 10;     // response delay of the mouse, in ms


    void setup() {
      // initialize the buttons' inputs:
      pinMode(upButton, INPUT);
      pinMode(downButton, INPUT);
      pinMode(leftButton, INPUT);
      pinMode(rightButton, INPUT);
      pinMode(mouseButton, INPUT);
      // initialize mouse control:
      Mouse.begin();
    }

    void loop() {
      // read the buttons:
      int upState = digitalRead(upButton);
      int downState = digitalRead(downButton);
      int rightState = digitalRead(rightButton);
      int leftState = digitalRead(leftButton);
      int clickState = digitalRead(mouseButton);

      // calculate the movement distance based on the button states:
      int  xDistance = (leftState - rightState) * range;
      int  yDistance = (upState - downState) * range;

      // if X or Y is non-zero, move:
      if ((xDistance != 0) || (yDistance != 0)) {
        Mouse.move(xDistance, yDistance, 0);
      }

      // if the mouse button is pressed:
      if (clickState == HIGH) {
        // if the mouse is not pressed, press it:
        if (!Mouse.isPressed(MOUSE_LEFT)) {
          Mouse.press(MOUSE_LEFT);
        }
      }
      // else the mouse button is not pressed:
      else {
        // if the mouse is pressed, release it:
        if (Mouse.isPressed(MOUSE_LEFT)) {
          Mouse.release(MOUSE_LEFT);
        }
      }

      // a delay so the mouse doesn't move too fast:
      delay(responseDelay);
    }
    打赏作者鼓励一下!
    您需要登录后才可以回帖 登录 | 立即注册  

    本版积分规则

    热门推荐

    新手求助,串口通信AT指令发送无反应
    新手求助,串口通信AT指令
    现在想用arduino uno板连接esp12-N无线模块发送数据,但是使用串口助手发送AT指令
    【Arduino】108种传感器模块系列实验(40)---旋转编码器模块
    【Arduino】108种传感器模
    37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是
    Arduino串口事件
    Arduino串口事件
    向各位大佬求助,学习了serialEvent(),按照书上的程序,我是直接使用的示例中的serial
    基于arduino的delta并联机械手
    基于arduino的delta并联机
    delta并联机械手现在广泛应用于工业,因为资金有限,用舵机做的,底座这些也是
    基于机器视觉的智能分拣机械臂
    基于机器视觉的智能分拣机
    本作品是一个基于机器视觉的智能机械臂操作平台,其采用atmega32单片机作为主控制系统
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   ( 蜀ICP备14017632号-3 )
    快速回复 返回顶部 返回列表