极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 18623|回复: 9

也来聊聊arduino模拟USB鼠标(第一季),还少些图片,稍后补上

[复制链接]
发表于 2012-10-26 22:48:14 | 显示全部楼层 |阅读模式
本帖最后由 312494845 于 2012-10-27 00:26 编辑

话说是前几日看了论坛上的帖子
起因
Arduino学习笔记A12 - 自制Makey模拟触摸键盘(还差实物贴图和视频没贴上,稍后补全)
开始
此时正好手头没事,而且所需的硬件都有,所以果断摆上东西,按照帖子的说明一步步链接好电路,下好程序,插上USB线。
“无法识别的USB设备”
怀疑
首先,觉得是自己的接线方法有问题,所以把所有器件都拆下来从新连接上,结构依旧无法识别。看了下跟帖,也有些人说无法识别,但也没有提出解决方案。
其次,是不是帖子贴出来的代码有问题呢?遍在网上搜了好多发布的arduino的USB库和代码,有的编译不通,有的编译成功,但是下载下去之后依旧无法识别。
捕获.PNG
再次,怀疑是稳压管的型号不对,因为用的稳压管是在桌子上小垃圾堆里照出来的,不知道具体型号。用万用表量了一下USB信号线的电压,4+V,果然超了……原贴上建议的是3+V,这下完蛋了,看来这个鼠标我是做不成了。
休息干点别的吧,反正手头也没有适合的稳压二极管。突然灵光一现:这个稳压管是坐什么用的呢?可能一:作为USB信号线,对静电比较敏感,所以用稳压管来释放经静电,放置静电打坏器件。如果是这样,那就会有如下两个疑问:1、如果作保护器件的话,去掉这个器件也不会影响系统工作,2、如果是保护器件为什么一定要用3+V的稳压管呢,我的是4+V的应该也没有问题啊。显然不是起保护作用。 可能二:作为USB信号线的阻抗匹配即滤波。因为二极管的PN结宽度会随两端点啊的变化而变化,所以二极管是带有电容性的,如果这样也会有疑问,1、如上可能性疑问二,既然3+V二极管可以那么4+V的二极管也可以。2,滤波USB低速通信时影响不大。所以也不是其这个作用。最后的可能,因为使用5V的arduino,所以稳压管的作用就是限制USB数据线的电压,这个倒是说得通,3+V二极管可以,4+V的二极管也不可以。俗话说要动脑也要动手,所以我火速查了一下USB标准的文档

电压范围

电压范围

数据识别

数据识别

,证明,稳压管的作用就是把USB信号线的电压限制在2.8-3.6。这样既然知道了稳压管的作用就好办了,虽然手头没有没有稳压管,但是把信号线的电压先知道这个范围内,方法也很简单。我让arduino运行在3.3V这个问题就解决了。因为我用的是arduino pro mini,
捕获.PNG
他是电源可外接的,恰好手头的FTDI也有3。3V输出,

FTDI

FTDI

拿来借用一下,OK这个问题解决。USB在此插在电脑上试了一下,发现还是不行,哭了!
最后,发现所给的电路图中USB信号定义顺序有问题,记忆总USB数据线顺序是VUSB,D-,D+,GND。而原贴中的顺序VUSB,D+,D-,GND。神奇了!还是再看看USB标准吧

上拉电阻

上拉电阻

也就是说原帖子上拉电阻拉到D-是没错的,但是因为D-D+的顺序颠倒了,所以大多数人都会把上拉电阻拉到D+。当然我也接错了,之后调了一下上拉的位置,模拟的鼠标就被识别了。
总之,原帖USB接口线序有问题会误导大家接线,所以大家的会出现无法识别的问题。贴出来的程序没问题
另外,传统不带USB的AVR能够实现USB功能,虽然是很常见的事,但是在Arduino在国内还是比较少见的。对于比较专业的Arduino也比较建议使用pro mini这样的精简硬件版本,好处有三,第一引出端口超多,方便自己使用。第二体积小,便于潜入各种作品当中,第三价价格低。
回复

使用道具 举报

发表于 2012-10-27 09:19:23 | 显示全部楼层
学习了..............
回复 支持 反对

使用道具 举报

发表于 2012-10-27 09:28:22 | 显示全部楼层
楼主写的很详细,学习了...
回复 支持 反对

使用道具 举报

发表于 2012-10-27 18:38:37 | 显示全部楼层
{:soso_e110:}我的帖子那线序的确是非正常线序,不过接法没错的,我只是画图的时候用了现成的USB插口库,正常的usb应该是vcc,D-,D+,GND才对。。最近忙的事情比较多,旧帖子都没空收拾,哎。。感谢你的意见{:soso_e183:}
回复 支持 反对

使用道具 举报

发表于 2014-6-11 22:51:47 | 显示全部楼层
很有用!!
回复 支持 反对

使用道具 举报

发表于 2014-10-19 12:53:23 | 显示全部楼层
您好, 请问模拟鼠标 arduino用的哪个库?
回复 支持 反对

使用道具 举报

发表于 2014-10-28 12:14:54 | 显示全部楼层
楼主写的很详细,学习了...
回复 支持 反对

使用道具 举报

发表于 2014-12-26 20:40:14 | 显示全部楼层

请教楼主,该方法在widows系统下没问题。但是windows启动前比如想自动输入Bios密码时没反应,而一般的usb键盘可以。请问有办法在windows启动前也能用吗?
回复 支持 反对

使用道具 举报

发表于 2017-4-16 14:40:40 | 显示全部楼层
我的信号线电压为2.1+V,为什么,求解答
回复 支持 反对

使用道具 举报

发表于 2017-5-2 19:42:23 | 显示全部楼层
892670235 发表于 2017-4-16 14:40
我的信号线电压为2.1+V,为什么,求解答

已解决.....
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊 ( 浙ICP备09023225号 )

GMT+8, 2019-7-21 07:02 , Processed in 0.061386 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表