아날로그는 현실 세계 대부분의 물리량을 표현하며,
디지털은 MCU가 이해 가능한 이진 데이터이다.
아날로그 신호를 디지털 숫자 값으로 변환하는 장치
| 비트 수 | 표현 가능한 값의 개수 | 해상도 (Resolution) |
|---|---|---|
| 8-bit | 256 (0~255) | 약 0.013V |
| 10-bit | 1024 | 약 0.0032V |
| 12-bit | 4096 | 약 0.0008V |
해상도는 전압을 얼마나 정밀하게 측정할 수 있는지를 의미함
디지털 값을 전압의 형태로 변환하여 출력하는 장치
대부분의 MCU는 DAC를 직접 갖고 있지 않기 때문에
PWM + RC 필터를 이용하여 유사 아날로그 출력을 구현한다.
PWM은 디지털 신호이지만 Duty Cycle 조절을 통해 평균 전력을 제어할 수 있어 유사 아날로그 동작을 구현할 수 있다.
| PWM 주기 | Duty Cycle 30% | Duty Cycle 70% |
|---|---|---|
| 출력 평균 전압 ↓ | 출력 평균 전압 ↑ |
AnalogIn#include "mbed.h"
AnalogIn sensor(A0); // A0 핀에 아날로그 센서 연결
int main() {
while (1) {
float val = sensor.read(); // 0.0 ~ 1.0 사이 실수
uint16_t raw = sensor.read_u16(); // 0 ~ 65535 정수값 (16-bit 해상도)
wait(0.5);
}
}
| 메서드 | 설명 |
|---|---|
.read() | 0.0 ~ 1.0 사이 float 값 반환 |
.read_u16() | 0 ~ 65535의 16-bit 값 반환 |
실제 ADC는 10-bit 또는 12-bit 해상도인 경우도 있으나,
Mbed에서는 이를 내부적으로 16-bit로 정규화해서 반환한다.
AnalogOut주의:
AnalogOut은 DAC가 탑재된 보드에서만 작동
그렇지 않은 경우 PWM + 필터 방식으로 대체해야 함
#include "mbed.h"
AnalogOut speaker(PA_4); // DAC 출력 핀
int main() {
float val = 0.0;
while (1) {
speaker.write(val); // 0.0 ~ 1.0 사이 값 출력 (0V ~ Vref)
val += 0.01;
if (val > 1.0) val = 0.0;
wait(0.1);
}
}
[온도 센서]
↓ (전압)
[MCU A0 핀 → ADC]
↓ (디지털 값)
[프로그램에서 처리]
↓
[LCD에 온도 표시 or 출력 제어]
[디지털 PWM 생성 (e.g., 30%)]
↓
[RC 필터 → 평균 전압 생성]
↓
[모터 제어 or LED 밝기 조절]
아날로그 IO는 센서와 제어기가 현실 세계와 MCU를 연결해주는 다리 역할을 한다.
| 센서 | 측정 방식 | 입력 방식 | 출력 방식 |
|---|---|---|---|
| 조도센서 | 밝기 → 전압 | ADC | 디스플레이 |
| 서미스터 | 온도 → 저항 → 전압 | ADC | LCD |
| 스피커 | 음압 | DAC (또는 PWM) | 사운드 출력 |
| 모터 | 속도 제어 | PWM | 회전 제어 |
Analog IO는 단독으로는 의미 없고, 디지털 제어, RTOS, 인터럽트, 타이머 등과 결합되어 전체 시스템을 구성한다.
| 항목 | 설명 |
|---|---|
| Analog Signal | 연속값(전압 등), 현실 세계 대부분의 물리량 |
| Digital Signal | 0과 1로 구성된 이산 값 |
| ADC | 아날로그 입력 → 디지털 값으로 변환 |
| DAC | 디지털 값 → 아날로그 전압으로 출력 |
| PWM | 디지털 방식으로 아날로그 동작 흉내 (필터 연계 시 DAC 대체 가능) |
| 해상도 | ADC에서 측정 가능한 최소 단위 (bit 수 증가 → 정밀도 증가) |
| Mbed API | AnalogIn, AnalogOut 클래스 사용 |
| 센서 연계 | 온도, 빛, 소리 등 아날로그 센서와 직접 연결 |
| 출력 응용 | 스피커, 조명, 모터 등 구동 가능 |
| 시스템 연계 | 디지털 IO, 인터럽트, 타이머와 함께 현실 세계와 MCU를 연결함 |