라즈베리파이 GPIO 기초: 3.3V 로직, 5V 연결 주의, 풀업·풀다운, 파이썬 LED 제어

TUREFF• •0
라즈베리파이 기판 가장자리에 줄지어 있는 40개 핀이 GPIO 헤더입니다. 여기에 LED, 버튼, 센서를 연결하면 컴퓨터가 바깥 세상과 직접 신호를 주고받게 됩니다. 처음 다룰 때 반드시 알아야 할 전압 규칙과 기본 개념을 정리했습니다.

GPIO가 뭔가요?

GPIO는 범용 입출력 핀이라는 뜻입니다. 프로그램으로 핀을 출력으로 정하면 전압을 내보내 LED를 켜고, 입력으로 정하면 버튼이 눌렸는지 읽을 수 있습니다. 40개 핀이 모두 GPIO는 아니고, 3.3V 전원 핀, 5V 전원 핀, GND 핀이 섞여 있습니다. 연결하기 전에 공식 문서의 핀 배치도를 옆에 두고 확인하세요. 핀 번호를 부르는 방식이 두 가지라는 점도 헷갈리기 쉽습니다. 헤더의 물리적 위치 번호(1~40번)와 칩 기준의 GPIO 번호(GPIO17 등)가 다릅니다. 예제가 어느 방식을 쓰는지 꼭 확인하세요.

가장 중요한 규칙: GPIO는 3.3V입니다

라즈베리파이의 GPIO는 3.3V 로직으로 동작합니다. 출력을 켜면 3.3V, 끄면 0V가 나옵니다. 그리고 입력 핀에 5V 신호를 직접 넣으면 안 됩니다. GPIO에는 과전압 보호 회로가 없어서 5V가 들어가면 핀이나 보드 전체가 손상될 수 있습니다.
  • 헤더에 있는 5V 핀은 전원 공급용입니다. 이 핀을 GPIO 입력에 바로 연결하지 마세요.
  • 5V로 동작하는 센서나 아두이노 같은 5V 보드와 신호를 주고받을 때는 레벨 변환 모듈이나 저항 두 개로 만드는 전압 분배 회로로 3.3V 이하로 낮춰야 합니다.
  • 모듈을 살 때 3.3V 로직을 지원하는지 먼저 확인하세요.

전류도 작습니다

GPIO는 신호용이라 큰 전류를 낼 수 없습니다. LED 하나 정도가 한계이고, LED에도 반드시 저항을 달아야 합니다. 모터, 릴레이, 많은 수의 LED는 트랜지스터나 드라이버 모듈을 거쳐 별도 전원으로 구동하세요. 정확한 허용 전류는 모델별 공식 문서를 확인하는 것이 좋습니다.

풀업과 풀다운: 입력 핀의 기본 상태 정하기

버튼을 GPIO 입력에 연결만 하면 버튼을 누르지 않았을 때 핀이 어디에도 연결되지 않은 떠 있는 상태가 됩니다. 이때는 주변 잡음 때문에 값이 1과 0 사이를 제멋대로 오갑니다.
  • 풀업: 저항으로 핀을 3.3V 쪽에 약하게 연결해 두어 평소에는 1(HIGH)로 읽히게 합니다. 버튼은 핀과 GND 사이에 달아, 누르면 0이 됩니다.
  • 풀다운: 저항으로 핀을 GND 쪽에 연결해 평소에는 0으로 읽히게 하고, 버튼을 3.3V와 핀 사이에 달아 누르면 1이 됩니다.
라즈베리파이는 대부분의 GPIO에서 내부 풀업·풀다운 저항을 소프트웨어로 켤 수 있어 외부 저항 없이도 해결됩니다. 다만 GPIO2와 GPIO3은 고정 풀업 저항이 달려 있으니 버튼용으로 쓸 때 참고하세요.

파이썬으로 LED 켜기: 개념

라즈베리파이 OS에는 파이썬이 기본으로 들어 있고, GPIO를 쉽게 다루는 라이브러리를 쓸 수 있습니다. 입문용으로는 gpiozero 라이브러리가 많이 쓰입니다. LED, 버튼 같은 부품을 이름 그대로 다루는 방식이라 코드가 짧습니다. 회로는 GPIO 핀 하나에서 저항을 거쳐 LED의 긴 다리(+)로, LED의 짧은 다리(-)는 GND로 연결합니다. 코드의 흐름은 이렇습니다.
  1. 라이브러리에서 LED 기능을 불러옵니다.
  2. LED가 연결된 GPIO 번호로 LED 객체를 만듭니다. 예를 들어 led = LED(17)처럼 씁니다.
  3. led.on()으로 켜고, led.off()로 끄고, led.blink()로 깜빡이게 합니다.
  4. 버튼도 같은 방식으로 Button 객체를 만들어, 눌렸을 때 LED를 켜도록 연결할 수 있습니다.
예전 자료에서 자주 보이는 RPi.GPIO 라이브러리는 라즈베리파이 5에서는 그대로 동작하지 않는다는 이야기가 많습니다. 5에서는 입출력을 별도 칩이 담당하도록 구조가 바뀌었기 때문입니다. 오래된 예제가 안 될 때는 라이브러리 호환 여부부터 확인하세요.

안전하게 실습하는 습관

  • 배선을 바꿀 때는 운영체제를 종료하고 전원을 분리합니다.
  • 3.3V 또는 5V 핀과 GND 핀이 바로 이어지지 않게 조심하세요. 단락되면 보드가 꺼지거나 손상됩니다.
  • 헤더 핀에 직접 선을 꽂기보다 브레드보드와 연장 커넥터를 쓰면 실수를 줄일 수 있습니다.
  • 금속 책상 위나 정전기가 많은 환경에서는 작업하지 마세요.

연결하기 전 마지막 확인

전원을 넣기 전에 배선을 한 번 더 손가락으로 짚어 가며 확인하세요. 3.3V·5V·GND 핀 위치, LED 방향과 저항, 입력 핀에 들어가는 전압이 3.3V 이하인지만 봐도 대부분의 사고를 막을 수 있습니다. GPIO로 처음 만든 것이 무엇인지, 5V 장치를 연결하면서 쓴 방법이 있다면 댓글로 나눠 주세요. 핀 하나 아끼는 요령이 다른 분들께 큰 도움이 됩니다.

Comments (0)