#include "Keyboard.h"
#include <Keypad.h>
const byte ROWS = 4; //four rows
const byte COLS = 4; //four columns
char keys[ROWS][COLS] = {
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'},
};
byte rowPins[ROWS] = {2, 3, 4, 5};
byte colPins[COLS] = {6, 7, 8, 9 };
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
void setup() {
pinMode(A0, INPUT_PULLUP);
pinMode(10, INPUT_PULLUP);
pinMode(16, INPUT_PULLUP);
pinMode(15, INPUT_PULLUP);
pinMode(14, INPUT_PULLUP);
Serial.begin(9600);
Keyboard.begin();
}
void sendMacroCommand(uint8_t key) {
Keyboard.press(KEY_LEFT_CTRL);
Keyboard.press(KEY_LEFT_SHIFT);
Keyboard.press(KEY_LEFT_ALT);
Keyboard.press(key);
}
void loop() {
while (digitalRead(A0) == HIGH) {
// do nothing until pin 2 goes low
delay(500);
}
char key = keypad.getKey();
if (key) {
Serial.println(key);
switch (key)
{
case '1':
Keyboard.press(KEY_LEFT_ALT);
Keyboard.press(KEY_LEFT_ARROW);
break;
case '2':
Keyboard.press(KEY_LEFT_ALT);
Keyboard.press(KEY_RIGHT_ARROW);
break;
case '3':
sendMacroCommand(KEY_F3);
break;
case '4':
sendMacroCommand(KEY_F4);
break;
case '5':
Keyboard.press(KEY_LEFT_CTRL);
Keyboard.press(KEY_LEFT_SHIFT);
Keyboard.press('b');
break;
case '6':
sendMacroCommand(KEY_F6);
break;
case '7':
sendMacroCommand(KEY_F7);
break;
case '8':
sendMacroCommand(KEY_F8);
break;
case '9':
sendMacroCommand(KEY_F9);
break;
case '0':
sendMacroCommand(KEY_F10);
break;
case '*':
sendMacroCommand(KEY_F11);
break;
case '#':
sendMacroCommand(KEY_F12);
break;
case 'A':
Keyboard.press(KEY_LEFT_CTRL);
Keyboard.press(KEY_LEFT_SHIFT);
Keyboard.press('m');
break;
case 'B':
sendMacroCommand('b');
break;
case 'C':
sendMacroCommand('c');
break;
case 'D':
Keyboard.press(KEY_LEFT_GUI);
Keyboard.press('r');
Keyboard.release(KEY_LEFT_GUI);
Keyboard.release('r');
delay(50); //give your system time to catch up with these android-speed keyboard presses
Keyboard.println("chrome");
delay(600);
Keyboard.println("https://youtu.be/dQw4w9WgXcQ");
delay(3000);
break;
}
}
else {
if (digitalRead(10) == LOW){
Keyboard.press(KEY_LEFT_GUI);
Keyboard.press('r');
Keyboard.release(KEY_LEFT_GUI);
Keyboard.release('r');
delay(50); //give your system time to catch up with these android-speed keyboard presses
Keyboard.println("chrome");
delay(600);
Keyboard.println("https://youtu.be/dQw4w9WgXcQ");
delay(3000);
}
else if (digitalRead(15) == LOW){
Keyboard.press(KEY_LEFT_GUI);
Keyboard.press('r');
Keyboard.release(KEY_LEFT_GUI);
Keyboard.release('r');
delay(50); //give your system time to catch up with these android-speed keyboard presses
Keyboard.println("chrome");
delay(600);
Keyboard.println("https://youtu.be/dQw4w9WgXcQ");
delay(3000);
}
else if (digitalRead(16) == LOW){
Keyboard.press(KEY_LEFT_GUI);
Keyboard.press('r');
Keyboard.release(KEY_LEFT_GUI);
Keyboard.release('r');
delay(50); //give your system time to catch up with these android-speed keyboard presses
Keyboard.println("chrome");
delay(600);
Keyboard.println("https://youtu.be/dQw4w9WgXcQ");
delay(3000);
}
else if (digitalRead(14) == LOW){
Keyboard.press(KEY_LEFT_GUI);
Keyboard.press('r');
Keyboard.release(KEY_LEFT_GUI);
Keyboard.release('r');
delay(50); //give your system time to catch up with these android-speed keyboard presses
Keyboard.println("chrome");
delay(600);
Keyboard.println("https://youtu.be/dQw4w9WgXcQ");
delay(3000);
}
}
Keyboard.releaseAll(); // this releases the buttons
delay(100);
}
ankur_macro_keyboard.ino (4.5 KB)