반응형

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

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

 

반응형
Posted by 덕력킹
,