Processor

【라즈베리파이】 wiringPi Python : LED 제어하기

작성자 임베디드코리아 작성일26-02-20 00:10 조회699회 댓글0건
[ 1 ] 모듈을 임포트한다
      ____________________________
      import RPi.GPIO as GPIO
      ____________________________

      ◆ 라즈베리파이(Raspberry Pi)의 GPIO(General Purpose Input/Output) 핀을
          제어하기 위해 해당 라이브러리를 불러온다.
      ◆ RPi.GPIO: 라즈베리파이 재단에서 제공하는 공식 파이썬 라이브러리로,
                      라즈베리파이 OS에 기본적으로 내장되어 있다.
      ◆ as GPIO: 라이브러리 이름을 그대로 쓰면 코드가 길어지기 때문에, 타이핑을 줄이고
                      가독성을 높이기 위해 'GPIO'라는 짧은 별칭(Alias) 으로 지정하는 파이썬 문법이다.

[ 2 ] 핀 넘버를 부르는 방식을 선택한다
      ___________________
        GPIO.setmode()
      ----------------------------
      : 핀 번호를 참조하는 방식에 대한 함수이다

      ◆ GPIO.setmode(GPIO.BOARD) 와 GPIO.setmode(GPIO.BCM)
          두가지 모드가 있다.

          ▶ GPIO.BOARD 는 보드의 물리적 핀번호를 기준하여 라즈베리파이 제어시 사용되며,
              이러한 유형의 번호부여 장점은 SBC보드가 변경이 되어도 소스코드의 변경 되지 않는
              장점이 있다.

          ▶ GPIO.BCM는 Broadcom SOC 채널에 의한 핀을 참조하는 GPIO모듈 번호이다.
              Broadcom SOC 채널 지정을 나타내며 버전 번호가 변경되면 BCM 채널이 변경 된다.

          ex) BOARD 모드의 11번 핀 = BCM 모드의 17번 핀

          ** 여러 버전의 라즈베리파이를 사용할 계획이 있다면 GPIO.BCM보다 GPIO.BOARD가 더 안전 할 수 있다.**

[ 3 ] 핀 모드를 설정한다
      ______________________________________
        출력 :  GPIO.setup(18, GPIO.OUT)
        입력 :  GPIO.setup(18, GPIO.IN)
      ---------------------------------------------------------

      list를 사용해 한번에 여러 핀을 설정 할 수도 있고, output 모드로 설정하는 경우 초기값을 줄 수도 있다.
        ____________________________________________________
​          GPIO.setup([18, 19, 20], GPIO.OUT, initial=GPIO.HIGH)
        -------------------------------------------------------------------------------

[ 4 ] 핀에서 값을 입력(input) 한다.
      ___________________________
        변수 = GPIO.input(channel)
      -----------------------------------------
        참 : True, 1, GPIO.HIGH
        거짓 : False, 0, GPIO.LOW

[ 5 ] 핀에서 값을 입력(input) 한다.
        ___________________________
        GPIO.output(channel, state)
        ----------------------------------------
        state ==>
        참 : True, 1, GPIO.HIGH
        거짓 : False, 0, GPIO.LOW

[ 6 ] 리소스 비우기
      ______________________
        GPIO.cleanup()
      --------------------------------

◆ GPIO 18번 핀을 사용하여 불을 0.5초 간격으로 껏다 켰다 하는 프로그램
--->>> GPIO_led.py  <<<-------------------------------
import RPi.GPIO as GPIO
import time
 
GPIO.setmode(GPIO.BCM)
 
LED = 18
 
GPIO.setup(LED, GPIO.OUT, initial=GPIO.LOW)
 
try:
    while 1:
      GPIO.output(LED, GPIO.HIGH) # 불 켜기
        time.sleep(0.5)
      GPIO.output(LED, GPIO.LOW) # 불 끄기
        time.sleep(0.5)
 
except KeyboardInterrupt:
    pass
 
GPIO.cleanup()