ESP32는 입출력핀의 갯수와 용도도 많을 뿐더러 이를 응용한 모듈의 유형도 많아 입출력핀을 사용하는 방법이 좀 복잡하다.

 

아래는 ESP32칩을 사용한 기본 모듈인 WROOM32의 핀배열이고 각각의 용도를 표시한 것이다.

 

 

그러나 위 WROOM 32 모듈은 제품 양산용으로서 일반적인 아두이노 메이커들이 직접 사용하여 개발하기에는 불편하기 떄문에 여기에 USB연결장치, 정전압 레귤레이터, 2.54mm 사이즈 핀배열 기능을 추가한 ESP32개발용 보드들을 사용하게 되는데 이 개발용 보드들도 여러 종류가 있어 혼동스럽다. 다음은 일반적으로 많이 사용하는 36핀 ESP32 개발용 보드의 핀인데, 다른 개발용 보드들은 이와는 다른 핀배열을 가질 수 있으므로 반드시 보드에 표시된 GPIO번호를 정확히 확인하고 회로를 구성해야 한다.

 

 

 

ESP32 개발용보드에 표시된 각각의 GPIO핀들의 용도는 다음과 같다.

 

1.입력전용핀

 

GPIO34 에서 GPIO39 까지 6개의 핀은 입력전용으로 출력용도로 사용하면 안된다.

 

2.FLASH메모리 전용핀

 

GPIO6 에서 GPIO11 까지 6개의 핀은 WROOM-32 기본 모듈에서 FLASH메모리용으로 이미 사용하고 있는 핀이다. 개발용 보드에 간혹 이 GPIO6~GPIO11까지의 핀이 연결되어 표시된 경우가 있는데 이를 임의로 사용하면 안된다.

   -GPIO 6 ( SCK/CLK )

   -

3.터치센서용 핀

 

ESP32에는 10개의 터치센서가 내장되어 있다. 즉, 손가락으로 GPIO핀을 터치하면 정전용량를 감지하여 센서로 작동되므로 이 GPIO핀에 구리판 등을 연결하여 터치센서로 사용할 수 있다. 또한 이 터치센서 핀들은 Deep Sleep모드에서 깨어나기 위한 Wake up으로 사용될 수 있으므로 예를 들어 절전sleep 모드에 있다가 사람이 터치하면 깨어나 작동되는 자동화된 기기를 손쉽게 제작할 수 있게 된다.  

 

T0 (GPIO 4)
T1 (GPIO 0)
T2 (GPIO 2)
T3 (GPIO 15)
T4 (GPIO 13)
T5 (GPIO 12)
T6 (GPIO 14)
T7 (GPIO 27)
T8 (GPIO 33)
T9 (GPIO 32)    

 

4.ADC ( Analog to Digital Converter ) 핀

 

ESP8266에서는 10 bit 해상도의 ADC가 1개 있었는데 ESP32에서는 12bit 해상도 ADC가 무려 18 채널이 지원된다. 

12bit 해상도이므로 0~4095까지 구분( 10bit일떄에는 0~1023) 구분할 수 있다. 즉 0V는 0로 3.3V는 4094로 구분되므로훨씬 정교한 제어가 가능해 진다. 

 

ADC1_CH0 (GPIO 36)
ADC1_CH1 (GPIO 37)
ADC1_CH2 (GPIO 38)
ADC1_CH3 (GPIO 39)
ADC1_CH4 (GPIO 32)
ADC1_CH5 (GPIO 33)
ADC1_CH6 (GPIO 34)
ADC1_CH7 (GPIO 35)
ADC2_CH0 (GPIO 4)
ADC2_CH1 (GPIO 0)
ADC2_CH2 (GPIO 2)
ADC2_CH3 (GPIO 15)
ADC2_CH4 (GPIO 13)
ADC2_CH5 (GPIO 12)
ADC2_CH6 (GPIO 14)
ADC2_CH7 (GPIO 27)
ADC2_CH8 (GPIO 25)
ADC2_CH9 (GPIO 26)

   

 

5.DAC ( Digital to Analog Converter ) 핀

 

ESP32에는 8 bit 해상도의 2개의 DAC채널이 있어 디지털값을 아날로그 Volt값 출력으로 변환할 수 있다.

DAC1 (GPIO25)
DAC2 (GPIO26) 

 

6.RTC ( Real Time Clock ) 핀

 

ESP32는 RTC GPIO기능이 지원된다. ESP32 메인 프로세서가 deep sleep모드일 때에도 RTC GPIO핀들은 Ultra Low power co-Processor를 통해 메인 프로세서를 깨울 수가 있는데 다음과 같은 핀들을 통해 외부에서 이 wake up신호를 줄 수 있다.

 

RTC_GPIO0 (GPIO36)
RTC_GPIO3 (GPIO39)
RTC_GPIO4 (GPIO34)
RTC_GPIO5 (GPIO35)
RTC_GPIO6 (GPIO25)
RTC_GPIO7 (GPIO26)
RTC_GPIO8 (GPIO33)
RTC_GPIO9 (GPIO32)
RTC_GPIO10 (GPIO4)
RTC_GPIO11 (GPIO0)
RTC_GPIO12 (GPIO2)
RTC_GPIO13 (GPIO15)
RTC_GPIO14 (GPIO13)
RTC_GPIO15 (GPIO12)
RTC_GPIO16 (GPIO14)
RTC_GPIO17 (GPIO27)

 

7.PWM ( Digital to Analog Converter ) 핀

 

ESP32에는 16개의 PWM 채널이  지원되는데 각각의 채널은 각자 다른 특성의 PWM 신호를 생성할 수 있다. 즉 PWM 신호를 생성하려면 다음 사항을 지정해야 한다.  

 

PWM신호의 주파수

Duty cycle ( 출력하려는 값 )

PWM채널

PWM신호를 출력하려는 GPIO핀 번호    

 

PWM출력용 GPIO핀은 임의의 출력핀을 사용하면 되므로 입력전용핀인 GPIO 34 ~ 39번을 제외한 임의의 핀을 사용하면 된다.   

 

DAC1 (GPIO25)
DAC2 (GPIO26) 

 

8.I2C 통신용 핀

 

ESP32를 아두이노 IDE에서 사용할 때에는 다음과 같은 GPIO핀을 사용해야 한다.

 

GPIO 21 (SDA)
GPIO 22 (SCL)

 

9.SPI 통신용 핀

 

SPI용 핀은 다음과 같이 배치되어 있다.

 

SPI MOSI MISO CLK CS
VSPI GPIO 23 GPIO 19 GPIO 18 GPIO 5
HSPI GPIO 13 GPIO 12 GPIO 14 GPIO 15

10.인터럽트 

 

ESP32의 모든 GPIO핀은 인터럽트용으로 사용할 수 있다.

 

 

구매좌표 : 

 

 

US $3.6 26% OFF|ESP32 ESP 32 Development Board Wireless WiFi Bluetooth Dual Core CP2104 Filters Power Management Module 2.4GHz N

Smarter Shopping, Better Living! Aliexpress.com

www.aliexpress.com

 

 

아두이노 ESP-WROOM-32 와이파이 블루투스 듀얼 모듈

COUPANG

www.coupang.com

 

+ Recent posts