본문 바로가기

라즈베리파이 5

라즈베리파이 Python 3 - LED Blink

반응형

 

라즈베리파이5에서 LED Blink Test

 

태풍 종다리가 물러가고 있지만 여전히 덮다. 지롤하고 습도만 잔뜩 높여놓고 사라진다. 습도는 인간의 행동을 아주 약하게 만든다. 더 힘들게 하고, 일찍 지치게 만든다.

 

강의 순서

 

라즈베리파이 Python 9 - 버튼 채터링 방지

라즈베리파이 Python 8 - 버튼

라즈베리파이 python 7 - 교통 신호등

라즈베리파이 python 6 - RGB LED

라즈베리파이 Python 5 - LED Fade 구현

라즈베리파이 Python 4 - Delay 없는 LED Blink

라즈베리파이 Python 3 - LED Blink

라즈베리파이 Python 2 - 파이선 코드 템플릿

라즈베리파이 Python 1 - python 실행

 

 

아래에서는 Python으로 Raspberry Pi 코드를 작성하여 LED를 깜박이는 방법에 대한 지침을 제공합니다. 

 

  • LED를 라즈베리파이에 연결하는 방법.
  • Raspberry Pi를 프로그래밍하여 LED를 켜거나 끄는 방법.
  • LED를 깜박이도록 Raspberry Pi를 프로그래밍하는 방법. 

LED에 관해 잠시 살펴보겠습니다. 

 

LED 핀아웃: LED에는 두 개의 핀이 있습니다.

  • 음극(-) 핀: 전원 공급 장치의 음극에 연결해야 합니다.
  • 양극(+) 핀: 저항기를 통해 전원 공급 장치의 양극에 연결되어야 합니다. 

 

https://newbiely.com/tutorials/raspberry-pi/raspberry-pi-led

 

 

 

위 그림에서 보는 바와 같이 LED의 양극(+)에 PWM 신호를 생성하면, PWM 값에 따라 LED의 밝기가 달라집니다. 이에 대해서는 Arduino Nano fade LED 튜토리얼에서 자세히 설명했습니다.

 

* 참고 사항:

  • 대부분의 LED에는 전류로부터 LED를 보호하기 위해 저항이 필요합니다. 저항을 배치하는 옵션에는 양극(+)과 VCC 사이 또는 음극(-)과 GND 사이의 두 가지 옵션이 있습니다. 저항의 값은 LED의 사양에 따라 달라집니다.
  • 일부 LED에는 저항이 내장되어 있습니다. 이 경우 저항은 필요하지 않습니다.

라즈베리 파이 - LED

 

Raspberry Pi의 핀이 디지털 출력으로 설정되면 핀의 전압을 GND(Cathod 타입) 또는 VCC(Anode 타입)로 프로그래밍할 수 있습니다. 저항을 이용하여 라즈베리파이의 핀을 LED의 양극(+)핀에 연결합니다. 이를 통해 프로그래밍을 통해 LED 상태를 제어할 수 있습니다. 

 

연결도는 아래 그림과 같습니다.

 

 

 

라즈베리파이5에서 LED Blink Test

  • 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 라이브러리가 설치되어 있는지 확인하세요. 그렇지 않은 경우 다음 명령을 사용하여 설치하십시오. 

 

아래 라이브러리에 관한 설명이 필요합니다. 이전 GPIO 라이브러리는 동작하지 않습니다.

 

sudo apt-get update
sudo apt install python3-rpi-lgpio

 

아래는 설치하는 과정입니다.

 

pi@raspberrypi:~/dev-python $ sudo apt install python3-rpi-lgpio
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following package was automatically installed and is no longer required:
  rpi.gpio-common
Use 'sudo apt autoremove' to remove it.
The following NEW packages will be installed:
  python3-rpi-lgpio
0 upgraded, 1 newly installed, 0 to remove and 64 not upgraded.
Need to get 12.3 kB of archives.
After this operation, 56.3 kB of additional disk space will be used.
Get:1 http://archive.raspberrypi.com/debian bookworm/main arm64 python3-rpi-lgpio all 0.4-1~rpt1 [12.3 kB]
Fetched 12.3 kB in 9s (1,382 B/s)
Selecting previously unselected package python3-rpi-lgpio.
(Reading database ... 228659 files and directories currently installed.)
Preparing to unpack .../python3-rpi-lgpio_0.4-1~rpt1_all.deb ...
Unpacking python3-rpi-lgpio (0.4-1~rpt1) ...
Setting up python3-rpi-lgpio (0.4-1~rpt1) ...
pi@raspberrypi:~/dev-python $

 

 

다음 코드를 blink_led.py 스크립트로 만들어 저장하세요.

 

"""
This Raspberry Pi code was developed by newbiely.com
This Raspberry Pi code is made available for public use without any restriction
For comprehensive instructions and wiring diagrams, please visit:
https://newbiely.com/tutorials/raspberry-pi/raspberry-pi-led
"""


import RPi.GPIO as GPIO
import time

# Set the GPIO mode and warning
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)

# Define the GPIO18 pin number
led_pin = 18

# Setup the GPIO pin as an output
GPIO.setup(led_pin, GPIO.OUT)

# Function to blink the LED
def blink_led():
    GPIO.output(led_pin, GPIO.HIGH)
    time.sleep(1)  # LED on for 1 second
    GPIO.output(led_pin, GPIO.LOW)
    time.sleep(1)  # LED off for 1 second

try:
    # Run the LED blinking forever until a keyboard interrupt (Ctrl + C)
    while True:
        blink_led()

except KeyboardInterrupt:
    # Cleanup GPIO settings on keyboard interrupt
    GPIO.cleanup()

 

파일을 저장하고 터미널에서 다음 명령을 실행하여 Python 스크립트를 실행합니다.

 

$python3 blink.py

 

LED 상태를 확인해보세요. 1초 간격으로 LED가 깜박이는 것을 볼 수 있습니다. 스크립트는 터미널에서 Ctrl + C를 누를 때까지 무한 루프로 계속 실행됩니다. 코드 설명 소스코드 주석에 담긴 단계별 설명을 확인해보세요!

 

* 참고 사항: 위의 코드는 time.sleep()을 활용합니다. 이 기능은 지연이 발생하는 동안 Raspberry Pi가 다른 작업을 실행하지 못하도록 합니다. 프로젝트에 여러 작업을 동시에 수행해야 하는 경우 Raspberry Pi에 대한 비차단 방법을 활용한 코드를 작성하여 Raspberry Pi가 물속에 가라앉아 있도록 차단하지 마세요.

 

Delay 없이 led를 블링크 하는 방법을 다음 포스팅에서 상세히 설명하겠습니다. 아주 중요한 내용이니 꼭 익히길 바랍니다.

 

고생하셨습니다. 북마크 하시고 언제든지 최신 아두이노, 라즈베리파이에 대한 기술 정보를 확인하시기 바랍니다.

 

 

반응형

더욱 좋은 정보를 제공하겠습니다.~ ^^