GPIO 개요 - 1. GPIO란? (General Purpose Input/Output 개념)

2025. 2. 11. 11:19프로그래밍/시스템

GPIO란? (General Purpose Input/Output 개념)

1. GPIO의 정의

GPIO는 General Purpose Input/Output의 약자로, 마이크로컨트롤러나 임베디드 시스템에서 외부 장치와 디지털 신호를 주고받기 위해 사용되는 핀을 의미한다.
GPIO 핀을 활용하면 하드웨어 장치(센서, LED, 모터 등)와 상호작용하며 전기적 신호를 제어할 수 있다.

2. GPIO의 특징

GPIO 핀은 기본적으로 입력(Input) 또는 출력(Output) 상태로 설정할 수 있으며, 특정 장치와의 인터페이스에 따라 동작 방식이 달라진다.

  • 디지털 신호(High 또는 Low)만을 주고받을 수 있음
    • HIGH (1, 전압 인가) → 일반적으로 3.3V 또는 5V
    • LOW (0, 전압 없음) → 0V (GND, 그라운드)
  • 특정 기능이 없는 범용(General Purpose) 핀으로, 사용자가 목적에 따라 원하는 동작을 설정해야 함.
  • 일부 GPIO 핀은 특수 기능(PWM, I2C, SPI, UART 등) 을 지원하기도 함.

3. GPIO의 기본 동작 모드

GPIO 핀은 크게 입력 모드(Input Mode)출력 모드(Output Mode) 두 가지로 설정된다.

① 입력 모드 (Input Mode)

GPIO를 입력 모드로 설정하면 외부 장치에서 신호를 받아들이는 역할을 한다.
센서, 버튼, 스위치 등의 값을 읽어 프로그램에서 이를 처리할 수 있다.

예를 들어, 버튼을 누르면 HIGH(1, 3.3V) 신호가 입력되거나, 누르지 않으면 LOW(0, 0V) 신호가 들어올 수 있다.

pinMode(2, INPUT);  // GPIO 2번 핀을 입력 모드로 설정
int state = digitalRead(2);  // GPIO 2번 핀의 상태를 읽음

② 출력 모드 (Output Mode)

GPIO를 출력 모드로 설정하면 외부 장치로 신호를 보낼 수 있다.
LED를 켜거나, 모터를 회전시키는 등의 동작을 수행할 수 있다.

pinMode(2, OUTPUT);  // GPIO 2번 핀을 출력 모드로 설정
digitalWrite(2, HIGH);  // GPIO 2번 핀을 HIGH 상태(전압 인가)로 변경 (LED ON)
delay(1000);
digitalWrite(2, LOW);  // GPIO 2번 핀을 LOW 상태(전압 제거)로 변경 (LED OFF)

4. GPIO의 활용 예시

GPIO 핀을 활용하면 다음과 같은 장치와 연결하여 다양한 동작을 구현할 수 있다.

GPIO 역할 사용 예시
입력 (Input) 버튼, 터치 센서, 온도 센서, 적외선 감지 센서
출력 (Output) LED 점멸, 모터 회전, 릴레이 제어
PWM (출력 변형) 서보 모터 제어, LED 밝기 조절
인터럽트 버튼 입력 감지, 센서 이벤트 처리
통신 (I2C, SPI, UART) 디스플레이, 외부 저장장치, 센서 연결

5. GPIO의 장점과 한계

장점

  • 간단한 배선과 설정만으로 다양한 전자 장치를 제어할 수 있음.
  • 저전력으로 동작하여 효율적임.
  • 별도의 하드웨어 없이 프로그램을 통해 직접 제어 가능.

한계점

  • 아날로그 신호를 직접 받을 수 없음 (ADC가 필요).
  • 전류 제한이 있어 직접 높은 전류를 공급할 수 없음 (릴레이, 트랜지스터, 드라이버 IC 필요).
  • GPIO 핀 수 제한 (라즈베리파이는 40개, 아두이노는 14개 등).

6. 결론

GPIO는 마이크로컨트롤러나 임베디드 보드에서 다양한 장치와의 연결을 가능하게 하는 핵심 인터페이스이다.
입력/출력 모드 설정을 통해 버튼, 센서, LED, 모터 등을 쉽게 제어할 수 있으며,
이를 활용하여 스마트홈, 로봇, IoT, 보안 시스템 등 다양한 프로젝트를 구현할 수 있다. 🚀