mega2560 USB第二季KEYBOARD HID
作者:邓帅哥——大人不要崇拜哥,哥为人民服务,哥已不在社区,但社区的每一个角落都流传着哥的传说。
Now,镜头转入正题,mega2560 USB第二季KEYBOARD HID
首先,你必须有一片arduino主板,而且主板上必须有一片atmega8U2/atmega16U2/支持usb的芯片+mega主芯片(mega328,128,1280,2560.......),操作前请导入附件的USB库
step1:
将下列arduino代码通过arduion下载到arduino板子上,它的功能是,当你按键NumLock三次的时候,它会模拟按键输入一排信息,改变Keyboard.print内的操作即可以改变你想要的按键。/* Arduino USB Business Card
1. Upload this program to Arduino
2. Upgrade atmega8u2 with firmware/Arduino-keyboard-0.3.hex
3. Re-plug Arduino to usb port, and pressed Num Lock button 3 times in 2 seconds
Arduino will type your contact text information into the text editor
*/
#include <USBKeyboard.h>
const uint8_t KEYBOARD_LED = LED_NUMLOCK; // Num Lock LED
const int ledPin =13;
uint8_t lastState = 0, currentState = 0;
void setup()
{
pinMode(ledPin, OUTPUT);
Keyboard.init();
}
// return true if KEYBOARD_LED (Num Lock button) is pressed
boolean buttonPressed()
{
uint8_t ledStatus;
ledStatus = Keyboard.readLedStatus();
// Arduino Led pin as an indicator
// If Num Lock led is on, the led indicator will be on
if (ledStatus & KEYBOARD_LED) {
digitalWrite(ledPin, HIGH);
} else {
digitalWrite(ledPin, LOW);
}
lastState = currentState;
currentState = ledStatus & KEYBOARD_LED;
return (currentState != lastState);
}
void sendContactInfo()
{
Keyboard.print("dengshuaige");
Keyboard.sendKeyStroke(KEY_ENTER);
Keyboard.print("Email: [email protected]");
Keyboard.sendKeyStroke(KEY_ENTER);
Keyboard.print("dengshuaige.com");
Keyboard.sendKeyStroke(KEY_ENTER);
}
void loop()
{
int counter;
delay(100);
// Check whether KEYBOARD_LED is pressed 3 times in 2 seconds
if (buttonPressed()) {
counter = 1;
for (int i = 0; i < 20; i++) {
delay(100);
if (buttonPressed()) counter = counter + 1;
// Send my information to computer
if (counter >= 3) {
sendContactInfo();
break;
}
}
counter = 0; // reset counter
}
}下载到mega2560后,板子还是不能工作的,请继续往下看,
step2:将Arduino-keyboard-0.3-mega2560.hex通过烧录器烧到mega8U2上面
哥用的是USBasp,淘宝15——20元一个。
OK,将mega8u2烧好之后,
连接arduino的USB线,你可以看见在键盘下方多了一个HID keyboard device(不需要安装任何驱动),哈哈,这时,你可以用你自已做的键盘了。
测试一下,新建一个文本,打开,光标输入到文本,按三次NumLock键,得到如下:
USB第三季预告(AVR篇)用mega8单独打造USB键盘...掌声~~~~ 你发的帖子很不错,现在正需要这些东西,谢谢,向你学习! :funk:顺手将代码高亮了。。 不错呀:lol 很喜欢ADK的说,可以和andorid一起做出很多有趣的事情来,楼主这方面懂的比较多,希望您能继续做些东西出来供大家一起学习,谢谢! 高人呀 啥时候能模拟 鼠标! 这个必须支持下...高手... 终于看到具体使用代码,了解了。我讨厌以前看到的铺天盖地的翻番介绍,让我不知arduino和MCU套件有啥区别,这种个人的、具体的好! 求模拟鼠标的 拿来学习一下 楼主,按照你的做法尝试了。的确可以实现,感激不尽。 但是在下载固件的时候没有保存原来的固件,无法还原了。。请求楼主把原固件贴出来。。小白:'(:'(:'(在网上没找到。。 GW.wangshuo 发表于 2014-11-29 13:42 static/image/common/back.gif
楼主,按照你的做法尝试了。的确可以实现,感激不尽。 但是在下载固件的时候没有保存原来的固件,无法还原了 ...
arduino编译器文件夹下面有原固件 当你按键NumLock三次的时候,它会模拟按键输入一排信息
请教这个NumLock是指开发板上的NumLock还是物理键盘的NumLock? zzzazzz 发表于 2015-6-15 22:00 static/image/common/back.gif
当你按键NumLock三次的时候,它会模拟按键输入一排信息
请教这个NumLock是指开发板上的NumLock还是物理键 ...
这个例子是物理键盘的NumLock,但实际使用你可以用开发板的IO模拟物理键盘,看代码 给的库里有好多个文件夹,具体是哪个呢?另外为啥我导入库的时候#include 了好几个进去
页:
[1]
2