반응형

안녕하세요!
녹칸다입니다!

녹칸다의 산업용 아두이노(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 

 

반응형
Posted by 덕력킹
,