GPIO는 임베디드 시스템이나 IoT 개발에서 가장 기본적이고 자주 사용하는 개념 중 하나예요.
✅ GPIO란?
GPIO는 General Purpose Input/Output의 약자로,
범용 입출력 핀을 의미합니다.
즉, 마이크로컨트롤러(MCU)나 보드(예: Raspberry Pi, ESP32, STM32 등)의 핀 중에서,
특정한 기능이 정해져 있지 않고 사용자가 입력 또는 출력으로 자유롭게 설정해서 사용할 수 있는 핀이에요.
📌 어떤 상황에서 사용되나요?
역할예시
입력 (Input) | 버튼 누름 감지, 센서에서 신호 받기 (예: 적외선 센서) |
출력 (Output) | LED 켜기/끄기, 모터 구동, 릴레이 제어 등 |
🧠 GPIO의 주요 특징
- 디지털 값만 처리
- HIGH (1, 전압 있음), LOW (0, 전압 없음)
- 아날로그 값이 아니라 0 또는 1만 다룹니다.
- 모드 설정이 필요
- 각 핀을 Input 또는 Output으로 설정해야 함.
- 예: Arduino에서는 pinMode(4, OUTPUT) 처럼 설정.
- 멀티펑션 핀일 수 있음
- 어떤 핀은 GPIO 외에도 UART, I2C, PWM, ADC 등 다른 기능도 지원합니다.
- 이런 경우 핀맵 설정을 잘 해야 충돌을 피할 수 있어요.
🔧 예시 코드 (아두이노 기준)
// LED를 13번 핀에 연결했다고 가정
void setup() {
pinMode(13, OUTPUT); // 13번 핀을 출력으로 설정
}
void loop() {
digitalWrite(13, HIGH); // LED ON
delay(1000);
digitalWrite(13, LOW); // LED OFF
delay(1000);
}
이 코드는 13번 핀에 연결된 LED를 1초마다 켜고 끄는 간단한 예입니다.
digitalWrite()는 출력할 값을 설정하는 함수고, digitalRead()는 입력값을 읽을 때 사용합니다.
🎯 요약
GPIO란?
MCU나 보드에서 사용자가 입출력으로 자유롭게 제어할 수 있는 범용 핀입니다.
센서 입력, 버튼 제어, LED 출력 등 기본적인 하드웨어 제어에 꼭 필요한 핵심 기능입니다.