查看: 1404|回复: 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);
    }
    您需要登录后才可以回帖 登录 | 立即注册  

    本版积分规则

    热门推荐

    【Arduino】108种传感器模块系列实验(55)---DHT11温湿度传感器
    【Arduino】108种传感器模
    37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是
    【Arduino】168种传感器系列实验(149)--AS608光学指纹识别模块
    【Arduino】168种传感器系
    37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是
    黑乌鸦的Arduino兵器库-----DFPlayer MiNi mp3音乐模块
    黑乌鸦的Arduino兵器库---
    嗯 这是一个系列后期会罗列几乎所有的常见基础模块的demo所以 大家的回复将是我最大
    【原创】 drawbot平面关节scara机械臂写字机 画画机器人直播...
    【原创】 drawbot平面关节
    这个项目上个月就在做了,结构和代码反反复复改了多次,加上自己又太忙,一直没来得及
    【干货分享】mega2560原理图PCB图纸altium designer18
    【干货分享】mega2560原理
    分享一下mega2560的板子 AD版本 **** 本内容被作者隐藏 **** ergo
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
    快速回复 返回顶部 返回列表