[faduino3-6] 산업용 아두이노에서 라이브러리를 사용안하고 버튼을 디바운스 처리하는 예제!(버튼을 누를때 발생)
프로그래밍/산업용아두이노(fa-duino) 2023. 6. 30. 22:32반응형
안녕하세요!
녹칸다입니다!
녹칸다의 산업용 아두이노(fa-duino)의 빠른 내용 전달을 위해서 코드와 작동결과만을 별도로 정리해보도록 하겠습니다~!
녹칸다의 산업용 아두이노 3편에서 6번예제를 정리해보도록 하겠습니다~!
이번 예제는 아래와 같은 목표가 있습니다~~!
1.누름버튼 2개를 각각 산업용 아두이노(faduino)의 37과 36번에 연결할 것!
2.버튼의 디바운스 처리를 할 것!
3.버튼을 누르고 있는 시간이 일정시간 이상이 되었을때 버튼을 눌렀다고 감지할 것!
4.버튼을 누른 시점을 기준으로 시간을 측정해서 작업을 수행함!
예제의 소스코드는 아래와 같습니다~!
//37번에 연결된 버튼에 디바운스 처리를 하시오!
//버튼을 누르면 상승엣지가 발생하고 상승엣지가 발생한 지점에서 HIGH신호가 일정시간동안 유지가 된다면 버튼을 누른것으로 간주하겠다!
bool old_btn = LOW;
bool btn_pressed = false;
unsigned long t = 0;
void setup() {
Serial.begin(9600); //결과를 PC에 출력하겠다!
pinMode(37,INPUT); //빨간버튼
}
void loop() {
bool now_btn = digitalRead(37);
if(old_btn == LOW && now_btn == HIGH){
//상승엣지
t = millis(); //상승엣지의 시간을 저장한다!
btn_pressed = true;
}else if(old_btn == HIGH && now_btn == HIGH){
//버튼을 누르고 있는중
if(millis() - t > 10 && btn_pressed == true){
//버튼이 눌려진것이다!
Serial.println("버튼이 눌러졌다");
btn_pressed = false;
}
}
old_btn = now_btn;
}
예제의 실행결과는 녹칸다의 라이브 방송중 해당 위치를 링크 걸도록 하겠습니다~~!
https://youtu.be/uXZTirk2SYw?t=3922
반응형
'프로그래밍 > 산업용아두이노(fa-duino)' 카테고리의 다른 글
[faduino3-8] 산업용 아두이노에서 누름버튼을 짧게 누른것과 길게 누른것을 인식시켜보는 예제! (0) | 2023.06.30 |
---|---|
[faduino3-7] 산업용 아두이노에서 라이브러리를 사용하지 않고 버튼 2개를 동시에 디바운스 처리를 해보는 예제! (0) | 2023.06.30 |
[faduino3-5] 산업용 아두이노에서 라이브러리를 사용안하고 버튼을 디바운스 처리하는 예제!(버튼을 눌렀다가 뗄때 발생) (0) | 2023.06.25 |
[faduino3-4] 산업용 아두이노로 누름버튼을 눌렀다가 뗀 시간 측정해보는 예제! (0) | 2023.06.25 |
[faduino3-3] 산업용 아두이노에서 누름버튼 2개를 디바운스처리해서 변수의값을 업/다운카운트 해보는 예제! (0) | 2023.06.25 |