از سری ماژول های وای فای و قبال برنامه ریزی در بازار مدل های ESP دارای مدل های متنوع با امکانات سخت افزاری متفاوت است که بسته به نوع کاربردتون میتونید از مدل های مورد نظر خودتون استفاده کنید .
در این مطلب به معرفی پایه های GPIO ماژول ESP32 میپردازیم. سوالی که برای کاربران در مورد نحوه کارکرد این سنسور پیش میاد اینه که ازکدوم پایه های GPIO این ماژول میتونن استفاده کنن و از کدوم پایه های نباید در پروژه خودتون به عنوان GPIO استفاده کنند.
البته تمام پایه های این ماژول ممکن است قابل استفاده نباشه اما در ادامه بخش های اصلی این ماژول شرح داده شده است.
- ۱۸ عدد Analog-to-Digital Converter (ADC) channels
- ۳ عدد SPI interfaces
- ۳ عدد UART interfaces
- ۲ عدد I2C interfaces
- ۱۶ عدد PWM output channels
- ۲ عدد Digital-to-Analog Converters (DAC)
- ۲ عدد I2S interfaces
- ۱۰ عدد Capacitive sensing GPIOs
در ادامه پایه های برد توسعه esp32 و ESP-WROOM-32 نشان داده شده است.
ESP-WROOM-32
پایه های ۳۴ تا ۳۹ فقط GPIS هستن به این معنی که فقط میتونن به عنوان ورودی استفاده شده و فاقد مقاومت ها درونی pull-ups or pull-down میباشد
- GPIO 34
- GPIO 35
- GPIO 36
- GPIO 37
- GPIO 38
- GPIO 39
SPI flash integrated on the ESP-WROOM-32
پایه های ۶ تا ۱۱ در برد توسعه ESP دیده میشه و به حافظه فلش از طریق پروتکل spi وصل هست و توضیه میشه از این پایه در پروژه هاتون استفاده نکنید
- GPIO 6 (SCK/CLK)
- GPIO 7 (SDO/SD0)
- GPIO 8 (SDI/SD1)
- GPIO 9 (SHD/SD2)
- GPIO 10 (SWP/SD3)
- GPIO 11 (CSC/CMD)
Capacitive touch GPIOs
ماژول Esp32 دارای ۱۰ پایه لمس خازنی هست به این صورت که شما با لمس این پایه ها توسط اجسامی که با الکتریکی دارند مثلا دست انسان ، اونو تشخیص بدین و براحتی یک کیبورد لمسی بسازید
- 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)
Analog to Digital Converter (ADC)
ماژول ESP32 دارای ۱۸ عدد مبدل دیجیتال به آنالوگ ADC با دقت ۱۲ بیتی هست به این صورت که دقت پله های این مبدل بین ۰ تا ۴۰۹۵ برای ولتاژ ۰ تا ۳.۳ ولت هست.
- 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)
البته دقت این مبدل ها به صورت خطی نبود و مشابه نمودار زیر هست
Digital to Analog Converter (DAC)
ماژول esp32 دارای ۲ مبدل دیجیتال به آنالوگ ۸ بیتی هست
- DAC1 (GPIO25)
- DAC2 (GPIO26)
RTC GPIOs
ماژول Esp32 دارای ۱۶ پایه RTC هست که به کمک اون میتونید موقعی که ماژول در حالت خواب عمیق deep sleep و حداقل مصرف انرژی قرار داد ، ماژول رو از حالت خواب خوارج کنید و بیدار کنید
- 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)
PWM
در ماژول esp32 میتونید تا ۱۶ پایه خروجی برای pwm که هر کدوم دارای مشخصات خاص خودش باشه استفاده کنید . البته این خاصیت در پایه های ۳۴ تا ۳۹ قابل استفاده نبود ولی در پایه های دیگر خروجی قاابل استفاده میباشد.
I2C
موقعی که به کمک Arduino IDE برای ماژول esp32 برنامه ریزی میکنید شما باید فقط از پایه های زیر برای پروتکل I2c استفاده کنید
- GPIO 21 (SDA)
- GPIO 22 (SCL)
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 |
Interrupts
تمامی پایه ها به عنوان اینتراپت قابل استفاده هست.
Enable (EN)
پایه فعال سازی یا EN در حالت عادی دارای ولتاژ ۳.۳ ولت به صورت پول اپ هست که برای فعال سازی لازمه اونو به کمک یه کلید یا پوش باتن به زمین وصل و قطع کنید
GPIO current drawn
حداکثر جریان خروجی هر پایه ۱۲ میلی آمپر بوده ولی توصیه میشه جریان خروجی از هر پایه رو حدود ۶ میلی امپر تنظیم کنید.
درصورت نیاز به مطالعه متن اصلی این پست میتونید به این لینک مراجعه کنید.