102 lines
2.3 KiB
Arduino
102 lines
2.3 KiB
Arduino
|
/*
|
||
|
KeyboardAndMouseControl
|
||
|
|
||
|
Hardware:
|
||
|
- five pushbuttons attached to D12, D13, D14, D15, D0
|
||
|
|
||
|
The mouse movement is always relative. This sketch reads four pushbuttons, and
|
||
|
uses them to set the movement of the mouse.
|
||
|
|
||
|
WARNING: When you use the Mouse.move() command, the Arduino takes over your
|
||
|
mouse! Make sure you have control before you use the mouse commands.
|
||
|
|
||
|
created 15 Mar 2012
|
||
|
modified 27 Mar 2012
|
||
|
by Tom Igoe
|
||
|
|
||
|
This example code is in the public domain.
|
||
|
|
||
|
http://www.arduino.cc/en/Tutorial/KeyboardAndMouseControl
|
||
|
*/
|
||
|
#if ARDUINO_USB_MODE
|
||
|
#warning This sketch should be used when USB is in OTG mode
|
||
|
void setup(){}
|
||
|
void loop(){}
|
||
|
#else
|
||
|
|
||
|
#include "USB.h"
|
||
|
#include "USBHIDMouse.h"
|
||
|
#include "USBHIDKeyboard.h"
|
||
|
USBHIDMouse Mouse;
|
||
|
USBHIDKeyboard Keyboard;
|
||
|
|
||
|
// set pin numbers for the five buttons:
|
||
|
const int upButton = 12;
|
||
|
const int downButton = 13;
|
||
|
const int leftButton = 14;
|
||
|
const int rightButton = 15;
|
||
|
const int mouseButton = 0;
|
||
|
|
||
|
void setup() { // initialize the buttons' inputs:
|
||
|
pinMode(upButton, INPUT_PULLUP);
|
||
|
pinMode(downButton, INPUT_PULLUP);
|
||
|
pinMode(leftButton, INPUT_PULLUP);
|
||
|
pinMode(rightButton, INPUT_PULLUP);
|
||
|
pinMode(mouseButton, INPUT_PULLUP);
|
||
|
|
||
|
Serial.begin(115200);
|
||
|
// initialize mouse control:
|
||
|
Mouse.begin();
|
||
|
Keyboard.begin();
|
||
|
USB.begin();
|
||
|
}
|
||
|
|
||
|
void loop() {
|
||
|
// use serial input to control the mouse:
|
||
|
if (Serial.available() > 0) {
|
||
|
char inChar = Serial.read();
|
||
|
|
||
|
switch (inChar) {
|
||
|
case 'u':
|
||
|
// move mouse up
|
||
|
Mouse.move(0, -40);
|
||
|
break;
|
||
|
case 'd':
|
||
|
// move mouse down
|
||
|
Mouse.move(0, 40);
|
||
|
break;
|
||
|
case 'l':
|
||
|
// move mouse left
|
||
|
Mouse.move(-40, 0);
|
||
|
break;
|
||
|
case 'r':
|
||
|
// move mouse right
|
||
|
Mouse.move(40, 0);
|
||
|
break;
|
||
|
case 'm':
|
||
|
// perform mouse left click
|
||
|
Mouse.click(MOUSE_LEFT);
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// use the pushbuttons to control the keyboard:
|
||
|
if (digitalRead(upButton) == LOW) {
|
||
|
Keyboard.write('u');
|
||
|
}
|
||
|
if (digitalRead(downButton) == LOW) {
|
||
|
Keyboard.write('d');
|
||
|
}
|
||
|
if (digitalRead(leftButton) == LOW) {
|
||
|
Keyboard.write('l');
|
||
|
}
|
||
|
if (digitalRead(rightButton) == LOW) {
|
||
|
Keyboard.write('r');
|
||
|
}
|
||
|
if (digitalRead(mouseButton) == LOW) {
|
||
|
Keyboard.write('m');
|
||
|
}
|
||
|
delay(5);
|
||
|
}
|
||
|
#endif /* ARDUINO_USB_MODE */
|