[MCU] ESP32 WIFI 사용시 아날로그 GPIO 오류
Board : ESP32-WROOM-DevKit
ESP 32 보드에서 TDS 센서를 사용하여 전기 전도도 값을 측정을 해야하는 작업이 있었다. 이때 샘플 코드로 작동하면 정상으로 작동하는데, WiFi를 활성화하면 정상적으로 센서의 값을 읽어오지 못하는 문제가 발생하였다. (정확히는 4095로 값이 고정되어 출력)
l 테스트 TDS 샘플 코드 : https://randomnerdtutorials.com/esp32-tds-water-quality-sensor/
해당 현상과 관련하여 검색해 보니, 일부 ESP32에서 WiFi를 활성화할 경우 일부 아날로그 GPIO핀이 정상적으로 동작하지 않는다고 한다. 이 문제를 해결하기 위해서는 동작가능한 다른 아날로그 GPIO 핀을 찾아서 사용하면 된다. 아래는 WiFi 활성화시 사용할 수 있는 핀번호이다. MCU 모델마다 다를 수 있으므로 참고 정도로만 생각하자.
l 사용 불가 Pin : 00, 02, 04, 12, 13, 14, 15, 25, 26
l 사용 가능 Pin : 32, 33, 34, 35, 36, 39
문제 원인을 알았을 때에는 해결방법이 매우 간단하였지만, 처음에는 소스코드의 오류인지, 센서 기계 자체의 오류인지, 아니면 출력하는 데에서 표시 오류인지 등 증상에 대한 원인을 파악하지 못해서 한참 동안 헤맸었다. (중국산 센서들의 불량이 많았던 터라.) 아두이노를 사용하여 제품을 구성할 경우, 소프트웨어 오류인지, 하드웨어 오류인지부터 확인이 필요하다.
[참고자료]
l ESP32 with TDS Sensor (Water Quality Sensor) : https://randomnerdtutorials.com/esp32-tds-water-quality-sensor/
l ESP32 WiFi initialization disrupting GPIO analog reading : https://stackoverflow.com/questions/69782306/esp32-wifi-initialization-disrupting-gpio-analog-reading
2025-03-06 / Sungwook Kang / http://sungwookkang.com
아두이노, ESP32, Arduino, MCU, ESP32 GPIO, ESP32 Pin Map, 핀맵, Pinout Diagram, TDS, 전기전도
'Embedded' 카테고리의 다른 글
[MCU] ESP32 핀맵 (Pinout Diagram) 정리 (0) | 2025.01.03 |
---|---|
Arduino IDE 설치 및 세팅 (with ESP32 보드) (0) | 2023.06.10 |