void setup() { pinMode(rowPin1, OUTPUT); pinMode(rowPin2, OUTPUT); pinMode(rowPin3, OUTPUT); pinMode(rowPin4, OUTPUT); pinMode(colPin1, INPUT_PULLUP); pinMode(colPin2, INPUT_PULLUP); pinMode(colPin3, INPUT_PULLUP); pinMode(colPin4, INPUT_PULLUP); digitalWrite(rowPin1, HIGH); digitalWrite(rowPin2, HIGH); digitalWrite(rowPin3, HIGH); digitalWrite(rowPin4, HIGH); Serial.begin(9600); } void checkRow(int rowPin) { digitalWrite(rowPin, LOW); if(digitalRead(colPin1) == LOW) { Serial.println("Button/switch at column 1 is pressed"); } if(digitalRead(colPin2) == LOW) { Serial.println("Button/switch at column 2 is pressed"); } if(digitalRead(colPin3) == LOW) { Serial.println("Button/switch at column 3 is pressed"); } if(digitalRead(colPin4) == LOW) { Serial.println("Button/switch at column 4 is pressed"); } digitalWrite(rowPin, HIGH); } void loop() { Serial.println("Checking row 1"); checkRow(rowPin1); Serial.println("Checking row 2"); checkRow(rowPin2); Serial.println("Checking row 3"); checkRow(rowPin3); Serial.println("Checking row 4"); checkRow(rowPin4); delay(200); }