아두이노 - LED - 지연 없이 깜박임 | Arduino - LED - Blink Without Delay
아두이노가 두 가지 작업을 수행해야 한다고 상상해 봅시다: LED를 깜박이는 것과 언제든 눌릴 수 있는 버튼의 상태를 확인하는 것입니다. 만약 delay() 함수(이전 튜토리얼에서 설명된)를 사용한다면, 아두이노는 일부 누르기 이벤트를 놓칠 수 있습니다. 다시 말해서, 아두이노는 두 번째 작업을 완전히 수행할 수 없습니다.
이 튜토리얼에서는 아두이노가 LED를 깜빡이며 버튼의 상태를 확인하여 어떤 누르는 이벤트도 놓치지 않는 방법을 배워보겠습니다.
아래의 세 가지 예시를 살펴보며 그 차이를 비교할 것입니다.
- Arduino는 delay() 함수를 사용하여 LED를 깜박입니다.
- Arduino는 millis() 함수를 사용하여 LED를 깜박입니다.
- Arduino는 ezLED 라이브러리를 사용하여 LED를 깜박입니다.
※ NOTE THAT:
- 이 방법은 LED를 깜박이고 버튼의 상태를 확인하는 것뿐만 아니라 일반적으로 여러 작업을 서로 방해하지 않고 동시에 수행할 수 있도록 합니다.
- 이 튜토리얼은 작동 원리를 이해하는 데 도움이 되는 심층적인 지식을 제공합니다. 쉽게 하기 위해 아두이노 - LED 라이브러리를 사용할 수 있습니다.
준비물
1 | × | Arduino Uno | Amazon | |
1 | × | USB 2.0 cable type A/B | 쿠팡 | Amazon | |
1 | × | LED | Amazon | |
1 | × | 220 ohm resistor | Amazon | |
1 | × | Push Button | 쿠팡 | Amazon | |
1 | × | (Optional) Panel-mount Push Button | Amazon | |
1 | × | Breadboard | 쿠팡 | Amazon | |
1 | × | Jumper Wires | Amazon | |
1 | × | (Optional) 9V Power Adapter for Arduino | Amazon | |
1 | × | (Recommended) Screw Terminal Block Shield for Arduino Uno | 쿠팡 | Amazon | |
1 | × | (Recommended) Breadboard Shield For Arduino Uno | 쿠팡 | Amazon | |
1 | × | (Recommended) Enclosure For Arduino Uno | Amazon |
LED 및 버튼에 관하여
LED와 버튼(핀배열, 작동 방식, 프로그래밍 방법 등)에 대해 모른다면, 다음 튜토리얼에서 배워보세요:
선연결
이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
아두이노 코드 - 지연 시간 포함
사용 방법
- 아두이노를 USB 케이블을 통해 PC에 연결합니다.
- 아두이노 IDE를 열고, 올바른 보드와 포트를 선택합니다.
- 위의 코드를 복사하고 아두이노 IDE로 엽니다.
- 아두이노 IDE에서 Upload 버튼을 클릭하여 코드를 아두이노에 업로드합니다.
- 시리얼 모니터 열기
- 버튼을 4번 누르세요
- LED 확인: LED가 매초마다 켜졌다 꺼졌다 합니다
- 시리얼 모니터에서 출력 확인
시리얼 모니터에서 몇 번의 누름 시간이 누락되었습니다. 딜레이 시간 동안 아두이노는 아무것도 할 수 없기 때문입니다. 따라서, 누름 이벤트를 감지할 수 없습니다.
아두이노 코드 - 딜레이 없이
사용 방법
위의 코드를 실행하고 버튼을 4번 누르세요.
LED를 확인하세요: LED가 매초마다 ON/OFF 사이를 주기적으로 전환합니다.
시리얼 모니터에서 출력을 확인하세요.
모든 긴급 사건이 감지되었습니다.
코드 설명
위의 아두이노 코드의 주석 라인에서 설명을 찾을 수 있습니다.
더 많은 작업 추가하기
아래 코드는 두 개의 LED를 다른 간격으로 깜박이며 버튼의 상태를 확인합니다.
동영상
비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.
확장성
이 방법은 아두이노가 서로를 방해하지 않고 동시에 여러 작업을 수행할 수 있게 해줍니다. 예를 들어, 인터넷에 요청을 보내고 응답을 기다리는 동안, LED 표시등을 깜박이고 취소 버튼을 확인합니다.