GPIO는 General Purpose Input / Output 의 약자이다. 말 그대로 범용 입출력 인터페이스이다.
PCB, ICT보드 등 다양한 전자기판에서 내부 회로 이외 외부적으로 물리적으로 소통할 수 있는 장치로, 이를 이용해서 LED, Motor 다양한 물리적 외부 장치들에 대해서 배선하고 연결하여 제어할 수 있다.
Raspberry Pi의 GPIO 핀 배열은 다음과 같다.
SSH나 Terminal에서 ‘pinout’ 명령어로도 핀배열을 확인할 수 있다.
Raspberry Pi의 GPIO를 사용하여 LED를 제어하는 실습을 해보겠다.
다음과 같이 회로를 연결한다.
Raspberry Pi에 VSC로 원격 연결하고, 다음 코드를 실행한다. (Python 코드 실행을 위해 Raspberry pi에 python extension 설치가 필요할 수도 있다.)
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BOARD)
LED = 11
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()