This is a Buttonbox with 12 Switches and a Arduino pro micro Atmega32U4.
You have to change the Keybindings for your needs!
ArduinoCode:
#include <Keyboard.h>
#include <Keypad.h>
int ledPin = 10;
const byte ROWS = 4;
const byte COLS = 3;
char keys[ROWS][COLS] = {
{'a', 'e', 'i'},
{'b', 'f', 'j'},
{'c', 'g', 'k'},
{'d', 'h', 'l'},
};
byte rowPins[ROWS] = {6, 7, 8, 9};
byte colPins[COLS] = {15, 14, 16};
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
void setup() {
Keyboard.begin();
}
void loop() {
analogWrite(ledPin, 250);
char key = keypad.getKey();
if (key) {
switch (key) {
case 'a': // Ship POWER
Keyboard.press('u');
break;
case 'b': // Ship Engin
Keyboard.press('i');
break;
case 'c': // Lights EXT
Keyboard.press('l');
break;
//case 'd': // Lights int
// Keyboard.press('a');
//break;
case 'e': // Lock ext
Keyboard.press(KEY_LEFT_CTRL);
Keyboard.press('z');
break;
case 'f': // Lock int
Keyboard.press(KEY_LEFT_CTRL);
Keyboard.press('y');
break;
case 'g': // DPLY RMP
Keyboard.press(KEY_LEFT_GUI);
Keyboard.press('t');
break;
case 'h': // DPLY GEAR
Keyboard.press('n');
break;
case 'i': //Landing REQ
Keyboard.press(KEY_LEFT_ALT);
Keyboard.press('n');
break;
case 'j': //EXept
Keyboard.press('ü');
break;
case 'k': //ALLERT ON OFF
Keyboard.press(KEY_LEFT_ALT);
Keyboard.press(KEY_TAB);
break;
case 'l': //ALERT MUTE
Keyboard.press(KEY_LEFT_ALT);
Keyboard.press(KEY_ESC);
break;
}
delay(100);
Keyboard.releaseAll();
}
}