본문 바로가기
  • Masacorgi 's Dev Bloggg
카테고리 없음

[임베디드] GPIO란 무엇인가?

by masacorgi 2025. 5. 17.

GPIO는 임베디드 시스템이나 IoT 개발에서 가장 기본적이고 자주 사용하는 개념 중 하나예요.


✅ GPIO란?

GPIOGeneral Purpose Input/Output의 약자로,
범용 입출력 핀을 의미합니다.

즉, 마이크로컨트롤러(MCU)나 보드(예: Raspberry Pi, ESP32, STM32 등)의 핀 중에서,
특정한 기능이 정해져 있지 않고 사용자가 입력 또는 출력으로 자유롭게 설정해서 사용할 수 있는 핀이에요.


📌 어떤 상황에서 사용되나요?

역할예시
입력 (Input) 버튼 누름 감지, 센서에서 신호 받기 (예: 적외선 센서)
출력 (Output) LED 켜기/끄기, 모터 구동, 릴레이 제어 등
 

🧠 GPIO의 주요 특징

  1. 디지털 값만 처리
    • HIGH (1, 전압 있음), LOW (0, 전압 없음)
    • 아날로그 값이 아니라 0 또는 1만 다룹니다.
  2. 모드 설정이 필요
    • 각 핀을 Input 또는 Output으로 설정해야 함.
    • 예: Arduino에서는 pinMode(4, OUTPUT) 처럼 설정.
  3. 멀티펑션 핀일 수 있음
    • 어떤 핀은 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 출력 등 기본적인 하드웨어 제어에 꼭 필요한 핵심 기능입니다.