Develop/Arduino Uno
[아두이노 우노] delay() 함수 없이 주기적인 작업 실행하기 - millis() 함수
JuniTech
2023. 12. 18. 14:40
728x90


타이머를 사용하여 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);
}