
Arduino模拟键盘输入信息
本示例将演示使用Arduino Leonardo模拟USB键盘输出信息。
要直接模拟键盘输入信息很简单,只需使用Keyboard.print() 或者Keyboard.println() 即可。这里我们要做个文本发送器,每按一次按键,输入一条信息。
实验连接示意图如图9-1所示,在2号引脚上连接了一个10K上拉电阻,如果你使用的是按键模块,那你可能需要将对应引脚口设置开启内部上拉电阻。
模拟键盘输入实验连接示意图
示例程序如下,你可以在文件>示例>09.USB>Keyboard>KeyboardMessage找到该程序。
下载程序后,选择一个可以输入文本的输入框,按下按键,你可以看到文本框中随即出现了“You pressed the button 1 times.”文本,再次按下按键,程序中计数器会将数字加1,因此你会看到“You pressed the button 2 times.”文本。
9.2.1 Arduino Leonardo在模拟USB设备后,无法正常下载程序。
当用Arduino Leonardo模拟鼠标键盘时,键盘鼠标可能会出现失灵乱跳的情况,这往往是因为程序中对应控制按键操作的I/O口悬空所致。当I/O悬空时,检测到的输入电平为不定值,可能会误触发鼠标键盘操作。你可以通过pinMode(pin,INPUT_PULLUP) 语句开启对应引脚上的内部上拉电阻,或者外接上下拉电阻,让悬空时引脚检测到的电平稳定。本示例中即是通过给按键外接上拉电阻,确保按键未按下时I/O能读到高电平。
在模拟USB设备后,USB口处于USB通信状态,此时可能无法正确下载程序,解决方法如下:
按住Arduino Leonardo上的复位按键不放,点击上传,等待IDE编译,待Arduino提示上传中时,放开复位按钮,等待完成下载。
更推荐的方法是,给USB设备模拟程序都添加一个按键开关,当点击这个按键开关后,Arduino才开始模拟USB设备。
模拟键盘组合按键
以下程序,可以将Arduino Leonardo模拟成键盘,通过触发2号引脚上连接的按键或者传感器,可以让你的计算机自动注销登录状态。
实现原理即是使用当前系统对应的快捷键功能,先通过Keyboard.press() 将需要使用的按键都选中,然后使用Keyboard.releaseAll() 释放按键,即可模拟键盘同时按下组合按键的效果。
在示例程序中,我们将通过以上方法模拟组合按键按下效果,以达到注销登录状态的目的。
你可以在文件>示例>09.USB>Keyboard>Keyboard Logout找到该程序。
每种系统的对应的快捷键均不一样,因此,下载该程序前,你需要先将程序设置为你对应的系统,这里使用了宏定义来实现直接将系统名称赋值给一个变量的效果。
下载并运行程序,通过触发2号引脚上的按键或者传感器,当2号引脚读到低电平时,即会触发计算机执行注销当前用户的操作。
