https://www.espressif.com/en/products/socs/esp32
ESP32 Wi-Fi & Bluetooth SoC | Espressif Systems
ESP32 A feature-rich MCU with integrated Wi-Fi and Bluetooth connectivity for a wide-range of applications
www.espressif.com
⚠️ ESP32 ADC 성능 문제점
1. 심한 노이즈 및 불안정성 📉
- 문제: 측정값에 상당한 노이즈가 많아 값이 크게 변동하고 불안정합니다. 심지어 입력 전압이 안정적일 때도 일관성이 떨어집니다.


void setup() {
Serial.begin(115200);
// ADC의 감쇠(Attenuation) 설정: 11db (가장 넓은 범위, 약 3.3V까지 측정 가능)
// 0db: 0 ~ 0.8V
// 2.5db: 0 ~ 1.1V
// 6db: 0 ~ 1.5V
// 11db: 0 ~ 3.3V (일반적으로 사용)
analogReadResolution(12); // ADC 해상도를 12비트 (0 ~ 4095)로 설정
analogSetAttenuation(ADC_11db);
}
void loop() {
// 1. 원시 ADC 값 읽기 (0 ~ 4095)
int rawValue[3];
rawValue[0] = analogRead(0);
rawValue[1] = analogRead(0);
rawValue[2] = analogRead(0);
// 결과 출력
Serial.println((rawValue[0] + rawValue[1] + rawValue[2]) / 3);
//Serial.println(rawValue[0]);
delay(10);
}
- 원인: ESP32의 디지털 로직과 가까이 통합되어 있어 디지털 스위칭 노이즈의 영향을 많이 받으며, 특히 Wi-Fi나 Bluetooth와 같은 무선 통신 기능이 활성화될 때 노이즈가 급증하는 경향이 있습니다.
2. 비선형성 (Non-linearity) 🎢
- 문제: ADC의 출력 디지털 값이 입력 아날로그 전압에 대해 선형적으로 비례하지 않습니다.
- 영향: 특히 측정 범위의 최저점과 최고점 근처에서 입력 전압 변화에 대한 출력 값의 변화율이 달라지므로, 간단한 선형 변환만으로는 정확한 전압을 계산하기 어렵습니다. 예를 들어, 최고 전압 (약 3.3V) 근처에서 전압 차이를 구별하기 어렵습니다.
3. ADC2 사용 제약 🚫
- 문제: Wi-Fi 기능이 활성화된 경우, ADC2에 연결된 GPIO 핀은 사용할 수 없습니다.
- 영향: 프로젝트에서 Wi-Fi를 사용한다면, 아날로그 입력용으로 ADC1 핀만 사용해야 합니다.
4. 해상도의 한계 📐
- 문제: ESP32의 내장 ADC는 12비트 해상도를 제공하지만, 실제 유효 비트 수(ENOB)는 노이즈 등으로 인해 이보다 훨씬 낮게 평가되는 경우가 많습니다.
- 영향: 이론적으로는 $2^{12} = 4096$ 단계로 전압을 나눌 수 있지만, 실제 정밀도는 이보다 떨어져 미세한 전압 변화를 정확하게 감지하기 어렵습니다.
✨ 완화 방법 (대안)
내장 ADC의 한계를 극복하거나 개선하기 위해 다음과 같은 방법을 고려할 수 있습니다:
- 멀티샘플링 및 평균화: 여러 번 빠르게 샘플링하여 평균값을 취함으로써 노이즈 영향을 줄입니다.
- 외부 ADC 사용: 높은 정확도, 정밀도, 선형성이 필요하다면 외부 고정밀 ADC 칩 (예: 16비트 이상의 해상도를 가진 칩)을 사용하는 것이 가장 확실한 해결책입니다.
- 캘리브레이션: 비선형성을 보정하기 위해 측정값을 보정(캘리브레이션)하는 과정을 적용합니다.
이러한 문제들 때문에, 정확하고 안정적인 아날로그 측정이 필수적인 애플리케이션에는 종종 ESP32의 내장 ADC 대신 외부 ADC를 사용하는 것이 권장됩니다.
'하드웨어 > MCU' 카테고리의 다른 글
| ESP32-C3 : MAC 추출 + SHA-256 해싱 (0) | 2025.10.28 |
|---|---|
| Raspberry Pi Pico Serial 장치 실패 (0) | 2025.10.13 |
| PIC12F675 : Microchip 8비트 PIC MCU (0) | 2025.09.21 |
| ATmega16-16AI : Microchip 8비트 AVR MCU (0) | 2025.09.21 |
| Espressif ESP32 (0) | 2025.08.30 |