GPIO 기본 개념 - 1. 디지털 신호와 아날로그 신호의 차이

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

디지털 신호와 아날로그 신호의 차이

GPIO 핀은 일반적으로 **디지털 신호(0과 1)**를 주고받지만, 일부 마이크로컨트롤러(아두이노 등)에서는 **아날로그 신호(연속적인 전압 값)**도 처리할 수 있다.
이 두 가지 신호의 차이를 이해하는 것은 센서, LED, 모터 제어 등 GPIO를 활용한 프로젝트에서 매우 중요하다.


📌 1. 디지털 신호 (Digital Signal)

디지털 신호는 **이진수(0과 1)**로만 구성되며, GPIO 핀에서는 보통 HIGH(1) 또는 LOW(0) 값으로 표현된다.
이는 단순한 ON/OFF 상태를 나타내므로, 버튼, 스위치, LED 같은 장치를 제어하는 데 적합하다.

✔ 디지털 신호의 특징

✅ 신호가 0 또는 1 (LOW 또는 HIGH) 만 가질 수 있음.
✅ 일반적으로 3.3V 또는 5V가 HIGH(1), 0V가 LOW(0) 로 사용됨.
잡음(Noise)에 강하며, 신뢰성이 높음.
✅ 단순한 ON/OFF 상태만 표현 가능하여, 정확한 센서 데이터 측정에는 부적합.

💡 디지털 신호 활용 예시

버튼 입력 감지 → 버튼을 눌렀는가? (Yes: 1, No: 0)
LED 점멸 → LED가 켜져 있는가? (Yes: 1, No: 0)
릴레이 스위치 제어 → 특정 전자기기 ON/OFF


🔧 디지털 신호 읽기 예제 (C++)

아래 예제는 버튼이 눌렸는지(0 또는 1)를 감지하는 코드이다.

#include <wiringPi.h>

#define BUTTON_PIN 2  // GPIO 2번 핀

int main() {
    wiringPiSetup();
    pinMode(BUTTON_PIN, INPUT);  // GPIO 2번을 입력 모드로 설정

    while (1) {
        int buttonState = digitalRead(BUTTON_PIN);  // 버튼 상태 읽기
        if (buttonState == HIGH) {
            printf("버튼이 눌렸습니다!\n");
        }
        delay(100);  // 0.1초 간격으로 확인
    }
    return 0;
}

📌 2. 아날로그 신호 (Analog Signal)

아날로그 신호는 연속적인 값을 가지며, 일반적으로 전압(0V ~ 5V 등) 으로 표현된다.
센서(온도, 조도, 거리 센서 등)는 측정된 물리량을 연속적인 전압 값으로 출력하며, 이를 **아날로그-디지털 변환기(ADC)**를 사용하여 디지털 값으로 변환해야 한다.

✔ 아날로그 신호의 특징

✅ 신호가 **연속적인 값(0V ~ 5V 등)**을 가짐.
✅ 온도, 조도, 거리 등 정확한 센서 데이터 측정 가능.
✅ 노이즈(Noise)에 취약하여 필터링이 필요할 수 있음.
✅ 마이크로컨트롤러에 따라 ADC 기능이 없는 경우 별도의 ADC 칩 필요.

💡 아날로그 신호 활용 예시

온도 센서 → 온도 변화에 따라 전압이 0V~5V로 변함.
조도 센서 → 빛의 강도에 따라 출력값이 달라짐.
가변 저항 (Potentiometer) → 다이얼을 돌려 LED 밝기 조절 가능.


🔧 아날로그 신호 읽기 예제 (Arduino C)

아래 코드는 아두이노에서 온도 센서(아날로그 값)를 읽어오는 예제이다.

int sensorPin = A0;  // 아날로그 핀 A0 사용
int sensorValue;

void setup() {
    Serial.begin(9600);  // 시리얼 통신 시작
}

void loop() {
    sensorValue = analogRead(sensorPin);  // 아날로그 핀 A0에서 값 읽기 (0~1023)
    Serial.print("센서 값: ");
    Serial.println(sensorValue);
    delay(1000);
}

🔹 동작 방식
✅ 센서의 출력값(0~5V)을 아날로그 핀(A0)에서 읽음.
✅ ADC(Analog to Digital Converter)를 통해 0~1023 범위의 디지털 값으로 변환.
✅ 시리얼 모니터에 현재 센서 값을 출력.


📌 디지털 vs 아날로그 신호 비교

비교 항목 디지털 신호 아날로그 신호
신호 형태 0과 1 (이진수) 연속적인 값
전압 범위 0V 또는 5V 0V ~ 5V (변화 가능)
사용 예 버튼, LED, 릴레이 온도 센서, 조도 센서
장점 잡음에 강함, 신뢰성 높음 센서 데이터 정확하게 측정 가능
단점 ON/OFF만 가능 (세밀한 조정 불가) 노이즈에 취약

결론

  • 디지털 신호0 또는 1 (HIGH 또는 LOW) 만 가지며, 버튼/LED 제어에 적합하다.
  • 아날로그 신호연속적인 값(0V~5V) 을 가지며, 온도, 조도 등 센서 데이터 측정에 필수적이다.
  • 아날로그 신호를 처리하려면 ADC 변환 과정이 필요하다.
  • GPIO를 사용하여 디지털 및 아날로그 장치를 적절히 제어하면 다양한 프로젝트를 구현할 수 있다. 🚀