I have a 4x4 keypad that I bought recently and when I go to enter numbers/letters it works fine, but my only problem is that when I use an if statement to check if a key is pressed nothing happens.
#include <Keypad.h>
int ledRed = 11;
int ledGreen = 12;
const byte ROWS = 4; //four rows
const byte COLS = 4; //four columns
char keys[ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte rowPins[ROWS] = {5, 4, 3, 2}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {9, 8, 7, 6}; //connect to the column pinouts of the keypad
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
void setup(){
Serial.begin(9600);
}
void loop(){
char key = keypad.getKey();
if (key){
Serial.println(key);
if(key == 1){
digitalWrite(ledGreen, HIGH);
digitalWrite(ledRed, LOW);
Serial.println("Correct");
}else{
digitalWrite(ledRed, HIGH);
digitalWrite(ledGreen, LOW);
}
}
}
I have tried taking the if(key == 1) statement out of the if (key) statement and still does not work. Thanks in advanced!