12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- // #include "Keyboard.h"
- // #include "HID.h"
- // https://www.arduino.cc/en/Reference/KeyboardBegin
- // https://www.arduino.cc/en/Tutorial/KeyboardMessage
- // https://www.arduino.cc/en/Tutorial/KeyboardReprogram
- // http://www.cplusplus.com/doc/tutorial/structures/
- struct Key {
- int pin;
- char keyCode;
- boolean wasPushed;
- };
- const int NUM_OF_KEYS = 4;
- Key keys[NUM_OF_KEYS];
- void setup() {
- // Initialize key data
- // https://www.arduino.cc/en/Reference/KeyboardModifiers
- // { buttonPin, keyCode, wasPushed }
- keys[0] = { 2, KEY_LEFT_CTRL , false };
- keys[1] = { 3, KEY_LEFT_ALT, false};
- keys[2] = { 4, KEY_LEFT_SHIFT, false };
- keys[3] = { 5, KEY_BACKSPACE, false };
- // make pins inputs and turn on the
- // pullup resistor so they go high unless
- // connected to ground:
- for(int i = 0; i < NUM_OF_KEYS; i++) {
- pinMode(keys[i].pin, INPUT_PULLUP);
- }
- Keyboard.begin();
- }
- void loop() {
- for(int i = 0; i < NUM_OF_KEYS; i++) {
- // If key is now pushed, but wasn't before...
- if((digitalRead(keys[i].pin) == LOW) && (keys[i].wasPushed == false)) {
- Keyboard.press(keys[i].keyCode); // Send key down
- keys[i].wasPushed = true;
- }
- // If key is now unpushed, but was before...
- else if ((digitalRead(keys[i].pin) == HIGH) && (keys[i].wasPushed == true)) {
- Keyboard.release(keys[i].keyCode); // Send key up
- keys[i].wasPushed = false;
- }
- }
|