-
시간 간격을 통해 버튼을 누를 때마다 LED를 반전Arduino/Button 2020. 10. 22. 18:34
하드웨어를 다음과 같이 구성한다.
내부적으로 풀업 저항으로 세팅을 한다.
버튼을 누르자마자 반응을 하기 보다는, 버튼을 누른 적정 시간이 지나야 버튼을 누른 것으로 판정을 하도록 한다.
소스 코드
// 버튼을 누를 때마다 LED가 반전된다. // 내부적으로 풀업 저항으로 세팅을 한다. // 버튼 // const int pin_switch = 7; // 7번핀 스위치 const int button_interval = 500; // 버튼 반응 속도 0.5초 long button_pressed_millis; // 버튼 눌러진 시간을 밀리초로 저장하기 위한 변수 // LED // const int pin_LED = 13; // 13번핀 LED 출력 // 시간 // long current_millis; // 현재 시간을 밀리초로 저장하기 위한 변수 bool isActive = false; const int check_interval = 100; void setup() { // 입력 버튼, LED 초기화 button_pressed_millis = 0; pinMode(pin_LED, OUTPUT); //LED 출력 pinMode(pin_switch, INPUT_PULLUP); //스위치 입력(누르지 않으면 켜진상태로 유지) } void loop() { current_millis = millis(); // 현재 시간 기록 // 버튼을 특정 시간만큼 눌러야 누른 것으로 판단한다. // 버튼이 눌렸는지를 판단해서 눌렸다면 if (digitalRead(pin_switch) == LOW && current_millis-button_pressed_millis > button_interval) { button_pressed_millis = current_millis; // 버튼이 눌린 시각을 저장 isActive = (isActive) ? false : true; // 상태 반전 } if (isActive) { digitalWrite(pin_LED,HIGH);} else {digitalWrite(pin_LED,LOW); } delay(check_interval); }
'Arduino > Button' 카테고리의 다른 글
버튼과 인터럽트 (0) 2020.10.23 시간 간격을 통해 버튼을 누를 때마다 LED를 깜빡이게 하기 (0) 2020.10.22 Pull down & Pull up 저항 (0) 2020.10.22 버튼 누른 회수 구하기 (0) 2020.10.22 버튼 제어 (0) 2020.10.21