라즈베리파이, 아두이노

라즈베리파이 GPIO 전류 기준 정리

포도알77 2026. 8. 9. 16:29

본문 중간의 쿠팡 추천 상품 구매시 쿠팡 파트너스에서 일정액의 수수료를 제공받습니다.

라즈베리파이 GPIO에 LED, 센서, 릴레이 보드, 모터 드라이버를 붙일 때 먼저 봐야 할 기준은 전압과 전류입니다. GPIO는 편리하지만 전원 출력 단자가 아닙니다. 작은 회로라도 전압 레벨과 부하 전류를 잘못 잡으면 핀이나 보드가 손상될 수 있습니다.

결론부터 말하면 일반 GPIO 신호는 3.3V 기준으로 다뤄야 합니다. 5V 신호를 GPIO 입력에 직접 넣지 말고, LED에는 전류 제한 저항을 두며, 모터나 릴레이 같은 부하는 GPIO가 직접 구동하지 않게 설계하는 것이 기본입니다.

GPIO는 어떤 전압 기준으로 봐야 할까

Raspberry Pi 공식 하드웨어 문서 기준으로 40핀 헤더의 일반 GPIO는 3.3V 핀입니다. 출력으로 설정하면 high는 3.3V 쪽으로, low는 0V 쪽으로 구동하려고 합니다. 입력으로 사용할 때도 3.3V 로직 신호를 전제로 봐야 합니다.

40핀 헤더에는 5V 전원 핀도 있지만, 이것은 주변 장치에 전원을 공급하기 위한 핀입니다. 5V 전원 핀이 있다는 이유로 GPIO 입력이 5V를 받아도 된다고 해석하면 안 됩니다. 5V 센서나 다른 보드의 5V 로직 출력을 읽어야 한다면 레벨 시프터, 분압 회로, 3.3V 호환 출력 같은 조건을 먼저 확인해야 합니다.

전류는 왜 조심해야 할까

GPIO 출력은 전압을 만들어 주는 신호 핀에 가깝습니다. 연결된 부하가 전류를 얼마나 요구하는지는 저항, 회로 구성, 부품 특성에 따라 달라집니다. 그래서 LED 하나를 켤 때도 전류 제한 저항 없이 GPIO와 GND 사이에 바로 연결하는 방식은 피해야 합니다.

공식 문서는 GPIO와 단순 부품 연결은 가능하지만 LED에는 전류 제한 저항이 필요하고, 모터는 GPIO에 직접 연결하지 말고 H-bridge 회로나 모터 컨트롤러를 사용하라고 경고합니다. 릴레이 코일, DC 모터, 솔레노이드처럼 순간 전류가 크거나 유도성 부하인 장치는 별도 구동 회로가 필요합니다.

연결 대상 무난한 기준 주의할 점
LED 전류 제한 저항을 직렬로 둔다 저항 없이 직접 연결하지 않는다
버튼, 스위치 입력 모드와 pull-up 또는 pull-down을 명확히 정한다 떠 있는 입력 상태를 방치하지 않는다
3.3V 센서 전원, GND, 신호 레벨을 데이터시트와 맞춘다 통신 핀의 alternate function 충돌을 확인한다
5V 센서 출력 3.3V로 낮춘 뒤 GPIO에 입력한다 5V 로직을 GPIO에 직접 넣지 않는다
모터, 릴레이 드라이버 회로와 별도 전원을 사용한다 GPIO가 부하 전류를 직접 공급하게 만들지 않는다

drive strength는 전류 제한값일까

Raspberry Pi 문서에는 GPIO pad의 drive strength가 2mA부터 16mA까지의 형태로 설명됩니다. 이 값을 전류 제한 장치처럼 이해하면 위험합니다. 공식 문서는 drive strength가 최대 전류를 뜻하는 것이 아니라, 해당 전류 조건에서 출력 전압 규격을 만족한다는 의미라고 설명합니다.

예를 들어 drive strength를 낮게 잡았는데 외부 회로가 더 큰 전류를 요구하면 출력 high 전압이 충분히 올라가지 않을 수 있습니다. 반대로 핀이 high인 상태에서 GND로 쇼트되면 핀이 스스로 안전하게 전류를 제한한다고 기대하면 안 됩니다. 출력 핀은 부하가 요구하는 전류를 밀어내려 하며, 내부 저항과 회로 조건에 따라 위험한 상태가 될 수 있습니다.

 

 

모델별 숫자는 어떻게 다를까

Raspberry Pi 모델에 따라 GPIO 전기적 특성 표가 다릅니다. 공식 문서의 BCM2835, BCM2836, BCM2837, RP3A0 계열 표와 BCM2711 기반 4시리즈 표는 입력 high 전압, 출력 전압 조건, pull-up과 pull-down 저항 범위 같은 항목을 별도로 제시합니다.

실무 기준은 간단합니다. 글이나 예제에서 본 숫자를 모든 모델에 그대로 적용하지 말고, 사용하는 보드의 SoC와 공식 표를 확인해야 합니다. 특히 Compute Module처럼 설계자가 외부 회로를 직접 구성하는 제품군은 관련 데이터시트를 함께 봐야 합니다.

부팅 때 GPIO 상태를 고정할 수 있을까

config.txtgpio directive는 부팅 시 GPIO 핀의 입력, 출력, alternate function, 출력 high/low, pull-up, pull-down 같은 상태를 지정할 수 있습니다. 예를 들어 특정 핀을 출력 high로 두거나 입력 pull-up으로 두는 식의 초기 상태 지정에 쓸 수 있습니다.

gpio=12=op,dh
gpio=18,20=pu
gpio=17-21=ip

다만 이 설정이 커널의 GPIO 사용자 공간 인터페이스를 직접 내보내는 것은 아닙니다. 공식 문서는 이 방식으로 만든 GPIO 변경이 커널에 직접 효과를 주지 않으며, Device Tree의 pinctrl 항목이나 pinctrl 유틸리티가 덮어쓸 수 있다고 설명합니다. 따라서 부팅 초기에 잠깐 필요한 기본 상태와, 드라이버가 장치를 잡은 뒤의 상태를 구분해서 봐야 합니다.

권한과 핀 번호도 같이 확인해야 한다

GPIO를 프로그램에서 사용하려면 계정 권한도 확인해야 합니다. Raspberry Pi 문서는 GPIO 포트를 사용하려면 사용자가 gpio 그룹에 속해야 하며, 기본 사용자 계정은 기본적으로 포함된다고 설명합니다. 다른 사용자 계정으로 서비스를 실행한다면 그룹 권한을 확인해야 합니다.

sudo usermod -a -G gpio 사용자명

핀 번호도 혼동하기 쉽습니다. 물리 핀 번호와 Broadcom GPIO 번호는 다릅니다. Raspberry Pi OS에서는 pinout 명령으로 보드의 40핀 헤더 참조를 확인할 수 있습니다. 회로도, 예제 코드, 라이브러리 문서가 어떤 번호 체계를 쓰는지 먼저 맞춰야 배선 실수를 줄일 수 있습니다.

자주 묻는 질문

GPIO 한 핀에서 16mA까지 쓰면 항상 안전할까

그렇게 단순하게 보면 안 됩니다. 공식 문서의 drive strength 설명은 전류 제한 장치가 아니라 전압 규격을 만족하는 조건에 가깝습니다. 부하 종류, 총 전류, 보드 모델, 배선 상태를 함께 봐야 합니다.

5V 릴레이 모듈의 입력 핀을 GPIO에 바로 연결해도 될까

모듈마다 다릅니다. 입력 신호가 3.3V로 확실히 인식되는지, GPIO 쪽으로 5V가 역류하지 않는지, 릴레이 코일 전류를 별도 전원과 구동 회로가 처리하는지 확인해야 합니다. 데이터시트나 회로도가 불분명하면 직접 연결하지 않는 편이 안전합니다.

pull-up 저항을 내부 설정만 써도 될까

버튼 입력처럼 느린 신호에는 내부 pull-up이나 pull-down이 충분한 경우가 많습니다. 하지만 긴 배선, 노이즈가 큰 환경, 통신 버스, 특정 센서 요구 조건이 있으면 외부 저항과 회로 권장값을 확인해야 합니다.

정리

라즈베리파이 GPIO의 기본 판단 기준은 3.3V 로직, 부하 전류 제한, 직접 구동 금지입니다. LED에는 저항을 두고, 5V 신호는 레벨을 낮추며, 모터와 릴레이는 드라이버 회로로 분리하는 방식이 무난합니다.

drive strength는 전류를 안전하게 제한하는 스위치가 아닙니다. 출력 전압 규격을 만족하는 조건으로 이해하고, 실제 회로에서는 부품 데이터시트와 사용하는 보드의 공식 전기적 특성 표를 함께 확인하는 것이 좋습니다.

반응형
페이스북으로 공유카카오톡으로 공유카카오스토리로 공유트위터로 공유URL 복사