25.虚拟鼠标实验

实验现象:

  按键模拟鼠标向左移动,向右移动,点击左键等操作。

理论学习:

  学会Mouse.move和Mouse.click的使用。

  详情查看:http://arduino.cc/en/Tutorial/ButtonMouseControl 

程序代码:

#define KEY1 2  //左移
#define KEY2 3  //右移
#define KEY3 4  //左键
 
int Flag_up = 1;
 
void setup()
{
  pinMode(KEY1, INPUT_PULLUP);
  pinMode(KEY2, INPUT_PULLUP);
  pinMode(KEY3, INPUT_PULLUP);
  Mouse.begin();
}
  
void loop()
{
  if( ScanKey(1) == 1)      //左移
  {
    Mouse.move(-40, 0);     //左移40
  }
  else if(ScanKey(1) == 2)  //右移
  {
    Mouse.move(40, 0); 
  }
  else if(ScanKey(1) == 3)  //左键按下
  {
    Mouse.click(MOUSE_LEFT);   
  }
}
 
unsigned char ScanKey(int mode)     //按键扫描程序,返回键值
{
  if(mode)              //mode = 1时候,该代码支持长按。mode = 0时候,不支持长按
  {
    Flag_up = 1;
  }
   
  if(Flag_up  && (digitalRead(KEY1) == LOW || digitalRead(KEY2) == LOW || digitalRead(KEY3) == LOW) )       //当Flag_up = 1并且按键按下时
  {
    Flag_up = 0;            //清空Flag_up
    delay(30);              //延时去抖动
    if(digitalRead(KEY1) == LOW)    //按键按下
    {
      return 1;             //返回键值1
    }
    if(digitalRead(KEY2) == LOW)    //按键按下
    {
      return 2;             //返回键值2
    }
    if(digitalRead(KEY3) == LOW)    //按键按下
    {
      return 3;             //返回键值3
    }
  }
  if(digitalRead(KEY1) == HIGH && digitalRead(KEY2) == HIGH && digitalRead(KEY3) == HIGH)   //按键松开时候
  {
    Flag_up = 1;            //置位Flag_up
  }
  return 0;             //返回键值0
}




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值