Help me modify this code, PLEASE

Hey Im not very good at coding, and im wondering how to modify this code to work with a 3x4 keypad instad of a 4x4

this is the code

CODE:

#include <Password.h>
#include <Keypad.h>
#include <Servo.h> //tells to use servo library

Servo myservo; //declares servo
Password password = Password( "your_password" ); //password to unlock box, can be changed

const byte ROWS = 4; // Four rows
const byte COLS = 4; // columns
// Define the Keymap
char keys[ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
// Connect keypad ROW0, ROW1, ROW2 and ROW3 to these Arduino pins.
byte rowPins[ROWS] = { 5, 4, 3, 2 };// Connect keypad COL0, COL1 and COL2 to these Arduino pins.
byte colPins[COLS] = { 8, 7, 6, 9 };

// Create the Keypad
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );

void setup(){
Serial.begin(9600);
Serial.print(254, BYTE);
Serial.print(0x01, BYTE);
delay(200);
pinMode(11, OUTPUT); //green light
pinMode(12, OUTPUT); //red light
myservo.attach(13); //servo on digital pin 9 //servo
keypad.addEventListener(keypadEvent); //add an event listener for this keypad
}

void loop(){
keypad.getKey();
myservo.write(0);
}
//take care of some special events
void keypadEvent(KeypadEvent eKey){
switch (keypad.getState()){
case PRESSED:

Serial.print("Enter: ");
Serial.println(eKey);
delay(10);

Serial.print(254, BYTE);

switch (eKey){
case 'A': checkPassword(); delay(1); break;

case 'B': password.reset(); delay(1); break;

default: password.append(eKey); delay(1);
}
}
}
void checkPassword(){

if (password.evaluate()){ //if password is right open box

Serial.println("Accepted");
Serial.print(254, BYTE);delay(10);
//Add code to run if it works
myservo.write(5); //160deg

digitalWrite(11, HIGH);//turn on
delay(500); //wait 5 seconds
digitalWrite(11, LOW);// turn off

}else{
Serial.println("Denied"); //if passwords wrong keep box locked
Serial.print(254, BYTE);delay(10);
//add code to run if it did not work
myservo.write(0);
digitalWrite(12, HIGH); //turn on
delay(500); //wait 5 seconds
digitalWrite(12, LOW);//turn off

}
}

Thanks :slight_smile:

Seems simple enough:

const byte ROWS = 4; // Four rows
const byte COLS = 3; // columns
// Define the Keymap
char keys[ROWS][COLS] = {
{'1','2','3'},
{'4','5','6'},
{'7','8','9'},
{'*','0','#'}
};
// Connect keypad ROW0, ROW1, ROW2 and ROW3 to these Arduino pins.
byte rowPins[ROWS] = { 5, 4, 3, 2 };
// Connect keypad COL0, COL1 and COL2 to these Arduino pins.
byte colPins[COLS] = { 8, 7, 6 };

Seems legit

Thanks a lot!!! :slight_smile:

what if I want to add an LCD display in the code? where do I put the code to make it display "Enter Password:" on the first row and on the second row will be the password entered.

if the password is correct it will display "CORRECT" and "WRONG" otherwise