실습은 개인 학습을 위해 "주) 엘케이 임베디드" 사이트에서 구매한 아두이노 코딩 배우기 고급 키트를 이용한 학습입니다. 동봉된 책을 기반으로 학습하면서 개인적인 궁금증과 추가 필요한 부분을 정리한 블로그임을 미리 알려드립니다.
< 준비물 >
아두이노 우노 : 1개
USB 케이블 : 1개
점퍼 케이블(숫숫) : 2개
점퍼 케이블(숫암) : 8개
브레드 보드 : 1개, 830홀 사용
키 매트릭스 모듈(4 X 4) : 1개
수동 부저 : 1개

키 매트릭스의 키들에 고유의 톤값을 가지도록 지정하고 부저를 통해 부저음을 출력하는 실습입니다.

팅커 캐드 링크입니다 : https://www.tinkercad.com/things/fntSRjVEKfX
< 참고 지식 >
⦿ 키 매트릭스 (Key Matrix) 모듈

다수의 수위치(16개)를 행과 열로 배열한 방식으로 회로를 구성한 모듈이며 8개의 입력 핀을 사용하여 16개의 키 입력을 받을 수 있는 매우 효율적인 회로 구성입니다.
⦿ 수동 부저 (Passive Buzzer) 모듈

전기적 신호를 소리 신호로 바꿔 주는 대표적인 사운드 부품입니다.
⦿ 키패드 라이브러리 설치
코드에서 사용하는 "Keypad.h"를 사용하기 위해 Keypad 라이브러리를 설치해야 합니다. 툴 메뉴 아래 라이브러리 관리 선택합니다.

검색창에서 "Keypad" 검색 후 항목에서 Keypad "설치" 클릭하시면 라이브러리가 설치됩니다.

< 실습 코드 >
#include <Keypad.h> //키 매트릭스 모듈 사용을 위한 헤더 파일
int Buzzer_Pin = 3; // 3번 핀에 수동 부저 연결
int Tones[8] = {261, 261, 294, 330, 349, 392, 440, 494}; // 부저의 톤값 지정
int Tones_Number; // 톤이 들어갈 변수
char key; // 현재 키값 변수
char key_h; // 키 값 유지 변수
KeyState key_c; // 키 상태 값 변수
const byte ROWS = 4; // 키 좌표값(행)
const byte COLS = 4; // 키 좌표값(열)
char keys[ROWS][COLS] = {. // 스위치 설정값
{0,1,2,3},
{4,5,6,7},
{8,9,10,11},
{12,13,14,15}
};
byte rowPins[ROWS] = {7, 6, 5, 4}; // 핀 번호
byte colPins[COLS] = {8, 9, 10, 11}; // 핀 번호
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
// 키보드 사용 전 설정 및 준비
void setup()
{
}
void loop()
{
key = keypad.getKey(); // 키보드 값 읽어오기
key_c = keypad.getState(); // 키보드 상태 읽어오기
if (key != NO_KEY). // 만약 새로운 키값이 들어오면
{
key_h = key; // 새로운 키값을 key_h에 입력
}
if (key_c == 0). // 만약 입력이 없을 때
{
noTone(Buzzer_Pin); // 수동 부저 OFF
}
else. // 입력이 있을 때
{
if (key_h > 7 ) key_h = 0; // 입력값이 7보다 크면 입력값을 0으로 만들어라
tone(Buzzer_Pin, Tones[key_h]); // 돌아온 입력값에 해당되는 톤값의 소리를 출력하라
}
}
'Arduino > Arduinio기초 실습' 카테고리의 다른 글
15장. RTC 시계 모듈 실습 (0) | 2022.04.11 |
---|---|
13장. 소리 센서 모듈 실습 (0) | 2022.04.11 |
11장. 수위 센서, 3색 LED 모듈 실습 (0) | 2022.04.10 |
10장. 초음파 센서 모듈 실습 (0) | 2022.04.08 |
9장. 화재 감지 센서 실습 (0) | 2022.04.08 |