인투피온 강좌/아두이노 팁(Tip)

아두이노 4x4 멤브레인 키패드 응용편

인투피온 2021. 12. 28. 17:35

 

안녕하세요 인투피온입니다.

 

지난 시간에는 멤브레인 키패드의 회로와 기본적인 사용법에 대해 알아보았는데요

이번 시간에는 4x4 멤브레인 키패드편 비밀번호 확인을 해보려고 합니다.

 

 

 


4x4 멤브레인 키패드편 

 

https://intopionshop.tistory.com/245?category=1021753 

 

아두이노 4x4 멤브레인 키패드 사용하기

안녕하세요. 오늘은 부피도 작고 사용하기 쉬운 4X4 멤브레인 키패드 를 사용해 보도록 하겠습니다. ​ ​ 4X4 멤브레인 키패드 회로 먼저 회로를 보시면 ​   내부 회로도 회로를 보면 가로 선과

intopionshop.tistory.com

 


 

 

먼저 아래 핀 연결 살펴 볼게요

 

 

4X4 멤브레인 키패드 핀 연결

 

위의 회로에 SG90의 데이터 핀은 D10 부저는 D12에 연결해주세요.

아두이노 우노
4X4 멤브레인 키패드 모듈
D2
PIN 1
D3
PIN 2
D4
PIN 3
D5
PIN 4
D6
PIN 5
D7
PIN 6
D8
PIN 7
D9
PIN 8
D10
SG90 DATA PIN
D12
부저 +

 

SG90의 +, - 는 각각 5V, GND핀에 연결해주세요.

부저의 - 도 GND에 연결해주시면 됩니다!

코딩

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#include <Keypad.h>
#include <Servo.h>
 
const byte ROWS = 4//four rows
const byte COLS = 4//four columns
//define the cymbols on the buttons of the keypads
char hexaKeys[ROWS][COLS] = {
    {'1','2','3','A'},
    {'4','5','6','B'},
    {'7','8','9','C'},
    {'*','0','#','D'}
};
byte rowPins[ROWS] = {9876}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {5432}; //connect to the column pinouts of the keypad
 
//initialize an instance of class NewKeypad
Keypad customKeypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);
Servo SG90;         //motor 객체를 선언
 
String S; // 키패드 입력받을 변수
String PSWD; // 패스워드
int sg90 = 10// SG90 D10 핀에 연결
int Angle=0int buzzer=12// 부저 D12핀에 연결
 
void setup(){
    Serial.begin(9600);
    SG90.attach(sg90);
    pinMode(buzzer, OUTPUT);
 
}
 
void loop(){
    digitalWrite(buzzer, LOW);
    PSWD = "1234#" ; // 비밀번호 설정
    char Key = customKeypad.getKey(); //입력받은 키 저장
 
    if( Key ){
       S += Key; //Key를 문자열에 저장
    }
 
    if( Key == '#'){ // '#'이 눌릴경우 비밀번호와 비교하여 이후 동작
       Serial.print("PSWD = ");
       Serial.print(S);
 
           if( S==PSWD ){
              Serial.println(" [ O ]");
              for(Angle = 0; Angle < 180; Angle++){
                   SG90.write(Angle);
                   delay(10);
              }
              delay(2000);
              for(Angle = 180; Angle > 0; Angle--){
                   SG90.write(Angle);
                   delay(10);
              }
           }
 
           else {
              Serial.println(" [ X ]");
              digitalWrite(buzzer, HIGH);
              delay(1000);
           }
              S = ""// 다음 동작을 위해 저장값 초기화

 

 

지난 시간에 했던 예제파일에 SG90 서보모터와, 부저를 추가했어요.

입력받은 Key 값들을 S 변수에 저장하고 '#'을 누를경우

저장해 놓은 PSWD 의 값과 비교하게 돼요.

 

시리얼 모니터를 확인하시면 이렇게 입력한 값과 비교하여 O , X를 출력하고

맞을경우 모터를 구동 , 틀릴경우에는 부저를 울리게 돼요.

동작영상은 아래 영상을 참고해주시면 됩니다!

 

 

 

 

여기까지 '아두이노 4x4 멤브레인 키패드 응용편'을 알아 보았습니다~

 

 

 

 

전자부품 전문 쇼핑몰 인투피온입니다.
필요한 자재에 관한 문의는 홈페이지를 통한 견적 신청, 혹은 전화나 메일로 주시면 빠른 회신을 드릴 수 있도록 하겠습니다.

▶ 홈페이지: http://intopion.com/
▶ 전화: 02-2615-7278
▶ FAX : 02-6124-4242
▶ 메일: intopion@hanmail.net