teensy lc not giving result according sketch using keypad library

Status
Not open for further replies.

charnjit

Active member
sir ,
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?????????????????//
 

Attachments

  • Matrix code numers for pjrc.jpg
    Matrix code numers for pjrc.jpg
    91.8 KB · Views: 100
Your first sketch uses 6x9 matrix, and your second sketch uses 6x7. Maybe try running the first sketch with the 6x7 matrix to see if that changes numbers for each key on the pad. Or use the 6x9 matrix and pins in the second sketch.
 
Last edited:
what can be wrong?????????????????//

I do not know what is wrong.

But I do know the way to discover clues. In the cases that are not working, add Serial.print() lines, so Teensy will send something useful to the serial monitor in addition to attempting keystrokes with the function keys. This can at least tell you whether the keypad (and Keypad code) is still working and running the intended code when you press each button.

If the keypad is working, try adding delays. Sometimes PC software does not recognize mouse and keyboard input that is too fact.

You might also try using the simpler Keyboard.press() and Keyboard.release() functions. I do not see problems with the code, but those simpler functions are much less prone to errors.
 
Thanks to all for reply,,,,,, but my issue has solved,. Error was in upsetting of numbers of rows and columns, and 15 pin of teensy was not suitable for matrix, so I have changed it,,,, now, every thing is right,, thank you.
 
Status
Not open for further replies.
Back
Top