Hello I'm building a small keyboard shortcut with 6 button keys. The problem I'm having is that i have 16 to 17 shortcuts i need to make to help me out daily. I know using the keyboard libray i can make 6 shortcuts. However i do not know how to make a 16 to 17 shortcut function switching so one button can do different functions.
So my question is there an example i can take a look at to get me started on how to figure out to get me started?
Hi,
Can you please post the code you have that works, then we can advise any edits?
Can you post a circuit to show how you have the keypad or keyboard connected.
Hello TomGeorge, This is my code it is something i found online and i added 3 more to the example for 6 keys. I'm not much of a coder but I'm learning to figure things out.
/*
* Arduino Keyboard Emulation
* learnelectronics
* 13 FEB 2017
*
* www.youtube.com/c/learnelectronics
*/
#include <Keyboard.h> // This is a "built-in" library no need to install
//---------------------------------------------------------
// Setup
//---------------------------------------------------------
void setup() {
pinMode(3,INPUT_PULLUP); // sets pin 3 to input & pulls it high w/ internal resistor
pinMode(4,INPUT_PULLUP); // sets pin 4 to input & pulls it high w/ internal resistor
pinMode(5,INPUT_PULLUP); // sets pin 5 to input & pulls it high w/ internal resistor
pinMode(6,INPUT_PULLUP); // sets pin 6 to input & pulls it high w/ internal resistor
pinMode(7,INPUT_PULLUP); // sets pin 7 to input & pulls it high w/ internal resistor
pinMode(8,INPUT_PULLUP); // sets pin 8 to input & pulls it high w/ internal resistor
Serial.begin(9600); // begin serial comms for debugging
}
//---------------------------------------------------------
// Loop
//---------------------------------------------------------
void loop() {
Keyboard.begin(); //begin keyboard
if (digitalRead(3) == 0) // if buton 3 is pushed
{
Keyboard.write(0x80); // send Hex value for KEY_LEFT_CTRL key
delay(200); // delay so you don't get 20 A's
}
else if (digitalRead(4) == 0){ // if button 4 is pressed
Keyboard.write('A'); // send single character "A"
delay(200);
}
else if (digitalRead(5) == 0){ //if button 5 is pressed
Keyboard.write(0xB0); // send Hex value for RETURN key
delay(200);
}
else if (digitalRead(6) == 0){ //if button 5 is pressed
Keyboard.write(0xD8); // send Hex value for KEY_LEFT_ARROW key
delay(200);
}
else if (digitalRead(7) == 0){ //if button 5 is pressed
Keyboard.write(0xD7); // send Hex value for KEY_RIGHT_ARROW key
delay(200);
}
else if (digitalRead(8) == 0){ //if button 5 is pressed
Keyboard.write(0xC7); // send Hex value for KEY_F6 key
delay(200);
}
Keyboard.end(); //stops keybord
}
Edit: I'm using just Soft Tactile Button i found online. With diodes so i can do multiple button presses. that i have found online here.
I suspect that you're going to need to look at the press and release functions, at least for the control key. I assume that with what you have if you press control and 'A', you just get an 'A', correct?
Hello i have a few board the arduino leonardo, a Uno board and a Arduino zero board. The leonardo and Zero board both have native usb that would work great for something like this. So I'm deciding on which one.
Hello, let me tackle the first problem. How can i do multiple key presses at one time? Say with a single keypress? At the moment all i know and can do is a single keypress but use multiple hardware keys.
Because it is much more fun to build something then to buy a complete package. And try and learn to figure out how to program it. If i fail, I fail but at least I'm trying.