라즈베리 파이 LED 지연 없이 깜박임
라즈베리 파이가 두 가지 작업을 수행해야 한다고 상상해 보자: LED를 깜빡이게 하는 것과 언제든지 누를 수 있는 버튼의 상태를 모니터링하는 것. 이전 튜토리얼에서 논의된 time.sleep() 함수를 활용하면 라즈베리 파이가 일부 버튼 누르기를 감지하지 못할 수 있다. 즉, 라즈베리 파이는 두 번째 작업을 완전히 수행할 수 없다.
이 자습서는 Raspberry Pi가 LED를 깜빡이게 하고 버튼의 상태를 누락 없이 모니터링하는 방법을 안내합니다.
세 가지 예를 검토하고 그들 간의 차이점을 비교하겠습니다.
- time.sleep() 함수를 사용하여 Raspberry Pi로 LED 깜박이기
- millis() 함수를 사용하여 Raspberry Pi로 LED 깜박이기
이 방법은 LED 깜박임과 버튼 상태 확인에만 국한되지 않습니다. 이는 라즈베리 파이가 서로 간섭하지 않고 여러 작업을 동시에 수행할 수 있도록 합니다.
Hardware Preparation
1 | × | Raspberry Pi 4 Model B | Amazon | |
1 | × | LED Kit with resistor | Amazon | |
1 | × | LED (red) | Amazon | |
1 | × | 220 ohm resistor | Amazon | |
1 | × | Breadboard-mount Button with Cap | 쿠팡 | Amazon | |
1 | × | Breadboard-mount Button Kit | 쿠팡 | Amazon | |
1 | × | Panel-mount Push Button | Amazon | |
1 | × | Breadboard | 쿠팡 | Amazon | |
1 | × | Jumper Wires | Amazon | |
1 | × | (추천) Screw Terminal Block Shield for Raspberry Pi | 쿠팡 | Amazon | |
1 | × | (추천) USB-C Power Cable with On/Off Switch for Raspberry Pi 4B | Amazon | |
1 | × | (추천) Plastic Case and Cooling Fan for Raspberry Pi 4B | Amazon | |
1 | × | (추천) HDMI Touch Screen Monitor for Raspberry Pi | Amazon |
LED 및 버튼에 관하여
LED와 버튼(핀아웃, 기능, 프로그래밍 포함)에 익숙하지 않다면, 다음 튜토리얼이 안내를 제공할 수 있습니다:
Wiring Diagram
이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
배선 구성을 간단하고 체계적으로 만들기 위해, Raspberry Pi용 스크루 터미널 블록 실드 사용을 권장합니다. 이 실드는 아래와 같이 더욱 안정적이고 관리하기 쉬운 연결을 제공합니다:
Raspberry Pi 코드 - 지연 포함
Detailed Instructions
- Raspberry Pi에 Raspbian 또는 기타 Raspberry Pi 호환 운영 체제가 설치되어 있는지 확인하십시오.
- Raspberry Pi가 PC와 동일한 로컬 네트워크에 연결되어 있는지 확인하십시오.
- 라이브러리를 설치해야 하는 경우 Raspberry Pi가 인터넷에 연결되어 있는지 확인하십시오.
- Raspberry Pi를 처음 사용하는 경우 Raspberry Pi 설정 방법을 참조하세요.
- Linux 및 macOS의 내장 SSH 클라이언트 또는 Windows의 PuTTY를 사용하여 SSH를 통해 PC를 Raspberry Pi에 연결하십시오. SSH를 통해 PC를 Raspberry Pi에 연결하는 방법은 여기를 참조하세요.
- RPi.GPIO 라이브러리가 설치되어 있는지 확인하십시오. 그렇지 않은 경우 다음 명령어를 사용하여 설치하십시오:
- Python 스크립트 파일 led_blink_with_delay.py를 생성하고 다음 코드를 추가하십시오:
- 파일을 저장하고 터미널에서 다음 명령어를 실행하여 Python 스크립트를 실행하십시오.
- 버튼을 네 번 눌러주세요.
- LED를 확인하세요. 매초 켜짐과 꺼짐을 번갈아가며 나타날 것입니다.
- 터미널의 출력을 확인하세요.
- 터미널에서 일부 누름 시간이 기록되지 않았습니다. 이는 Raspberry Pi가 지연 시간 동안 아무것도 할 수 없기 때문에 누름 이벤트를 감지할 수 없기 때문입니다.
스크립트는 터미널에서 Ctrl + C를 누를 때까지 무한 루프로 계속 실행됩니다.
Raspberry Pi 코드 - 지연 없음
Detailed Instructions
- Python 스크립트 파일 led_blink_without_delay.py를 생성하고 다음 코드를 추가하세요:
- 파일을 저장하고 터미널에서 다음 명령을 실행하여 Python 스크립트를 실행하십시오.
- 버튼을 4번 누르세요.
- LED가 매초 켜짐과 꺼짐을 번갈아가며 확인하세요.
- 터미널에서 출력을 확인하세요.
- LED가 깜빡이는 동안 모든 눌린 이벤트가 식별되었습니다.
이 스크립트는 터미널에서 Ctrl + C를 누를 때까지 무한 루프 상태로 계속 실행됩니다.
코드 설명
소스 코드의 주석에 포함된 줄별 설명을 확인하세요!
Video Tutorial
비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.
확장성
이 방법은 Raspberry Pi가 서로 간섭하지 않고 동시에 여러 작업을 수행할 수 있도록 합니다. 예를 들어, 인터넷에 요청을 보내고 응답을 기다리는 동안 LED 표시등을 깜빡이고 취소 버튼을 확인할 수 있습니다.