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, 보안 시스템 등 다양한 프로젝트를 구현할 수 있다. 🚀
'프로그래밍 > 시스템' 카테고리의 다른 글
GPIO 개요 - 3. GPIO가 사용되는 대표적인 플랫폼 (0) | 2025.02.11 |
---|---|
GPIO 개요 - 2. GPIO의 주요 역할 및 활용 사례 (0) | 2025.02.11 |
시리얼 통신 실전 응용 및 마무리 - 3. 무선 시리얼 통신 (블루투스, LoRa) 및 추가 학습 자료 안내 (0) | 2025.02.10 |
시리얼 통신 실전 응용 및 마무리 - 2. RS-485를 활용한 다중 노드(Multi-Drop) 통신 실전 예제 (0) | 2025.02.10 |
시리얼 통신 실전 응용 및 마무리 - 1. 산업 자동화 및 PLC와의 연결 (0) | 2025.02.10 |