반응형
안녕하세요!
녹칸다입니다!
녹칸다의 산업용 아두이노(fa-duino)의 빠른 내용 전달을 위해서 코드와 작동결과만을 별도로 정리해보도록 하겠습니다~!
녹칸다의 산업용 아두이노 3편에서 8번예제를 정리해보도록 하겠습니다~!
이번 예제는 아래와 같은 목표가 있습니다~~!
1.산업용 아두이노(faduino)의 37번에 누름버튼을 1개 연결하기!
2.버튼을 짧게 누르면 짧게 눌렀다고 시리얼모니터에 출력하고 길고누르면 길게눌렀다고 출력하기!
3.기본적으로 버튼의 디바운스 처리하기!
예제의 소스코드는 아래와 같습니다~!
//37번에 연결된 버튼에 디바운스 처리를 하시오!
//엣지 사이의 시간을 이용해서 짧게 누른것과 길게 누른것을 구분해보시오!
bool old_btn = LOW;
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(); //상승엣지의 시간을 저장한다!
}else if(old_btn == HIGH && now_btn == LOW){
//하강엣지
if(millis() - t < 200 && millis() - t > 50){
// 50 < 누른시간 < 200
Serial.println("짧게 눌렀네요!!!");
}else if(millis() - t >= 200){
//200크다
Serial.println("길~~~~~게 눌렀네요!!!");
}
}
old_btn = now_btn;
}
예제의 실행결과는 녹칸다의 라이브 방송에서 해당 위치를 링크 걸도록 하겠습니다~!
https://youtu.be/uXZTirk2SYw?t=4610
반응형