TIL/Embedded

[임베디드] 디지털 입출력 예시

masacorgi 2025. 6. 10. 08:11

 

오늘은 이전에 배운 ADC(아날로그 입력) 값을 활용해서 디지털 출력 장치(LED, 릴레이, 부저 등)를 제어하는 실전 로직을 알아보는 날이다.
가장 기본이면서도 실무에 반드시 필요한 조건 제어의 첫 개념이라고 한다.

 

1. 개요: 아날로그 입력 → 디지털 출력

1.1 흐름도

[LM35 온도센서] → A0 → [아날로그값 → 온도 계산][온도 30도 이상이면 LED ON]

 

 

 

2. 구성 부품

  • LM35 (온도센서, 10mV/°C)
  • LED 또는 릴레이 모듈
  • 아두이노 (UNO/Nano 등)
  • A0, D2 핀 사용

 

3. 회로 연결

  • LM35 센서:
    • VCC → 5V
    • GND → GND
    • OUT → A0
  • LED:
    • (+) → D2 (Arduino 디지털 출력)
    • (–) → 220Ω 저항 → GND

 

 

4. 코드 예제 (Arduino)

const int tempPin = A0;  // LM35 연결 핀
const int ledPin = 2;    // LED 출력 핀

void setup() {
  Serial.begin(9600);
  pinMode(ledPin, OUTPUT);
}

void loop() {
  int raw = analogRead(tempPin);
  float voltage = raw * (5.0 / 1023.0);
  float tempC = voltage * 100.0;  // 10mV = 1°C

  Serial.print("Temp: "); Serial.print(tempC); Serial.println(" °C");

  if (tempC >= 30.0) {
    digitalWrite(ledPin, HIGH);  // 온도 30도 이상 → LED ON
  } else {
    digitalWrite(ledPin, LOW);   // 이하 → OFF
  }

  delay(1000);
}

 

 

 

5. 포인트 정리

5.1 입력: analogRead()

  • 0 ~ 1023 정수값
  • 기준 전압에 따라 해석 달라짐

5.2 출력: digitalWrite()

  • HIGH: 5V 출력 → LED ON
  • LOW: 0V 출력 → OFF

 

 

6. 실제 시나리오 응용

  • 온도 제어기: 30°C 이상이면 팬 작동
  • 스마트 히터: 20°C 이하이면 릴레이 작동
  • 습도 센서 + 경광등: 일정 습도 이하에서 경고등 점멸

 

 

7. 참고자료