함수설명: delay()

 

설명:

매개변수로 지정된 시간(밀리초(millisecond, ms)) 동안 프로그램을 일시 중지합니다. (1초(s)는 1000밀리초(ms)입니다.)

 

문법(syntax):

delay(ms)

 

매개변수(parameters):

ms: 일시 중지할 시간(밀리초)입니다. 허용되는 데이터 유형: unsigned long(부호없는 정수).

 

리턴값(returns):

없음

 

예제 코드:

이 코드는 출력 핀을 토글하기 전에 프로그램을 1초 동안 일시 정지합니다.

int ledPin = 13; // 디지털 핀 13에 연결된 LED

void setup() {
  pinMode(ledPin, OUTPUT); // 디지털 핀을 출력으로 설정합니다.
}

void loop() {
  digitalWrite(ledPin, HIGH); // LED를 켭니다.
  delay(1000); // 1초간 기다립니다.
  digitalWrite(ledPin, LOW); // LED를 끕니다.
  delay(1000); // 1초간 기다립니다.
}

 

참고:

delay() 함수로 깜박이는 LED를 쉽게 만들 수 있고 많은 스케치에서 스위치 디바운싱과 같은 작업에 짧은 지연을 사용하지만, 스케치에서 delay()을 사용하면 상당한 단점이 있습니다. delay 함수 작동 중에는 센서 판독, 수학적 계산 또는 핀 조작을 계속할 수 없으므로 사실상 대부분의 다른 활동이 중단됩니다. 타이밍 제어에 대한 다른 접근 방식은 충분한 시간이 경과할 때까지 millis() 함수를 폴링하여 반복하는 >>delay함수 없이 LED 깜빡이기<<를 참조하십시오. 일반적으로 Arduino 스케치가 매우 간단하지 않는 한 10밀리초 이상의 이벤트 타이밍에 delay()함수를 사용하지 않습니다.

그러나 delay() 함수가 인터럽트를 비활성화하지 않기 때문에 delay() 함수가 Atmega 칩을 제어하는 동안에도 특정 작업이 계속 진행됩니다. RX 핀에 나타나는 직렬 통신이 기록되고, PWM(아날로그 쓰기) 값과 핀 상태가 유지되며, 인터럽트가 정상적으로 작동합니다.

+ Recent posts