티스토리 뷰

Arduino 키패드 구현 
 이번 시간에는 Arduino 4 x 4 키패드를 구현해보도록 하겠습니다. 2개를 사용해 영문 자판을 만들어보겠습니다.

 
 키패드는 이녀석을 사용하겠습니다. 


 Uno 보드는 핀의 개수가 모자라 다른 보드를 사용할것 입니다. 물론 키패드를 1개만 사용하면 Uno 보드를 사용해도 됩니다.



Arduino Mega 보드


 

 이렇게 생겼구요 우리는 저기 빨간 부분인 디지털 핀 들을 사용할 것입니다.



Coding

 일단 라이브러리를 다운 받아야 합니다.


 Keypad.zip 이나 http://playground.arduino.cc/Code/Keypad 에서 다운로드 할 수 있습니다.


 다운을 받고 zip 파일을 arduino/libraries 폴더에 풀어 줍니다.


 아래는 소스코드 입니다.


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
#include <Keypad.h>
 
const byte ROWS = 4;
const byte COLS = 4;
 
char leftKeys[ROWS][COLS] = {
  {'A''B''C''D'},
  {'I''J''K''L'},
  {'Q''R''S''T'},
  {'Y''Z''.''!'}
};
char rightKeys[ROWS][COLS] = {
  {'E''F''G''H'},
  {'M''N''O''P'},
  {'U''V''W''X'},
  {'?'' ''-''*'}
};
 
byte rowLeftPins[ROWS] = { 22232425 };
byte colLeftPins[COLS] = { 26272829 };
byte rowRightPins[ROWS] = { 32333435 };
byte colRightPins[COLS] = { 36373839 };
 
Keypad leftKeypad = Keypad(makeKeymap(leftKeys), rowLeftPins, colLeftPins, ROWS, COLS);
Keypad rightKeypad = Keypad(makeKeymap(rightKeys), rowRightPins, colRightPins, ROWS, COLS);
 
void setup(){ 
 
  Serial.begin(9600);
 
}
 
void loop() {
  char LKey = leftKeypad.getKey();
  char RKey = rightKeypad.getKey();
        
  if(LKey !=NO_KEY){
    Serial.print(LKey);
    result_K = LKey;
  }else if(RKey != NO_KEY){
    Serial.print(RKey);
    result_K = RKey;    
  }
}
cs


 키대드 2개를 옆으로 붙여 놓은 형태로 사용합니다.



출처 : http://playground.arduino.cc/Code/Keypad

반응형
댓글