아두이노, 키패드, 리니어 액추에이터로 만드는 비밀번호 도어락
부품 및 소모품
| 부품 | 수량 |
| 아두이노 우노 | 1 |
| 멤브레인 키패드 (4×4) | 1 |
| L293D 듀얼 H-브리지 모터 드라이버 | 1 |
| 리니어 액추에이터 (12V) | 1 |
프로젝트 개요
비밀번호를 입력해 문을 여는 전자 잠금 장치입니다. 4×4 멤브레인 키패드로 4자리 비밀번호를 입력받아 맞으면 리니어 액추에이터를 작동시켜 문을 엽니다. 키패드 스캔 원리부터 비밀번호 검증, 액추에이터 제어까지 단계별로 설명합니다.
키패드 작동 원리
4×4 키패드는 내부적으로 4개 행(Row)과 4개 열(Column)로 연결된 푸시 버튼 매트릭스입니다. 아두이노는 행을 출력(LOW)으로, 열을 입력(풀업)으로 설정하고, 행을 하나씩 LOW로 내리며 열의 상태를 읽어 어떤 키가 눌렸는지 판별합니다.
회로 구성
- 키패드 행 핀: D2, D3, D4, D5 (출력)
- 키패드 열 핀: D6, D7, D8, D9 (입력 풀업)
- L293D 입력: D11, D12 (아두이노 PWM 핀)
- L293D 전원: 12V 외부 전원, 액추에이터 출력단 연결
- LED 표시: D11 (비밀번호 맞을 때 점등)
코드
코드 1: 키패드 스캔 기초 (라이브러리 미사용)
int rows=4, columns=4;
#define c3 9 #define c2 8 #define c1 7 #define c0 6
#define r3 5 #define r2 4 #define r1 3 #define r0 2
char readkey(void) {
// 행마다 LOW 출력하며 열 검사
digitalWrite(r0,LOW); digitalWrite(r1,HIGH); digitalWrite(r2,HIGH); digitalWrite(r3,HIGH);
if(digitalRead(c0)==LOW){delay(500); return '1';}
else if(digitalRead(c1)==LOW){delay(500); return '2';}
else if(digitalRead(c2)==LOW){delay(500); return '3';}
else if(digitalRead(c3)==LOW){delay(500); return 'A';}
// ... 행 1,2,3 동일 처리 ...
return 'o';
}
char nfunc(void) { char key='o'; while(key=='o') key=readkey(); return key; }
void setup() {
Serial.begin(9600);
pinMode(c0,INPUT_PULLUP); pinMode(c1,INPUT_PULLUP); pinMode(c2,INPUT_PULLUP); pinMode(c3,INPUT_PULLUP);
pinMode(r0,OUTPUT); pinMode(r1,OUTPUT); pinMode(r2,OUTPUT); pinMode(r3,OUTPUT);
pinMode(11,OUTPUT); pinMode(12,OUTPUT);
}
void loop() {
char key1 = nfunc();
if(key1) Serial.print(key1);
}
코드 2: 비밀번호 검증 및 액추에이터 제어
char password[5] = "1234";
char typed[5];
int count = 0;
void loop() {
char key1 = nfunc();
if(key1) {
typed[count] = key1;
count++;
Serial.print(key1);
}
if(count == 4) {
if(strcmp(typed, password) == 0) {
Serial.println(" correct");
digitalWrite(11, HIGH); // L293D 입력 1 HIGH
digitalWrite(12, LOW); // L293D 입력 2 LOW → 액추에이터 수축(문 열림)
delay(250);
digitalWrite(11, LOW); // 정지
} else {
Serial.println(" intruder");
}
count = 0;
}
}
시연 영상
- 키 입력 시 시리얼 모니터에 표시
- 비밀번호 맞으면 LED 점등
- 액추에이터가 당겨지며 문 열림
회로도

