관리 메뉴

IT창고

라즈베리파이3로 GPIO제어하기 (LED사용) 2편 파이썬 본문

라즈베리파이

라즈베리파이3로 GPIO제어하기 (LED사용) 2편 파이썬

방구석여포 2017. 8. 7. 21:22

이전에서 라즈베리파이GPIO로 간단하게 LED점등을 해보았습니다.

2017/08/07 - [라즈베리파이3] - 라즈베리파이3로 GPIO제어하기 (LED사용) 1편 기본

이번에는 LED점등을 직접 파이썬으로 제어해보기로 하겠습니다.

 

라즈베리파이에서 GPIO라이브러리(RPI.GPIO)를 사용하겠습니다.

먼저 PUTTY창에 sudo apt-get install rpi.gpio를 입력합니다. (제어SW설치)

PUTTY창에서 python을 입력하면 >>> 이 나옵니다 여기에 명령어를 입력하면 되는데

(만약 라즈베리파이에 파이썬을 설치안했다면 sudo apt-get install python3입력)

dir(GPIO)나 help(...)를 입력하면 함수 사용방법에 대한 도움말을 보여줍니다. 간단히 정리하면

 

PRi.GPIO
​GPIO.setmode(GPIO.BOARD) 핀 번호indexing을 board기준으로 설정
GPIO.setmode(GPIO.BCM) 핀번호 indexing을 CPU기준으로 설정

GPIO.setup(n,GPIO.OUT) 핀 번호 n을 출력으로 설정
GPIO.setup(n,GPIO.IN) 핀 번호 n을 입력으로 설정
GPIO. cleanup() GPIO핀의 설정을 초기화

GPIO.setup(n, GPIO.IN, pull_up_down=GPIO.PUD_UP) 핀 번호n을 내부 풀업 입력으로 설정

 

형식으로 사용하게 됩니다.

 

간단한 예로

GPIO.output(n,1) 핀 번호 n의 출력을 high로 설정 (GPIO.HIGH, 1, True)로도 가능
GPIO.output(n,0) 핀 번호 n의 출력을 low로 설정

이러한 형식입니다.

 

소스코딩을 PUTTY창에 하나씩 nano text editor로 쓰면 불편하니 이럴때 NotePad++을 사용하면 좋습니다. 라즈베리와 연결시켜 파이썬 파일을 하나 만듭니다.

 

import RPi.GPIO as GPIO
from time import sleep      #sleep함수를 사용하기위한 모듈import

PIN = 38                    #핀번호 입력
GPIO.setmode(GPIO.BOARD)    #핀 번호indexing을 board기준으로 설정
GPIO.setup(PIN,GPIO.OUT)    #38번 핀 출력설정

try:
   while True:              #무한루프
        GPIO.output(PIN,0)  #38번핀을 low로 출력 (LED ON상태)
        sleep(0.2)          #200msec 딜레이
        GPIO.output(PIN,1)  #38번 핀을 high로 출력(LED OFF상태)
        sleep(0.2)
        
except KeyboardInterrupt:   #Ctrl + c 를 누르면 들어간다
    GPIO.cleanup()          #GPIO 핀 초기화

 

위의 소스로 핀번호를 직접 제어하면서 LED를 점등시키는 소스를 만들었습니다.

이제 PUTTY창으로 가서 위의 소스파일이 저장된 곳으로가서 파일을 실행 시켜봅니다.

실행법은 python LEDtest(파일이름).py 로 입력하면 py파일이 실행됩니다.

 

 

Comments