delay()
설명
매개변수에 정한 시간(밀리 초) 동안 프로그램 멈춤. (1초는 1000 밀리 초)
문법
delay(ms)
매개변수
- ms: 멈출 밀리 초 (unsigned long)
반환값
- 없음
예제 코드
이 코드는 출력 핀을 토글하기 전에 프로그램을 1초 멈춤
int ledPin = 13; // LED 연결 디지털 핀 13
void setup() {
pinMode(ledPin, OUTPUT); // 디지털 핀을 출력으로
}
void loop() {
digitalWrite(ledPin, HIGH); // LED 켬
delay(1000); // 1초 기다림
digitalWrite(ledPin, LOW); // LED 끔
delay(1000); // 1초 기다림
}
※ 주의 및 경고:
- delay() 함수로 깜빡이는 LED 를 만들기 쉽고, 많은 스케치가 짧은 delay를 써서 그런 작업을 switch debouncing로 하지만, 스케치에서 delay() 를 쓰는 것은 눈에 띄는 단점이 있다. delay 함수 동안 센서 읽기, 수학 계산, 핀 다루기가 중단되므로, 결과적으로, 거의 모든 다른 작업이 멈춘다. 시간을 제어하는 다른 접근으로 아래에 있는 millis() 함수와 스케치를 보세요. 좀더 똑똑한 프로그래머는 delay() 를 10 밀리초보다 긴 타이밍 이벤트를 아두이노 스케치가 아주 간단한 경우가 아니면 대개 사용하지 않는다.
- 그러나, 어떤 것은 delay() 함수가 Atmega 칩을 제어하는 동안에도 이루어지는데, 왜냐면 delay 함수가 인터럽트를 비활성화 하지 않기 때문이다. RX에서 나타나는 시리얼 통신은 기록되고, PWM (analogWrite) 값과 핀 상태가 유지되며, interrupts 은 정상으로 동작한다.
더보기
- 언어 : delayMicroseconds()
- 언어 : micros()
- 언어 : millis()
- 튜토리얼 : Blink Without Delay
※ ARDUINO BUY RECOMMENDATION
Arduino UNO R3 | |
Arduino Starter Kit |
Please note: These are Amazon affiliate links. If you buy the components through these links, We will get a commission at no extra cost to you. We appreciate it.