Experimento del ratón virtual

Experimento del ratón virtual

Fenómenos experimentales

El botón simula que el mouse se mueve hacia la izquierda, la derecha, haga clic en el botón izquierdo y otras operaciones

Diagrama esquemático

Inserte la descripción de la imagen aquí

Escritura de código

#include<Mouse.h>
#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
}

Supongo que te gusta

Origin blog.csdn.net/qq_45671732/article/details/109447013
Recomendado
Clasificación