>

버튼을 누르면 타이머를 시작하고 싶습니다. 타이머에 5 분 동안 LED가 켜집니다. 5 분이 만료 된 후 다른 버튼 누름을 등록하기 전에 2 분 동안 기다립니다.


  • 답변 # 1

    이 작업을 수행하는 방법을 알아 냈습니다.
    LED가 높은 상태에서 일정 시간 동안 지연 명령을 사용합니다 그런 다음 일정 시간이 지나면 LED를 낮게 설정합니다. 등등. 여기에 사용한 모든 코드가 있습니다.

    const int LED2 = 12;
    const int LED = 13;
    const int BUTTON = 7;
    int var = 0;
    int val = 0;
    int old_val = 0;
    int state = 0;
    void setup(){                               //telling the computer what the LED and the               button are
      pinMode (LED2,OUTPUT);
      pinMode (LED,OUTPUT);
      pinMode (BUTTON,INPUT);
    }
    void loop(){
      val = digitalRead(BUTTON);
      if ((val == HIGH) && (old_val == LOW)){    
        digitalWrite(LED,HIGH); 
        delay(240000);                         //The period of time to wait before turning    on the LED2
        digitalWrite(LED2,HIGH);
        delay (1000);
        digitalWrite(LED2,LOW);
        delay (490000);
        var = 0;
        while(var < 10){                      //A while loop to flash the LED2 on and off
          digitalWrite(LED2,HIGH);
          delay (500);
          digitalWrite(LED2,LOW);
          delay (500);
          var++;
        }
        digitalWrite(LED,LOW);
        delay(120000);                        //A two minute delay before the button can be pressed again
      }
    }
    
    

  • 답변 # 2

    내장 예제 프로그램 "Delay without Delay"를 사용하여 "Button"과 결합하십시오. 두 프로그램 모두 http://arduino.cc/en/Tutorial/HomePage에서 자습서로 사용할 수 있습니다. delay () 함수는 프로세서 시간을 낭비하고 인터럽트가있을 경우 타이밍이 정확하지 않기 때문에 피하십시오.

관련 자료

  • 이전 java - Thread on Loop 사용시 예외
  • 다음 c++ - 왜 법선이 꼭짓점 사이를 보간하지 않아서 음영 효과가 평평하지 않습니까?