MCU 공부/아두이노 레퍼런스 Arduino Reference

아두이노 딜레이 함수, delay ()

이티의 골방 2020. 5. 18. 08:24

아두이노의 딜레이 함수인 delay()에 대해 알아보겠습니다.

 

정의

 

매개 변수로 지정된 시간 (밀리 초) 동안 프로그램을 일시 정지합니다. (초당 1000 밀리 초가 있습니다.)

delay(ms)

 

매개 변수

 

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

 

예제 코드

 

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

 

1
2
3
4
5
6
7
8
9
10
11
12
int ledPin = 13;              // LED connected to digital pin 13
 
void setup() {
  pinMode(ledPin, OUTPUT);    // sets the digital pin as output
}
 
void loop() {
  digitalWrite(ledPin, HIGH); // sets the LED on
  delay(1000);                // waits for a second
  digitalWrite(ledPin, LOW);  // sets the LED off
  delay(1000);                // waits for a second
}
 

 

참고

 delay()기능 으로 깜박이는 LED를 쉽게 생성 할 수 있고 많은 스케치가 스위치 디 바운싱과 같은 작업에 짧은 지연을 사용하지만 스케치에서 사용하면 delay()상당한 단점이 있습니다. 지연 기능 중에는 센서, 수학적 계산 또는 핀 조작에 대한 다른 판독 값이 진행될 수 없으므로 사실상 대부분의 다른 활동이 중단됩니다. 타이밍 제어에 대한 대체 방법 은 충분한 시간이 경과 할 때까지 millis () 함수를 폴링하는 Blink Without Delay 스케치를 참조하십시오 . 더 많은 지식을 갖춘 프로그래머 는 Arduino 스케치가 매우 단순하지 않은 한 일반적으로 10 밀리 초보다 긴 이벤트 타이밍을 사용 하지 않습니다.delay()

delay () 함수가 Atmega 칩을 제어하는 ​​동안 특정 상황이 발생하지만 지연 함수는 인터럽트를 비활성화하지 않기 때문입니다. RX 핀에 나타나는 직렬 통신이 기록되고 PWM 값과 핀 상태가 유지되며 인터럽트가 정상적으로 작동합니다.