아두이노 우노 R4 다중 버튼
이 가이드는 delay() 함수를 사용하지 않고 여러 버튼을 동시에 처리하기 위해 Arduino UNO R4를 사용하는 방법을 보여줍니다. 가이드는 두 가지 다른 방법의 코드를 제공합니다.
다섯 개의 버튼을 예로 사용할 것입니다. 두 개의 버튼, 네 개의 버튼 또는 더 많이 변경할 수 있습니다.
1 | × | 아두이노 우노 R4 와이파이 | 아마존 | |
1 | × | (또는) 아두이노 우노 R4 미니마 | 아마존 | |
1 | × | USB 케이블 타입-A to 타입-C (USB-A PC용) | 쿠팡 | 아마존 | |
1 | × | USB 케이블 타입-C to 타입-C (USB-C PC용) | 아마존 | |
1 | × | 캡이 있는 버튼 | 쿠팡 | 아마존 | |
1 | × | 버튼 키트 | 쿠팡 | 아마존 | |
1 | × | Panel-mount Button | 아마존 | |
1 | × | 푸시 버튼 모듈 | 아마존 | |
1 | × | 브레드보드 | 쿠팡 | 아마존 | |
1 | × | 점퍼케이블 | 쿠팡 | 아마존 | |
1 | × | (추천) 아두이노 우노 R4용 스크루 터미널 블록 쉴드 | 쿠팡 | 아마존 | |
1 | × | (추천) 아두이노 우노 R4용 브레드보드 쉴드 | 쿠팡 | 아마존 | |
1 | × | (추천) 아두이노 우노 R4용 케이스 | 쿠팡 | 아마존 | |
1 | × | (추천) 아두이노 우노 R4용 전원 분배기 | 쿠팡 | 아마존 | |
1 | × | (추천) 아두이노 우노용 프로토타이핑 베이스 플레이트 & 브레드보드 키트 | 아마존 | |
공개: 이 섹션에서 제공된 링크 중 일부는 제휴 링크입니다. 이 링크를 통해 구매한 경우 추가 비용없이 수수료를 받을 수 있습니다. 지원해 주셔서 감사합니다.
버튼에 대한 자세한 가이드를 제공하며, 하드웨어 연결, 작동 방식, Arduino UNO R4와의 배선, 코드 작성 방법을 다룹니다. 자세한 내용은 여기에서 확인하세요:

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
Arduino Uno R4와 기타 부품에 전원을 공급하는 가장 효과적인 방법을 확인하시려면, 아래 링크를 참조하세요: 아두이노 우노 R4 전원 공급 방법.
여러 버튼을 사용할 때 상황이 복잡해질 수 있습니다.
ezButton 라이브러리는 디바운스 처리와 버튼 이벤트를 내부적으로 처리하여 버튼 작업을 간소화합니다. 이 라이브러리를 사용하면 타임스탬프와 변수를 관리할 필요가 없습니다. 또한, 여러 버튼을 사용하면 코드가 더욱 명확하고 짧아질 수 있습니다.
#include <ezButton.h>
#define BUTTON_NUM 5
#define BUTTON_PIN_1 2
#define BUTTON_PIN_2 3
#define BUTTON_PIN_3 4
#define BUTTON_PIN_4 5
#define BUTTON_PIN_5 6
ezButton button1(BUTTON_PIN_1);
ezButton button2(BUTTON_PIN_2);
ezButton button3(BUTTON_PIN_3);
ezButton button4(BUTTON_PIN_4);
ezButton button5(BUTTON_PIN_5);
void setup() {
Serial.begin(9600);
button1.setDebounceTime(100);
button2.setDebounceTime(100);
button3.setDebounceTime(100);
button4.setDebounceTime(100);
button5.setDebounceTime(100);
}
void loop() {
button1.loop();
button2.loop();
button3.loop();
button4.loop();
button5.loop();
int button1_state = button1.getState();
int button2_state = button2.getState();
int button3_state = button3.getState();
int button4_state = button4.getState();
int button5_state = button5.getState();
if (button1.isPressed())
Serial.println("The button 1 is pressed");
if (button1.isReleased())
Serial.println("The button 1 is released");
if (button2.isPressed())
Serial.println("The button 2 is pressed");
if (button2.isReleased())
Serial.println("The button 2 is released");
if (button3.isPressed())
Serial.println("The button 3 is pressed");
if (button3.isReleased())
Serial.println("The button 3 is released");
if (button4.isPressed())
Serial.println("The button 4 is pressed");
if (button4.isReleased())
Serial.println("The button 4 is released");
if (button5.isPressed())
Serial.println("The button 5 is pressed");
if (button5.isReleased())
Serial.println("The button 5 is released");
}
다음 지침을 단계별로 따르세요:
제공된 다이어그램에 따라 Arduino Uno R4를 버튼에 연결하세요.
USB 케이블을 사용하여 Arduino Uno R4 보드를 컴퓨터에 연결하세요.
컴퓨터에서 Arduino IDE를 실행하세요.
적절한 Arduino Uno R4 보드(예: Arduino Uno R4 WiFi)와 COM 포트를 선택하세요.
Arduino IDE의 왼쪽에 있는 Libraries 아이콘을 클릭하세요.
ezButton 을 검색하고 ArduinoGetStarted.com에서 만든 버튼 라이브러리를 찾으세요.
Install 버튼을 클릭하여 ezButton 라이브러리를 설치하세요.
The button 1 is pressed
The button 1 is released
The button 2 is pressed
The button 2 is released
The button 3 is pressed
The button 3 is released
The button 4 is pressed
The button 4 is released
The button 5 is pressed
The button 5 is released
위 코드를 버튼 배열을 사용하여 더 개선할 수 있습니다.
#include <ezButton.h>
#define BUTTON_NUM 5
#define BUTTON_PIN_1 2
#define BUTTON_PIN_2 3
#define BUTTON_PIN_3 4
#define BUTTON_PIN_4 5
#define BUTTON_PIN_5 6
ezButton buttonArray[] = {
ezButton(BUTTON_PIN_1),
ezButton(BUTTON_PIN_2),
ezButton(BUTTON_PIN_3),
ezButton(BUTTON_PIN_4),
ezButton(BUTTON_PIN_5)
};
void setup() {
Serial.begin(9600);
for (byte i = 0; i < BUTTON_NUM; i++) {
buttonArray[i].setDebounceTime(100);
}
}
void loop() {
for (byte i = 0; i < BUTTON_NUM; i++)
buttonArray[i].loop();
for (byte i = 0; i < BUTTON_NUM; i++) {
int button_state = buttonArray[i].getState();
if (buttonArray[i].isPressed()) {
Serial.print("The button ");
Serial.print(i + 1);
Serial.println(" is pressed");
}
if (buttonArray[i].isReleased()) {
Serial.print("The button ");
Serial.print(i + 1);
Serial.println(" is released");
}
}
}
비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.