sir ,
i tried teensy lc with keypad library,
i create matrix 6x9, and checked key number from each key using this sketch
i found keys number for all key .
https://forum.pjrc.com/asset.php?fid=13698&uid=45118&d=1537248337
and tried to display button name in serial monitor using that numbers , as written in below code
after uploading .....
only (tempo up ,tempo down ,tempo tap) keys are giving right result according to sketch .. other key are not giving result as in sketch,
some keys giving wrong result,some are return nothing. every button is connect between row & colomn by 1N4148 diode
what can be wrong?????????????????//
i tried teensy lc with keypad library,
i create matrix 6x9, and checked key number from each key using this sketch
Code:
#include <Keypad.h>
const byte ROWS = 6; //four rows
const byte COLS = 9; //three columns // tested ok display Key number
char keys[ROWS][COLS] = {
{1,2,3,4,5,6,7,8,9},
{10,11,12,13,14,15,16,17,18,},
{19,20,21,22,23,24,25,26,27},
{28,29,30,31,32,33,34,35,36},
{37,38,39,40,41,42,43,44,45}, // 6 x 9
{46,47,48,49,50,51,52,53,54},
};
byte rowPins[ROWS] = {0, 1, 4, 5, 6, 7 }; //connect to the row pinouts of the kpd
byte colPins[COLS] = { 8, 9, 10, 11, 12, 13, 14,15, 16}; //connect to the column pinouts of the kpd
Keypad kpd = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
//
String msg;
void setup() {
Serial.begin(9600);
msg = "";
}
void loop() {
// Fills kpd.key[ ] array with up-to 10 active keys.
if (kpd.getKeys())
{
for (int i=0; i<LIST_MAX; i++) // Scan the whole key list.
{
if ( kpd.key[i].stateChanged ) // Only find keys that have changed state.
{
int myKey = (kpd.key[i].kchar);
switch (kpd.key[i].kstate) { // Report active key state : IDLE, PRESSED, HOLD, or RELEASED
case PRESSED:
msg = " PRESSED.";
break;
case HOLD:
msg = " HOLD.";
break;
case RELEASED:
msg = " RELEASED.";
break;
case IDLE:
msg = " IDLE.";
}
Serial.print("Key ");
Serial.print(myKey); // kpd.key[i].kchar
Serial.println(msg);
}
}
}
}
i found keys number for all key .
https://forum.pjrc.com/asset.php?fid=13698&uid=45118&d=1537248337
and tried to display button name in serial monitor using that numbers , as written in below code
Code:
#include <Keypad.h> // patch press & hold not working,, remove patch block with new rows funcction
const byte ROWS = 6; //four rows
const byte COLS = 7; //three columns // tested ok display Key number
char keys[ROWS][COLS] = {
{1,2,3,4,5,6,7},
{8,9,10,11,12,13,14},
{15,16,17,18,19,20,21},
{22,23,24,25,26,27,28},
{29,30,31,32,33,34,35}, // 6 x 7
{36,37,38,39,40,41,42},
};
byte rowPins[ROWS] = {0, 1, 4, 5, 6, 7 }; //connect to the row pinouts of the kpd
byte colPins[COLS] = { 8, 9, 10, 11, 12, 13, 14}; //connect to the column pinouts of the kpd
Keypad kpd = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
void setup() {
Mouse.screenSize(1366, 768); // configure screen size
Serial.begin(9600);
}
void loop() {
int xx = 44;
if (kpd.getKeys())
{
for (int i=0; i<LIST_MAX; i++) // Scan the whole key list.
{
if (( kpd.key[i].stateChanged ) && (kpd.key[i].kchar == 1)) // ----------------------------------------Tempo UP-----begin 1
{
switch (kpd.key[i].kstate) { // Report active key state : IDLE, PRESSED, HOLD, or RELEASED
case PRESSED:
Mouse.moveTo(512, 54); // point to pixel at 512, 54
Mouse.scroll(+1); // turn scroll wheel upward 1 step
Mouse.moveTo(345, 94);
break;
case HOLD:
// Do when Hold
break;
case RELEASED:
// Do when Released
break;
/* case IDLE:
// Do when IDLE */
}
} // *********************************************************************************************************************end 1
if (( kpd.key[i].stateChanged ) && (kpd.key[i].kchar == 6)) // -------------------------------Tempo DOWN---begin 1
{
switch (kpd.key[i].kstate) { // Report active key state : IDLE, PRESSED, HOLD, or RELEASED
case PRESSED:
Mouse.moveTo(512, 54); // point to pixel at 512, 54
Mouse.scroll(-1); // turn scroll wheel downward 1 step
Mouse.moveTo(345, 94);
break;
case HOLD:
// Do when Hold
break;
case RELEASED:
// Do when Released
break;
/* case IDLE:
// Do when IDLE */
}
} // *********************************************************************************************************************end 1
if (( kpd.key[i].stateChanged ) && (kpd.key[i].kchar == 2)) // ---------------------------Tempo TAP---begin 1
{
switch (kpd.key[i].kstate) { // Report active key state : IDLE, PRESSED, HOLD, or RELEASED
case PRESSED:
Keyboard.set_modifier(MODIFIERKEY_CTRL); //Press ctrl key
Keyboard.send_now();
Keyboard.set_key1(KEY_F5); //Press F5
Keyboard.send_now();
Keyboard.set_modifier(0); // Release ctrl key
Keyboard.set_key1(0); // Release F5
Keyboard.send_now();
break;
case HOLD:
// Do when Hold
break;
case RELEASED:
// Do when Released
break;
/* case IDLE:
// Do when IDLE */
}
} // *********************************************************************************************************************end 1
if (( kpd.key[i].stateChanged ) && (kpd.key[i].kchar == 10)) // ---------------------Pitch UP-------begin 1
{
switch (kpd.key[i].kstate) { // Report active key state : IDLE, PRESSED, HOLD, or RELEASED
case PRESSED:
Mouse.moveTo(357, 36); // point to pixel at (357, 36)
Mouse.set_buttons(1, 0, 0); // hold left button
Mouse.moveTo(357, 31);
Mouse.set_buttons(0, 0, 0); // hold left button
break;
case HOLD:
// Do when Hold
break;
case RELEASED:
// Do when Released
break;
/* case IDLE:
// Do when IDLE */
}
} // *********************************************************************************************************************end 1
if (( kpd.key[i].stateChanged ) && (kpd.key[i].kchar == 3)) // -------------Pitch DOWN----begin 1
{
switch (kpd.key[i].kstate) { // Report active key state : IDLE, PRESSED, HOLD, or RELEASED
case PRESSED:
Mouse.moveTo(357, 36); // point to pixel at (357, 36)
Mouse.set_buttons(1, 0, 0); // hold left button
Mouse.moveTo(357, 41);
Mouse.set_buttons(0, 0, 0); // hold left button
break;
case HOLD:
// Do when Hold
break;
case RELEASED:
// Do when Released
break;
/* case IDLE:
// Do when IDLE */
}
} // *********************************************************************************************************************end 1
if (( kpd.key[i].stateChanged ) && (kpd.key[i].kchar == 17)) // -------------F6-------------begin 1
{
switch (kpd.key[i].kstate) { // Report active key state : IDLE, PRESSED, HOLD, or RELEASED
case PRESSED:
Keyboard.set_key1(KEY_F6); // Press F6
Keyboard.send_now();
Keyboard.set_key1(0); //Release F6
Keyboard.send_now();
break;
case HOLD:
// Do when Hold
break;
case RELEASED:
// Do when Released
break;
/* case IDLE:
// Do when IDLE */
}
} // *********************************************************************************************************************end 1
if (( kpd.key[i].stateChanged ) && (kpd.key[i].kchar == 18)) // ----------------------FOLDER OPEN------begin 1
{
switch (kpd.key[i].kstate) { // Report active key state : IDLE, PRESSED, HOLD, or RELEASED
case PRESSED:
Mouse.moveTo(332, 748); // point to pixel at (332, 748) where window exploreler is in taskbar
Mouse.set_buttons(1, 0, 0); // click
Mouse.set_buttons(0, 0, 0); // release click
Mouse.moveTo(1050, 233); // point to pixel at (1050, 233)
break;
case HOLD:
// Do when Hold
break;
case RELEASED:
// Do when Released
break;
/* case IDLE:
// Do when IDLE */
}
} // *********************************************************************************************************************end 1
if (( kpd.key[i].stateChanged ) && (kpd.key[i].kchar == 16)) // -----------------------NUMERIC (-)------------------begin 1
{
switch (kpd.key[i].kstate) { // Report active key state : IDLE, PRESSED, HOLD, or RELEASED
case PRESSED:
Keyboard.set_key1(KEYPAD_MINUS); // Press -
Keyboard.send_now();
Keyboard.set_key1(0); //Release -
Keyboard.send_now();
break;
case HOLD:
// Do when Hold
break;
case RELEASED:
// Do when Released
break;
/* case IDLE:
// Do when IDLE */
}
} // *********************************************************************************************************************end 1
if (( kpd.key[i].stateChanged ) && (kpd.key[i].kchar == 13)) // ----------------NUMERIC (+)-----------begin 1
{
switch (kpd.key[i].kstate) { // Report active key state : IDLE, PRESSED, HOLD, or RELEASED
case PRESSED:
Keyboard.set_key1(KEYPAD_PLUS); // Press +
Keyboard.send_now();
Keyboard.set_key1(0); //Release +
Keyboard.send_now();
break;
case HOLD:
// Do when Hold
break;
case RELEASED:
// Do when Released
break;
/* case IDLE:
// Do when IDLE */
}
} // *********************************************************************************************************************end 1
if (( kpd.key[i].stateChanged ) && (kpd.key[i].kchar == 11)) // ----------------------SPACE----------begin 1
{
switch (kpd.key[i].kstate) { // Report active key state : IDLE, PRESSED, HOLD, or RELEASED
case PRESSED:
Keyboard.set_key1(KEY_SPACE);
Keyboard.send_now();
Keyboard.set_key1(0);
Keyboard.send_now();
break;
case HOLD:
// Do when Hold
break;
case RELEASED:
// Do when Released
break;
/* case IDLE:
// Do when IDLE */
}
} // *********************************************************************************************************************end 1
if (( kpd.key[i].stateChanged ) && (kpd.key[i].kchar == 12)) // ----------------BACK SLASH------------begin 1
{
switch (kpd.key[i].kstate) { // Report active key state : IDLE, PRESSED, HOLD, or RELEASED
case PRESSED:
Keyboard.set_key1(KEYPAD_SLASH); // Press ( / )
Keyboard.send_now();
Keyboard.set_key1(0); //Release ( / )
Keyboard.send_now();
break;
case HOLD:
// Do when Hold
break;
case RELEASED:
// Do when Released
break;
/* case IDLE:
// Do when IDLE */
}
} // *********************************************************************************************************************end 1
if (( kpd.key[i].stateChanged ) && (kpd.key[i].kchar == 15)) // --------------(VOL+)--------------begin 1
{
switch (kpd.key[i].kstate) { // Report active key state : IDLE, PRESSED, HOLD, or RELEASED
case PRESSED:
Keyboard.press(KEY_MEDIA_VOLUME_INC);
Keyboard.release(KEY_MEDIA_VOLUME_INC);
break;
case HOLD:
// Do when Hold
break;
case RELEASED:
// Do when Released
break;
/* case IDLE:
// Do when IDLE */
}
} // *********************************************************************************************************************end 1
if (( kpd.key[i].stateChanged ) && (kpd.key[i].kchar == 4)) // -----------------(VOL-)-----------begin 1
{
switch (kpd.key[i].kstate) { // Report active key state : IDLE, PRESSED, HOLD, or RELEASED
case PRESSED:
Keyboard.press(KEY_MEDIA_VOLUME_DEC);
Keyboard.release(KEY_MEDIA_VOLUME_DEC);
break;
case HOLD:
// Do when Hold
break;
case RELEASED:
// Do when Released
break;
/* case IDLE:
// Do when IDLE */
}
} // *********************************************************************************************************************end 1
if (( kpd.key[i].stateChanged ) && (kpd.key[i].kchar == 25)) // -------------------PAT 1 ---------begin 1
{
switch (kpd.key[i].kstate) { // Report active key state : IDLE, PRESSED, HOLD, or RELEASED
case PRESSED:
Keyboard.set_key1(KEYPAD_1);
Keyboard.send_now();
Keyboard.set_key1(0);
Keyboard.send_now();
break;
case HOLD:
// Do when Hold
break;
case RELEASED:
// Do when Released
break;
/* case IDLE:
// Do when IDLE */
}
} // *********************************************************************************************************************end 1
if (( kpd.key[i].stateChanged ) && (kpd.key[i].kchar == 26)) // ------------------PAT 2 ----------begin 1
{
switch (kpd.key[i].kstate) { // Report active key state : IDLE, PRESSED, HOLD, or RELEASED
case PRESSED:
Keyboard.set_key1(KEYPAD_2);
Keyboard.send_now();
Keyboard.set_key1(0);
Keyboard.send_now();
break;
case HOLD:
// Do when Hold
break;
case RELEASED:
// Do when Released
break;
/* case IDLE:
// Do when IDLE */
}
} // *********************************************************************************************************************end 1
if (( kpd.key[i].stateChanged ) && (kpd.key[i].kchar == 27)) // -------------------PAT 3 ---------begin 1
{
switch (kpd.key[i].kstate) { // Report active key state : IDLE, PRESSED, HOLD, or RELEASED
case PRESSED:
Keyboard.set_key1(KEYPAD_3);
Keyboard.send_now();
Keyboard.set_key1(0);
Keyboard.send_now();
break;
case HOLD:
// Do when Hold
break;
case RELEASED:
// Do when Released
break;
/* case IDLE:
// Do when IDLE */
}
} // *********************************************************************************************************************end 1
if (( kpd.key[i].stateChanged ) && (kpd.key[i].kchar == 22)) // -----------------PAT 4 -----------begin 1
{
switch (kpd.key[i].kstate) { // Report active key state : IDLE, PRESSED, HOLD, or RELEASED
case PRESSED:
Keyboard.set_key1(KEYPAD_4);
Keyboard.send_now();
Keyboard.set_key1(0);
Keyboard.send_now();
break;
case HOLD:
// Do when Hold
break;
case RELEASED:
// Do when Released
break;
/* case IDLE:
// Do when IDLE */
}
} // *********************************************************************************************************************end 1
if (( kpd.key[i].stateChanged ) && (kpd.key[i].kchar == 23)) // ---------------------PAT 5 -------begin 1
{
switch (kpd.key[i].kstate) { // Report active key state : IDLE, PRESSED, HOLD, or RELEASED
case PRESSED:
Keyboard.set_key1(KEYPAD_5);
Keyboard.send_now();
Keyboard.set_key1(0);
Keyboard.send_now();
break;
case HOLD:
// Do when Hold
break;
case RELEASED:
// Do when Released
break;
/* case IDLE:
// Do when IDLE */
}
} // *********************************************************************************************************************end 1
if (( kpd.key[i].stateChanged ) && (kpd.key[i].kchar == 24)) // --------------------PAT 6 --------begin 1
{
switch (kpd.key[i].kstate) { // Report active key state : IDLE, PRESSED, HOLD, or RELEASED
case PRESSED:
Keyboard.set_key1(KEYPAD_6);
Keyboard.send_now();
Keyboard.set_key1(0);
Keyboard.send_now();
break;
case HOLD:
// Do when Hold
break;
case RELEASED:
// Do when Released
break;
/* case IDLE:
// Do when IDLE */
}
} // *********************************************************************************************************************end 1
if (( kpd.key[i].stateChanged ) && (kpd.key[i].kchar == 21)) // -------------------PAT 7 ---------begin 1
{
switch (kpd.key[i].kstate) { // Report active key state : IDLE, PRESSED, HOLD, or RELEASED
case PRESSED:
Keyboard.set_key1(KEYPAD_7);
Keyboard.send_now();
Keyboard.set_key1(0);
Keyboard.send_now();
break;
case HOLD:
// Do when Hold
break;
case RELEASED:
// Do when Released
break;
/* case IDLE:
// Do when IDLE */
}
} // *********************************************************************************************************************end 1
if (( kpd.key[i].stateChanged ) && (kpd.key[i].kchar == 20)) // ------------------- PAT 8 ---------begin 1
{
switch (kpd.key[i].kstate) { // Report active key state : IDLE, PRESSED, HOLD, or RELEASED
case PRESSED:
Keyboard.set_key1(KEYPAD_8);
Keyboard.send_now();
Keyboard.set_key1(0);
Keyboard.send_now();
break;
case HOLD:
// Do when Hold
break;
case RELEASED:
// Do when Released
break;
/* case IDLE:
// Do when IDLE */
}
} // *********************************************************************************************************************end 1
if (( kpd.key[i].stateChanged ) && (kpd.key[i].kchar == 19)) // --------------------PAT 9--------begin 1
{
switch (kpd.key[i].kstate) { // Report active key state : IDLE, PRESSED, HOLD, or RELEASED
case PRESSED:
Keyboard.set_key1(KEYPAD_9);
Keyboard.send_now();
Keyboard.set_key1(0);
Keyboard.send_now();
break;
case HOLD:
// Do when Hold
break;
case RELEASED:
// Do when Released
break;
/* case IDLE:
// Do when IDLE */
}
} // *********************************************************************************************************************end 1
if (( kpd.key[i].stateChanged ) && (kpd.key[i].kchar == 34)) // -------------------PAT 10 ---------begin 1
{
switch (kpd.key[i].kstate) { // Report active key state : IDLE, PRESSED, HOLD, or RELEASED
case PRESSED:
Mouse.moveTo(330, 94); // Mouse Go to pixel at (330, 94)
Mouse.set_buttons(1, 0, 0); // lEFT CLICK
Mouse.set_buttons(0, 0, 0);
Mouse.moveTo(330, 288); // where your Pattern
Mouse.set_buttons(1, 0, 0); // CLICKWERT
Mouse.set_buttons(0, 0, 0);
break;
case HOLD:
// Do when Hold
break;
case RELEASED:
// Do when Released
break;
/* case IDLE:
// Do when IDLE */
}
} // *********************************************************************************************************************end 1
if (( kpd.key[i].stateChanged ) && (kpd.key[i].kchar == 35)) // --------------------PAT 11 --------begin 1
{
switch (kpd.key[i].kstate) { // Report active key state : IDLE, PRESSED, HOLD, or RELEASED
case PRESSED:
Mouse.moveTo(330, 94); // Mouse Go to pixel at (330, 94)
Mouse.set_buttons(1, 0, 0); // lEFT CLICK
Mouse.set_buttons(0, 0, 0);
Mouse.moveTo(338, 306); // where your Pattern
Mouse.set_buttons(1, 0, 0); // CLICK
Mouse.set_buttons(0, 0, 0);
break;
case HOLD:
// Do when Hold
break;
case RELEASED:
// Do when Released
break;
/* case IDLE:
// Do when IDLE */
}
} // *********************************************************************************************************************end 1
if (( kpd.key[i].stateChanged ) && (kpd.key[i].kchar == 36)) // ------------------PAT 12----------begin 1
{
switch (kpd.key[i].kstate) { // Report active key state : IDLE, PRESSED, HOLD, or RELEASED
case PRESSED:
Mouse.moveTo(330, 94); // Mouse Go to pixel at (330, 94)
Mouse.set_buttons(1, 0, 0); // lEFT CLICK
Mouse.set_buttons(0, 0, 0);
Mouse.moveTo(338, 325); // where your Pattern
Mouse.set_buttons(1, 0, 0); // CLICK
Mouse.set_buttons(0, 0, 0);
break;
case HOLD:
// Do when Hold
break;
case RELEASED:
// Do when Released
break;
/* case IDLE:
// Do when IDLE */
}
} // *********************************************************************************************************************end 1
if (( kpd.key[i].stateChanged ) && (kpd.key[i].kchar == 31)) // --------------------PAT 13--------begin 1
{
switch (kpd.key[i].kstate) { // Report active key state : IDLE, PRESSED, HOLD, or RELEASED
case PRESSED:
Mouse.moveTo(330, 94); // Mouse Go to pixel at (330, 94)
Mouse.set_buttons(1, 0, 0); // lEFT CLICK
Mouse.set_buttons(0, 0, 0);
Mouse.moveTo(338, 344); // where your Pattern
Mouse.set_buttons(1, 0, 0); // CLICK
Mouse.set_buttons(0, 0, 0);
break;
case HOLD:
// Do when Hold
break;
case RELEASED:
// Do when Released
break;
/* case IDLE:
// Do when IDLE */
}
} // *********************************************************************************************************************end 1
if (( kpd.key[i].stateChanged ) && (kpd.key[i].kchar == 32)) // ----------------------PAT 14------begin 1
{
switch (kpd.key[i].kstate) { // Report active key state : IDLE, PRESSED, HOLD, or RELEASED
case PRESSED:
Mouse.moveTo(330, 94); // Mouse Go to pixel at (330, 94)
Mouse.set_buttons(1, 0, 0); // lEFT CLICK
Mouse.set_buttons(0, 0, 0);
Mouse.moveTo(338, 364); // where your Pattern
Mouse.set_buttons(1, 0, 0); // CLICK
Mouse.set_buttons(0, 0, 0);
break;
case HOLD:
// Do when Hold
break;
case RELEASED:
// Do when Released
break;
/* case IDLE:
// Do when IDLE */
}
} // *********************************************************************************************************************end 1
if (( kpd.key[i].stateChanged ) && (kpd.key[i].kchar == 33)) // --------------------PAT 15--------begin 1
{
switch (kpd.key[i].kstate) { // Report active key state : IDLE, PRESSED, HOLD, or RELEASED
case PRESSED:
Mouse.moveTo(330, 94); // Mouse Go to pixel at (330, 94)
Mouse.set_buttons(1, 0, 0); // lEFT CLICK
Mouse.set_buttons(0, 0, 0);
Mouse.moveTo(338, 383); // where your Pattern
Mouse.set_buttons(1, 0, 0); // CLICK
Mouse.set_buttons(0, 0, 0);
break;
case HOLD:
// Do when Hold
break;
case RELEASED:
// Do when Released
break;
/* case IDLE:
// Do when IDLE */
}
} // *********************************************************************************************************************end 1
if (( kpd.key[i].stateChanged ) && (kpd.key[i].kchar == 30)) // --------------------PAT 16--------begin 1
{
switch (kpd.key[i].kstate) { // Report active key state : IDLE, PRESSED, HOLD, or RELEASED
case PRESSED:
Mouse.moveTo(330, 94); // Mouse Go to pixel at (330, 94)
Mouse.set_buttons(1, 0, 0); // lEFT CLICK
Mouse.set_buttons(0, 0, 0);
Mouse.moveTo(338, 402); // where your Pattern
Mouse.set_buttons(1, 0, 0); // CLICK
Mouse.set_buttons(0, 0, 0);
break;
case HOLD:
// Do when Hold
break;
case RELEASED:
// Do when Released
break;
/* case IDLE:
// Do when IDLE */
}
} // *********************************************************************************************************************end 1
if (( kpd.key[i].stateChanged ) && (kpd.key[i].kchar == 29)) // --------------------PAT 17--------begin 1
{
switch (kpd.key[i].kstate) { // Report active key state : IDLE, PRESSED, HOLD, or RELEASED
case PRESSED:
Mouse.moveTo(330, 94); // Mouse Go to pixel at (330, 94)
Mouse.set_buttons(1, 0, 0); // lEFT CLICK
Mouse.set_buttons(0, 0, 0);
Mouse.moveTo(338, 421); // where your Pattern
Mouse.set_buttons(1, 0, 0); // CLICK
Mouse.set_buttons(0, 0, 0);
break;
case HOLD:
// Do when Hold
break;
case RELEASED:
// Do when Released
break;
/* case IDLE:
// Do when IDLE */
}
} // *********************************************************************************************************************end 1
if (( kpd.key[i].stateChanged ) && (kpd.key[i].kchar == 28)) // --------------------PAT 18--------begin 1
{
switch (kpd.key[i].kstate) { // Report active key state : IDLE, PRESSED, HOLD, or RELEASED
case PRESSED:
Mouse.moveTo(330, 94); // Mouse Go to pixel at (330, 94)
Mouse.set_buttons(1, 0, 0); // lEFT CLICK
Mouse.set_buttons(0, 0, 0);
Mouse.moveTo(338, 439); // where your Pattern
Mouse.set_buttons(1, 0, 0); // CLICK
Mouse.set_buttons(0, 0, 0);
break;
case HOLD:
// Do when Hold
break;
case RELEASED:
// Do when Released
break;
/* case IDLE:
// Do when IDLE */
}
} // *********************************************************************************************************************end 1
if (( kpd.key[i].stateChanged ) && (kpd.key[i].kchar == 43)) // --------------------Patch 1 --------begin 1
{
switch (kpd.key[i].kstate) { // Report active key state : IDLE, PRESSED, HOLD, or RELEASED
case PRESSED:
Mouse.moveTo(275,135); // Mouse Go to pixel at (330, 94)
Mouse.set_buttons(1, 0, 0); // lEFT CLICK
Mouse.set_buttons(0, 0, 0);
break;
case HOLD:
// Do when Hold
break;
case RELEASED:
// Do when Released
break;
/* case IDLE:
// Do when IDLE */
}
} // ***************************************************************************************************************Patch******end 1
}
}
}
after uploading .....
only (tempo up ,tempo down ,tempo tap) keys are giving right result according to sketch .. other key are not giving result as in sketch,
some keys giving wrong result,some are return nothing. every button is connect between row & colomn by 1N4148 diode
what can be wrong?????????????????//