J 창고

[Arduino] Millis 로 구현한 Delay 본문

컴퓨터/Firmware

[Arduino] Millis 로 구현한 Delay

JSFamily 2013. 11. 2. 19:37


int led_red = 4;

int led_blue = 5;

int ledState_red = LOW;

int ledState_blue = HIGH;


long previousMillis = 0;


long interval = 1000;


void setup(){

  pinMode(led_red, OUTPUT);

  pinMode(led_blue, OUTPUT);

}


void loop(){

  unsigned long currentMillis = millis();

  

  if(currentMillis - previousMillis > interval){

    previousMillis = currentMillis;

    if(ledState_red == LOW){

      ledState_red = HIGH;

      ledState_blue = LOW;

    }

    else{

      ledState_red = LOW;

      ledState_blue = HIGH;

    }

    digitalWrite(led_red, ledState_red);

    digitalWrite(led_blue, ledState_blue);

  }

}


    

=============================================================

currentMillis(1초) - previousMillis(0초) 값이 interval(1초)보다 클 때

currentMillis(1초)값을 previousMillis값에 대입하고 다시 연산

또 다시 currentMillis(2초) - previousMillis(1초)값이 interval값(1초)보다 커질 때

currentMillis(2초)값을 previousMillis값에 대입.

Comments