Can anyone advise me how to optimise the code to make the buttons less laggy? If that's even possible.
Code: Select all
#include <Keyboard.h>
int BatFlag = 0;
int BatLow = 650;
int LED = 670;
unsigned long previousMillis = 0;
unsigned long currentMillis = 0;
const long Interval = 1000;
int keycode_arr[] =
{
216, // LEFT Pin 0
218, // RIGHT Pin 3
217, // DOWN Pin 2
215, // UP Pin 1
118, // 'v' Pin 10
119, // 'w' Pin A0
120, // 'x' Pin 7
121, // 'y' Pin 6
46, // . Pin 4
32, // + Pin 5
97, // 'a' Pin 9
98, // 'b' Pin 8
};
void setup() {
pinMode(1, INPUT_PULLUP);
pinMode(0, INPUT_PULLUP);
pinMode(2, INPUT_PULLUP);
pinMode(3, INPUT_PULLUP);
pinMode(4, INPUT_PULLUP);
pinMode(5, INPUT_PULLUP);
pinMode(6, INPUT_PULLUP);
pinMode(7, INPUT_PULLUP);
pinMode(8, INPUT_PULLUP);
pinMode(9, INPUT_PULLUP);
pinMode(10, INPUT_PULLUP);
pinMode(18, INPUT_PULLUP);
// pinMode(16, INPUT_PULLUP); (Not used)
// pinMode(14, INPUT_PULLUP); (Not used)
pinMode(15, OUTPUT);
analogReference(INTERNAL);
pinMode(A1, INPUT);
Keyboard.begin();
}
void loop() {
currentMillis = millis();
if(currentMillis - previousMillis >= Interval) {
previousMillis = currentMillis;
if (analogRead(A1) <= BatLow) {
BatFlag = 1;
}
if (analogRead(A1) >= LED) {
BatFlag = 0;
}
if (BatFlag == 1) {
digitalWrite(15, LOW);
}
else {
digitalWrite(15, HIGH);
}
}
if (digitalRead(0) == LOW) {
Keyboard.press(keycode_arr[0]);
}
else {
Keyboard.release(keycode_arr[0]);
}
if (digitalRead(3) == LOW) {
Keyboard.press(keycode_arr[1]);
}
else {
Keyboard.release(keycode_arr[1]);
}
if (digitalRead(2) == LOW) {
Keyboard.press(keycode_arr[2]);
}
else {
Keyboard.release(keycode_arr[2]);
}
if (digitalRead(1) == LOW) {
Keyboard.press(keycode_arr[3]);
}
else {
Keyboard.release(keycode_arr[3]);
}
if (digitalRead(10) == LOW) {
Keyboard.press(keycode_arr[4]);
}
else {
Keyboard.release(keycode_arr[4]);
}
if (digitalRead(18) == LOW) {
Keyboard.press(keycode_arr[5]);
}
else {
Keyboard.release(keycode_arr[5]);
}
if (digitalRead(7) == LOW) {
Keyboard.press(keycode_arr[6]);
}
else {
Keyboard.release(keycode_arr[6]);
}
if (digitalRead(6) == LOW) {
Keyboard.press(keycode_arr[7]);
}
else {
Keyboard.release(keycode_arr[7]);
}
if (digitalRead(4) == LOW) {
Keyboard.press(keycode_arr[8]);
}
else {
Keyboard.release(keycode_arr[8]);
}
if (digitalRead(5) == LOW) {
Keyboard.press(keycode_arr[9]);
}
else {
Keyboard.release(keycode_arr[9]);
}
if (digitalRead(9) == LOW) {
Keyboard.press(keycode_arr[10]);
}
else {
Keyboard.release(keycode_arr[10]);
}
if (digitalRead(8) == LOW) {
Keyboard.press(keycode_arr[11]);
}
else {
Keyboard.release(keycode_arr[11]);
}
}