Arduino Uno 로 4X4 키패드 모듈의 사용방법을 알아보고 추가로 SG90 마이크로 서보모터를
사용해서 키패드로 도어락을 만들어 보는 프로젝트 입니다
<4X4 키패드 모듈 이미지>
4X4 키패드 모듈은 키패드와 기타 출력장치의 다양한 프로젝트와 테스트에 적합합니다
아두이노와 호환가능하며 LCD, 모니터 등 다양한 외부 장치를 활용 하는데 유용합니다
2.54mm 8핀 커넥터 (1~4핀은 "행" ROW , 5~8핀은 "열" COLUMN 구성입니다)
<4X4 키패드 모듈의 구성_2.54mm 8핀 커넥터 (1~4핀은 "행" ROW , 5~8핀은 "열" COLUMN 구성입니다)
사용된 부품
Arduino Uno R3 (Italy)
브래드 보드
4X4 키패드 모듈
SG90 마이크로 서보모터
점퍼케이블
5mm LED - 블루, 레드
막대저항 220 Ohm
사용된 키트
아두이노 4X4 키패드 키트
구성 배선도-키패드 숫자 시리얼 모니터에 출력해 보기
구성 배선도-키패드 패스워드 입력시 서보모터 제어해 보기
사용된 라이브러리
사용된 예제소스
주의사항
기본적으로 위의 2가지 Password, keypad 라이브러리 설치가 필요합니다
라이브러리 설치 방법은 아래 링크(Arduino IDE 설치하기)를 참조해 주세요
Arduino IDE 설치하기
https://playground.arduino.cc/uploads/Code/Main/LibraryList/
아두이노 사이트에서도 검색해서 다운로드 할수 있습니다
첫번쩨 Keypad 예제코드를 살펴보면
#include <Keypad.h>
keypad.h 라이브러리를 사용하는것을 확인할 수 있습니다
const byte numRows= 4; //number of rows on the keypad
const byte numCols= 4; //number of columns on the keypad
4행 4열 세팅을 확인할 수 있습니다
{
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}
};
byte rowPins[numRows] = {9,8,7,6}; //Rows 0 to 3
byte colPins[numCols]= {5,4,3,2}; //Columns 0 to 3
9,8,7,6 번 핀이 행(Rows) 세팅이고, 5,4,3,2 번 핀이 열(Cols) 세팅입니다
Keypad myKeypad= Keypad(makeKeymap(keymap), rowPins, colPins, numRows, numCols);
키패드를 인식해서
void loop()
{
char keypressed = myKeypad.getKey();
if (keypressed != NO_KEY)
{
Serial.print(keypressed);
}
눌러지는 키값 myKeypad 을 시리얼 모니터로 출력해 줍니다
제대로된 키값이 눌러지지 않는다면 NO_KEY 가 시리얼 모니터로 출력 됩니다
두번째 Keypad Servo 예제를 살펴보면
#include <Password.h>
#include <Keypad.h>
#include <Servo.h>
위 3가지 라이브러리를 사용합니다 (Servo.h 는 아두이노 IDE 설치시 기본 설치되는 라이브러리 입니다)
Servo myservo; //declares servo
Password password = Password( "1234" ); //password to unlock, can be changed
서보를 세팅하고 패스워드는 "1234"로 세팅되어 있습니다
자신이 원하는 패스워드_비밀번호 로 변경후 테스트 하면 됩니다
const byte ROWS = 4; // Four rows
const byte COLS = 4; // columns
// Define the Keymap
char keys[ROWS][COLS] = {
{'1','2','3'},
{'4','5','6'},
{'7','8','9'},
{'*','0','#'}
};
마찬가지 4행, 4열 세팅입니다
byte rowPins[ROWS] = { 9, 8, 7, 6 };// Connect keypad COL0, COL1 and COL2 to these Arduino pins.
byte colPins[COLS] = { 5, 4, 3 };
하지만 이번에는 4행 9,8,7,6 번핀 3열 5,4,3 번핀을 세팅합니다
pinMode(11, OUTPUT); //blue light
pinMode(12, OUTPUT); //red light
myservo.attach(13); //servo on digital pin 13//servo
11번핀 블루 LED, 12번핀 레드 LED, 13번핀 서보모터 제어핀 세팅입니다
case '*': checkPassword(); delay(1); break;
case '#': password.reset(); delay(1); break;
'*' 을 눌러서 패스워드를 체크시키고, '#' 을 눌러서 패스워드를 초기화_리셋 합니다
if (password.evaluate()){ //if password is right open
Serial.println("Accepted");
Serial.write(254);delay(10);
//Add code to run if it works
myservo.write(150); //deg
digitalWrite(11, HIGH);//turn on
delay(5000); //wait 5 seconds
digitalWrite(11, LOW);// turn off
if 문을 사용해서 패스워드가 승인되었을때 서보모터가 150도 움직이며 11번 블루 LED가 켜진후
딜레이 타임후 꺼집니다 (150도를 180도로 변경 한다던지 수정이 가능합니다)
}else{
Serial.println("Denied"); //if passwords wrong keep locked
Serial.write(254);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
그밖의 패스워드가 승인되지 않았을때 서보는 0도로 움직이지 않으며
12번 레드 LED가 켜진후 딜레이 타임후 꺼집니다
테스트에서 적절하게 '#' 를 눌러서 패스워드 초기화를 해준후
설정한 패스워드를 누르고 '*' 를 눌러서 서보모터를 동작시킵니다
프로젝트 동영상-키패드 숫자 시리얼 모니터에 출력해 보기
프로젝트 동영상-키패드 패스워드 입력시 서보모터 제어해 보기
이렇게 아두이노로 간단하게 키패드와 서보모터를 사용해서 도어락을 구성해 보는
방법에 대해서 알아보고 테스트 해볼수 있습니다
'Arduino(아두이노) 활용 강좌' 카테고리의 다른 글
Arduino Uno 로 HC-SR04 초음파 센서를 사용해서 거리에 따라 MAX7219 (8X8) 도트매트릭스 모듈에 디스플레이 출력해 보기 (1) | 2022.12.14 |
---|---|
Arduino Uno 로 4X4 키패드 모듈을 사용해서 I2C 1602 LCD에 키값 출력해 보기 (0) | 2022.11.30 |
Arduino Uno 로 CDS 조도센서 모듈을 사용해서 LED와 Buzzer를 제어해 보기 (0) | 2022.11.04 |
Arduino Uno 로 Photo Interrupter 포토인터럽터 센서를 사용해서 LED와 Buzzer 제어해 보기 (0) | 2022.10.25 |
Arduino Uno 로 HC-SR04 초음파센서를 사용해서 I2C 1602 캐릭터 LCD에 거리측정값 출력해 보기 (0) | 2022.10.14 |
댓글