I need help, I have a circuit setup with input (74hc165) and output (74hc595) shift registers. Am trying out with 4x4 matrix keypad (for thats what i have available for now) but this will end up 8x8 matrix keypad. I have put a firmware together and that is running ok and returning the key press. But my challenge is; how can I make Arduino loop function wait for a keypress. Presently it continously returns the last key pressed. I played around it without luck; I adopted the code below from online, this only wait for the initial time(ie without any key pressed), the moment a key is press, it runs with it and return that key until another is press.
const unsigned int DebounceDelay = 15; const long AutoRepeatDelay = 125; const unsigned int KeyWait = 25; int WaitKey() { int key; // wait for all keys to be released key = KeyDown(); if (key == 0) { long repeatTime = millis() + AutoRepeatDelay; do { // wait a bit delay(KeyWait); // see if a key is still down if (KeyDown() != 0) { // debounce the key release delay(DebounceDelay); if (KeyDown() != 0) { key = 0; break; } else if (millis()>repeatTime) { // effect auto-repeat break; } //} } } while (true); /// } // wait for a key to be pressed while (key != 0) { key = KeyDown(); if (key == 0) { // debounce the key down delay(DebounceDelay); } else { delay(KeyWait); } } } return key; }