Develop/Arduino Uno

[아두이노 우노] delay() 함수 없이 주기적인 작업 실행하기 - millis() 함수

JuniTech 2023. 12. 18. 14:40
728x90

아두이노 우노
아두이노 우노 - millis() 함수 실습

 

타이머를 사용하여 delay() 함수 없이 주기적인 작업을 실행해보자. 이번에는 millis() 함수를 사용할 예정이다.

millis() : 코드(스케치)가 실행된 이후의 경과 시간을 millisecond 단위로 리턴해주는 함수

int rLedPin = 13;
int gLedPin = 8;
int buttonPin = 2;

unsigned long int preTime = 0;
unsigned long int interval = 1000;
int ledState = LOW;

void setup() {
    pinMode(rLedPin, OUTPUT);
    pinMode(gLedPin, OUTPUT);
    pinMode(buttonPin, INPUT);
}

void loop(){
	unsigned long int currentTime = millis();	// by 시간 함수
    
    if (currentTime - preTime > interval) {
    	preTime = currentTime;
        ledState = !ledState;
        digitalWrite(rLedPin, ledState);
    }
    
    int buttonState = digitalRead(buttionPin);
    digitalWrite(gLedPin, buttonState);
}