본문 바로가기

아두이노 IDE/핵심프로그래밍 언어

14. 시간

핵심 아두이노 프로그래밍 언어 14 - 시간




1. millis()
2. delay()




1. millis()

밀리초, 즉 1/1000초 단위의 시간 값을 사용할 때 사용합니다.

millis()의 값은 아두이노 보드가 켜질 때 자동으로 시작합니다.

약 50일이 지나면 millis()의 값은 0에서부터 다시 시작합니다.

millis()의 값을 사용할 때에는 unsinged long 변수를 써야합니다.

다른 변수나 long 변수만을 사용하면 에러가 발생합니다.



unsigned long Sec = 0;       //  Sec에 0을 저장시킵니다.

void setup() {
    Serial.begin(9600);        // 시리얼 통신을 시작합니다.
}

void loop() {
    if(millis() - Sec > 999) {  //  만약 현재 밀리초에서 Sec를 뺀 값이 0.999초를 넘는다면,
      Sec = millis();          // Sec는 현재 밀리초 값을 저장하고
      Serial.println("1");       // 시리얼 모니터에 1을 출력합니다.
    }
}






2. delay()

밀리초, 즉 1/1000 초 단위로 작동을 멈출 때 사용합니다.

사용 방법을 아래와 같습니다.


delay(밀리초)


밀리초이기 때문에 1초 동안 멈추려면
delay(1000)
이라고 써야 합니다.



int LED = 9;    //  9번 핀을 LED로 사용합니다.

void setup() {
    pinMode(LED, OUTPUT);   // LED 핀을 출력모드로 합니다.
}

void loop() {
    digitalWrite(LED, HIGH);   //  LED를 켭니다.
    delay(1000);               // 1초 동안 멈춥니다.
    digitalWrite(LED, LOW);   //  LED를 끕니다.
    delay(1000);               // 1초 동안 멈춥니다.
}



delay()를 사용하면 지정한 시간 동안 아두이노 보드의 모든 기능이 멈추게 됩니다.

따라서 센서나 엑츄에이터들을 동시에 사용해야할 경우에는 delay() 쓰지 않는 것이 좋습니다.



'아두이노 IDE > 핵심프로그래밍 언어' 카테고리의 다른 글

13. switch case 조건문  (0) 2017.02.23
12. if 조건문  (0) 2017.02.23
11. 복합 연산 기호  (0) 2017.02.23
10. 부울 연산 기호  (0) 2017.02.23
9. 비교 연산 기호  (0) 2017.02.23