아두이노 우노 R4 - 키패드 1x4
이 안내서에서는 Arduino UNO R4와 함께 1x4 키패드를 사용하는 방법을 배웁니다. 이번에 다룰 내용은:
- 1x4 키패드를 Arduino UNO R4에 연결하는 방법.
- Arduino UNO R4를 설정하여 1x4 키패드에서 눌린 키를 감지하는 방법.
Hardware Preparation
1 | × | Arduino UNO R4 WiFi | Amazon | |
1 | × | Arduino UNO R4 Minima (Alternatively) | Amazon | |
1 | × | USB Cable Type-C | 쿠팡 | Amazon | |
1 | × | Keypad 1x4 | 쿠팡 | Amazon | |
1 | × | Jumper Wires | Amazon | |
1 | × | (Recommended) Screw Terminal Block Shield for Arduino UNO R4 | 쿠팡 | Amazon | |
1 | × | (Recommended) Breadboard Shield For Arduino UNO R4 | 쿠팡 | Amazon | |
1 | × | (Recommended) Enclosure For Arduino UNO R4 | Amazon | |
1 | × | (Recommended) Power Splitter For Arduino UNO R4 | Amazon |
공개: 이 섹션에서 제공된 링크 중 일부는 제휴 링크입니다. 이 링크를 통해 구매한 경우 추가 비용없이 수수료를 받을 수 있습니다. 지원해 주셔서 감사합니다.
1x4 키패드에 관하여
1x4 키패드는 한 줄에 네 개의 버튼이 있습니다. 이는 코드 입력, 메뉴 탐색 또는 다양한 프로젝트에서 인터페이스 제어에 사용됩니다.
핀아웃
1x4 키패드는 5개의 핀이 있습니다. 이 핀들은 키의 레이블과 같은 순서로 배열되어 있지 않습니다.
- 핀 1은 키 2에 연결됩니다.
- 핀 2는 키 1에 연결됩니다.
- 핀 3은 키 4에 연결됩니다.
- 핀 4는 키 3에 연결됩니다.
- 핀 5는 모든 키에 공통적으로 연결됩니다.
image source: diyables.io
Wiring Diagram
이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
아두이노 UNO R4 코드
1x4 키패드의 각각의 키는 버튼처럼 작동합니다. 우리는 digitalRead() 함수를 사용하여 각 키가 어떻게 눌리는지 확인할 수 있습니다. 하지만 다른 버튼과 마찬가지로, 우리는 하나의 눌림이 여러 회의 눌림으로 보일 수 있는 바운싱 문제에 직면합니다. 이를 해결하기 위해 각 키를 디바운싱해야 합니다. 다른 코드의 실행을 멈추지 않고 네 개의 키를 디바운싱하는 것은 어려울 수 있습니다. 다행히도, ezLink 라이브러리는 이를 더 쉽게 만들어 줍니다.
#include <ezButton.h>
#define KEY_NUM 4 // The number of keys
#define PIN_KEY_1 3 // The Arduino UNO R4 pin connected to the key 1
#define PIN_KEY_2 2 // The Arduino UNO R4 pin connected to the key 2
#define PIN_KEY_3 5 // The Arduino UNO R4 pin connected to the key 3
#define PIN_KEY_4 4 // The Arduino UNO R4 pin connected to the key 4
ezButton keypad_1x4[KEY_NUM] = {
ezButton(PIN_KEY_1),
ezButton(PIN_KEY_2),
ezButton(PIN_KEY_3),
ezButton(PIN_KEY_4)
};
void setup() {
Serial.begin(9600);
for (byte i = 0; i < KEY_NUM; i++) {
keypad_1x4[i].setDebounceTime(100); // set debounce time to 100 milliseconds
}
}
void loop() {
int key = getKeyPressed();
if (key) {
Serial.print("The key ");
Serial.print(key);
Serial.println(" is pressed");
}
}
int getKeyPressed() {
for (byte i = 0; i < KEY_NUM; i++)
keypad_1x4[i].loop(); // MUST call the loop() function first
for (byte i = 0; i < KEY_NUM; i++) {
int key_state = keypad_1x4[i].getState(); // the state after debounce
if (keypad_1x4[i].isPressed())
return (i + 1);
}
return 0;
}
Detailed Instructions
다음 지침을 단계별로 따르세요:
- Arduino Uno R4 WiFi/Minima를 처음 사용하는 경우 Arduino IDE에서 Arduino Uno R4 WiFi/Minima를 위한 환경 설정에 대한 튜토리얼을 참조하세요.
- 제공된 다이어그램에 따라 Arduino UNO R4를 1x4 키패드에 연결합니다.
- USB 케이블을 사용하여 Arduino Uno R4 보드를 컴퓨터에 연결합니다.
- 컴퓨터에서 Arduino IDE를 실행합니다.
- 적절한 Arduino Uno R4 보드(e.g., Arduino Uno R4 WiFi)와 COM 포트를 선택합니다.
- Arduino IDE 왼쪽에 있는 Libraries 아이콘을 클릭합니다.
- 검색 상자에 "ezButton"을 입력하고, "ArduinoGetStarted.com"에서 제공하는 버튼 라이브러리를 찾습니다.
- EzButton 라이브러리를 추가하려면 Install 버튼을 누릅니다.
- 코드를 복사하여 Arduino IDE에서 엽니다.
- Arduino IDE에서 Upload 버튼을 클릭하여 코드를 Arduino UNO R4에 전송합니다.
- 시리얼 모니터를 엽니다.
- 1x4 키패드의 각 키를 누릅니다.
- 시리얼 모니터에서 결과를 확인합니다.
COM6
1
2
3
4
Autoscroll
Clear output
9600 baud
Newline