如何实现Arduino和鼠标的通讯

如何实现Arduino和鼠标的通讯,第1张

如何将鼠标的移动信息(x位置,y位置)发送给Arduino?

我自己做了小车,想用光电鼠标实时反馈位置信息。结果就是实现不了鼠标芯片和Arduino之间的通讯。

自己编了程序,大家帮着看看问题出在哪里?

/ communication

between Mouse and Arduino

/

#include <ps2h>

PS2 mouse(8, 9); //设置针脚

void setup()

{

Serialbegin(9600);

mousewrite();

mouseread();

}

void loop()

{

unsigned char code;

code = mousewrite();

code = mouseread();

Serialprintln(code); //读取键盘输入并输出到串口显示

}

/

ps2cpp

/

#include "ps2h"

PS2::PS2(int clk, int data) //初始化,设置时钟数据位的针脚

{

_ps2clk = clk;

_ps2data = data;

}

unsigned char PS2::write()

{

unsigned char data = 0x00;

unsigned char i;

unsigned char bit = 0x01;

pinMode(_ps2clk, OUTPUT);

digitalWrite(_ps2clk, LOW);

delayMicroseconds(240);

pinMode(_ps2data, INPUT);

digitalWrite(_ps2data, LOW); //以上把时钟和数据均设置为低位,以使鼠标产生时序信号

delayMicroseconds(20);

digitalWrite(_ps2clk, HIGH);

for(i=0;i<11;i++)//发送11位数据

{

while (digitalRead(_ps2clk) == HIGH)

{;}//延时等待时钟线信号变低

Serialprintln(data);

if((data&0x01)==1) //获取要发送的数据位

{digitalWrite(_ps2data, HIGH);} //发送数据的第i位值到数据线

else

{digitalWrite(_ps2data, LOW);}

data = data>>1;

while (digitalRead(_ps2clk) == LOW)

{;}//延时等待时钟拉高

}

pinMode(_ps2clk, INPUT);

digitalWrite(_ps2clk, LOW); //全部读取完毕,将时钟设为低位

return data;

}

unsigned char PS2::read(void)

// 读取数据模块,返回8位数据

{

unsigned int value=0; //将value作为接收缓冲区

unsigned char i;

digitalWrite(_ps2clk, HIGH); //arduino释放数据线

for (i=0;i<11;i++) //接收11bit数据

{ value=value>>1;

while(digitalRead(_ps2clk) == HIGH){;}//延时等待到时钟为低

delay(4);//延时50 微秒

if(digitalRead(_ps2data)==HIGH)

{value=value|0x0400;}//读数据线的值并记录在value

while(digitalRead(_ps2clk) == LOW){;}//延时等待到时钟为高

}

value>>=1;//截取value的2-11位

return value;

} //返回 *** 作数据

/

ps2h

/

#include "Arduinoh"

class PS2

{

public:

PS2(int clk, int data);

unsigned char read(void);

unsigned char write(void);

private:

int _ps2clk;

int _ps2data;

};

您好!首先你可以在我的电脑里,找到设备管理,然后在其他设备中找到你要的安装,点击鼠标右键更新驱动程序试一下。如果要是还没有解决你可以到网站上下载一个万能驱动软件在试一下。以上问题在 *** 作时可以重新启动一下电脑。

低端的指针移动不平稳,如果插值后还会跳着走,高端也不能插值,不过一般高端的分辨率都超过5000DPI,没必要插值,极慢鼠标小学生玩法玩FPS游戏用低端鼠标可能指针无法移动或失控,高端不会,是高端鼠标造就了极慢鼠标小学生玩法这种手残技术,没有ie30当年的王者级鼠标时,CS玩家的鼠标速度都不敢太慢,否则准心就甩不动。

以上就是关于如何实现Arduino和鼠标的通讯全部的内容,包括:如何实现Arduino和鼠标的通讯、为什么联想电脑装上英特尔芯片组驱动程序后,鼠标就不能用了、鼠标的芯片究竟有多重要,高低端芯片的差异在哪等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9593880.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存