راهنمای جامع پایه های ماژول ESP8266

در این بخش با معرفی پایه های ماژول ESP8266، نوع عملکرد و میزان اولویت در استفاده از پین های این ماژول پرکاربرد در پروژه‌های کنترل از راه دور و اینترنت اشیاء، را بیان می‌نماییم.

 یکی از مشخصات جالب ماژول ESP8266 NodeMCU، داشتن تعداد پین ‌های GPIO نسبتاً زیاد است. این قابلیت باعث می‌شود نیاز به مالتی پلکس کردن (ارسال هم زمان چند سیگنال از یک مسیر) پایه‌های ورودی/خروجی به حداقل برسد؛ اما شاید برای شما هم این سؤال پیش آمده باشد که برای پروژه در حال انجام، از کدام پایه می‌توانیم استفاده کنیم؟ برای یافتن پاسخ این سؤال و دانستن نکات مهم هنگام استفاده از این پایه ها، مطالب جمع آوری شده در این مرجع یادگیری می‌تواند بسیار مفید واقع شود:

توجه:

لطفا دقت داشته باشید، این مرجع معرفی پایه های ورودی و خروجی برای برد توسعه NodeMCU با ماژول وای فای ESP8266 که دارای۳۰ پایه می‌باشد، تهیه شده است.

اجزای یک ماژول ESP8266 NodeMCU

اگر از برد توسعه دیگری استفاده می‌کنید، ممکن است برد شما همه پین‌ ها را در اختیار شما قرار ندهد، اما جدا از اینکه چه بردی در اختیار دارید، هر پین به شکل یکسان کار می‌کند.

قابلیت‌های جانبی پایه های ماژول ESP8266

ماژول ESP8266 NodeMCU در کل دارای ۱۷ پایه ‌GPIO است که از طریق پین‌ هدرهای موجود در دو طرف برد توسعه در دسترس قرار دارند. به این پایه‌ ها می‌توان وظایف مختلفی تخصیص داد که شامل موارد زیر می‌شود:

تعداد پایه نام پایه GPIOوظیفه
1 کانال ADC کانال “مبدل آنالوگ به دیجیتال” از نوع تقریب‌های متوالی (SAR) می‌باشد.
2 رابط UART رابط UART با پشتیبانی از flow control استفاده می‌شود.
4 خروجی PWMپایه PWM برای کنترل سرعت موتورها یا روشنایی LEDها مورد استفاده قرار می‌گیرد.
3 (2) رابط SPI و (۱) رابط I2Cرابط‌های SPI و I2C برای اتصال سنسورها و قطعات جانبی مختلف‌ می‌باشند.
1رابط I2Sرابط I2S برای اضافه کردن قابلیت صدا به پروژه شما کاربرد دارد.

البته به یاد داشته باشید که به لطف قابلیت مالتی پلکس کردن پایه‌ های ESP8266، امکان اشتراک‌گذاری یک پایه GPIO بین چند قطعه جانبی وجود دارد و یک پایه می‌تواند به‌عنوان پایه‌ های I2C ،I2C ،UART PWM و… عمل کند. (شما با دانلود دیتاشیت ESP8266 می‌توانید اطلاعات بیشتری را در این زمینه مطالعه و کسب نمایید.)

معرفی پایه های ماژول ESP8266

ماژول برد ESP8266 NodeMCU در مجموع دارای ۳۰ پایه است. برای نمایش ساده‌تر در تصویر زیر پایه‌ هایی که عملکرد یکسانی دارند را با رنگ‌‌هایی متفاوت، گروه‌بندی کرده‌ایم:

تقسیم‌بندی پایه های ماژول ESP8266 از لحاظ نوع عملکرد هریک

هم‌اکنون که با نام و مکان هر پایه آشنا شدید، بیایید تا با معرفی پایه های ESP8266 نگاه دقیق‌تری به عملکرد آن‌ها داشته باشیم:

پایه‌ های GPIO در ماژول ESP8266

ماژول ESP8266 NodeMCU دارای 17 پایه ورودی/خروجی یا همان GPIO است که هر کدام از این پین ها با برنامه‌ریزی رجیسترهای مرتبط، می‌توانند وظایف مختلفی نیز بگیرند. در این ماژول این امکان وجود دارد که هر پایه ورودی-خروجی می‌تواند به صورت داخلی pull up یا pull down شود یا به حالت امپدانس بالا( میزان مقاومت در برابر جریان الکتریکی) تنظیم شود.

خوب است بدانید که منظور از pull up یا pull down، درواقع عملکردی است که برای اتصال پایه به یک سوئیچ لازم می‌باشد و باعث جلوگیری از اثرگذاری نویز در ارتباط با میکروکنترلر می‌شود.

معرفی پایه های ماژول ESP8266 برای برنامه‌ریزی و استفاده در مدارات الکترونیکی

کدام‌ پین در ماژول ESP8266 مناسب پروژه ما است؟

قبل از پاسخ به این سؤال، مهم است بدانید با اینکه ماژول ESP8266 پایه‌ های زیاد با وظایف و عملکردهای گوناگون دارد، برخی از این پایه‌ ها ممکن است برای استفاده در پروژه شما مناسب نباشند. بنابراین پیشنهاد ما برای انتخاب پین مناسب، در مرحله اول، دانستن میزان ریسک در استفاده از پایه های ماژول برد است، به این معنی که کدام پایه‌ ها را می‌توانید با خیال راحت استفاده کنید و همینطور متوجه شوید که استفاده از کدام پایه‌ها نیاز به احتیاط بیشتری دارد.

برای انتخاب و استفاده از پایه مورد نظر بهتر است ابتدا جداول زیر را بررسی نمایید:

پایه‌ های با بیشترین اولویت و برای استفاده بدون نگرانی
رفتار این پایه‌ ها به خصوص در هنگام بوت می‌تواند غیر قابل پیش‌بینی باشد. بنابراین هنگام استفاده از این پایه‌ ها در پروژه‌های حساس باید نهایت دقت را داشته باشید و تنها در صورت لزوم از آن‌ها استفاده کنید.
استفاده از این پایه‌ها توصیه نمی‌شود.
نام پایهشماره GPIOاولویت استفادهعلت
D0GPIO16هنگام بوت HIGH است و برای بیدار کردن میکروکنترلر از حالت خواب عمیق استفاده می‌شود.
D1GPIO5 
D2GPIO4 
D3GPIO0به کلید FLASH متصل است و اگر زمین شود میکروکنترلر بوت نمی‌شود.
D4GPIO2هنگام بوت HIGH است و اگر زمین شود میکروکنترلر بوت نمی‌شود.
D5GPIO14 
D6GPIO12 
D7GPIO13 
D8GPIO15برای بوت شدن مورد استفاده قرار می‌گیرد و اگر HIGH شود میکروکنترلر بوت نمی‌شود.
RXGPIO3پایه RX برای فلش کردن و دیباگینگ استفاده می‌شود
TXGPIO1پایه TX برای فلش کردن و دیباگینگ استفاده می‌شود
CLKGPIO6به حافظه فلش متصل است.
SDOGPIO7به حافظه فلش متصل است.
CMDGPIO11به حافظه فلش متصل است.
SD1GPIO8به حافظه فلش متصل است.
SD2GPIO9به حافظه فلش متصل است.
SD3GPIO10به حافظه فلش متصل است.
A0ADC0پایه ورودی آنالوگ است، نمی‌تواند خروجی تعریف شود.

تصویر زیر وضعیت پایه‌ ها را در ماژول ESP8266 NodeMCU نشان می‌دهد.

وضعیت اولویت پایه های ماژول ESP8266 برای استفاده نمودن

پس از دانستن اولویت استفاده از پین های این ماژول، زمان آن رسیده تا با وظیفه هر پایه نیز آشنا شویم:

پایه‌ های مبدل آنالوگ به دیجیتال ADC

میکروکنترلر ESP8266 دارای یک مبدل آنالوگ به دیجیتال 10 بیتی از نوع SAR است. یعنی می‌تواند ۱۰۲۴ (۲ به توان ۱۰) سطح آنالوگ گسسته را تشخیص دهد. به عبارت دیگر مقادیر آنالوگ ورودی در بازه ۰ تا ۳.۳ ولت (ولتاژ کاری این میکروکنترلر ۳.۳ ولت است) را به اعداد صحیح در بازه ۰ تا ۱۰۲۴ تبدیل می‌کند. بنابراین رزولوشن این مبدل 3.3/1024 یا 3.2 میلی ولت بر واحد دیجیتال است.

پایه ADC برای تبدیل آنالوگ به دیجیتال داده‌ها روی ماژول ESP8266 NodeMCU

پایه‌ های SPI

ماژول ESP8266 دارای دو باس SPI (SPI و HSPI) در حالت‌های کاری slave و master است که مشخصات عمومی زیر را دارند:

  • ۴ حالت زمان‌بندی برای ‌ارتباط SPI
  • سرعت انتقال حداکثر ۸۰ مگاهرتز و امکان تقسیم این سرعت کلاک
  • حداکثر ۶۴ بایت حافظه FIFO
دیاگرام پایه های SPI در ماژول ESP8266

توجه:‌

با پیاده‌سازی نرم‌افزاری، امکان ایجاد ارتباط SPI روی بقیه پایه‌ها هم وجود دارد.

پایه‌ های I2C

با وجود اینکه ماژول ESP8266 پایه‌ های سخت‌افزاری مخصوص پروتکل I2C را ندارد، اما می‌توان این ارتباط را به شکل نرم‌افزاری پیاده‌سازی کرد. ارتباط I2C به شکل نرم‌افزاری نیز به خوبی عمل می‌کند، به ویژه در زمان ایجاد ارتباط ESP8266 با آردوینو توسط I2C، که با سرعت کافی قابل انجام است.

به شکل پیش‌فرض پایه‌ های GPIO4 و GPIO5 (SDA و SCL) برای ارتباط I2C استفاده می‌شوند تا با کتابخانه‌ها و کدهای آماده آردوینو سازگار باشد.

با این حال از هر دو پایه GPIO دلخواه برای ارتباط I2C می‌توان استفاده کرد. برای اینکار از تابع wire.begin(SDA,SCL) در IDE آردوینو می‌توانید استفاده کنید.

پین های I2C در ماژول ESP8266 NodeMCU

پین های UART

ESP8266 دارای دو رابط UART به نام‌های UART0 و UART1 است که ارتباط آسنکرون (RS232 و RS485) را تا حداکثر سرعت ۴.۵ مگابیت بر ثانیه پشتیبانی می‌کنند.

  • UART0 از پایه‌های TXD0, RXD0, RST0 و CTS0 برای ارتباط استفاده می‌کند.
  • UART1 فقط قابلیت ارسال اطلاعات از پایه TXD1 را دارد و معمولاً برای گرفتن گزارش وضعیت استفاده می‌شود.
پین های UART در ماژول ESP8266 برای پشتیبانی از ارتباط آسنکرون

توجه: RXD0 و TXD0 پایه‌ های کنترل سریال و بوت لودر هستند و در درجه اول برای ارتباط با ماژول ESP استفاده می‌شوند. بنابراین با توجه به اینکه این پایه‌ ها به مبدل USB به سریال متصل هستند و انتقال اطلاعات USB هم از طریق آن‌ها صورت می‌گیرد، هنگام استفاده از این پایه‌ ها باید دقت کافی را منظور کنید.

پایه‌ های PWM

همه GPIOها (از GPIO0 تا GPIO15) می‌توانند برای ساخت پالس‌های با عرض مدوله شده (PWM) پروگرام شوند.

پین های PWM در ماژول ESP8266 برای مدولاسیون پهنای پالس

نکته: در ESP8266، مدولاسیون پهنای پالس یا PWM دارای رزولوشن ۱۰ بیتی است و دوره تناوب موج PWM بین ۱۰۰۰ میکرو ثانیه تا ۱۰۰۰۰ میکرو ثانیه قابل تنظیم است که معادل فرکانس ۱۰۰ هرتز تا ۱ کیلوهرتز است.

پایه‌ های SDIO

ESP8266 یک رابط SDIO (رابط ورودی خروجی دیجیتال امن) برای اتصال SD cardها دارد که از SDIO نسخه 1.1 (4-bit 25MHz) و نسخه 2.0 (4-bit 50MHz) پشتیبانی می‌کند.

6 عدد پایه SDIO روی ماژول ESP8266 برای ارتباط SD cardها

پایه‌ های تغذیه

برای اتصال مستقیم منبع تامین انرژی به ESP8266 و قطعات جانبی آن توسط تغذیه ۵ ولت، می‌بایست از پایه VIN استفاده نمود.

  • پایه 3V3: این پین خروجی رگولاتور ولتاژ روی برد است که می‌توانید تا حداکثر ۶۰۰ میلی آمپر از آن جریان بگیرید.
  • پایه GND: پایه زمین است.
پایه های تغذیه و زمین روی ماژول برد توسعه esp8266

پایه‌ های وقفه

جالب است بدانید که همه GPIO ها (به استثنای GPIO16) می‌توانند برای راه اندازی وقفه خارجی استفاده شوند، که پروژه‌‌ مرتبط را می‌توانید در این آکادمی مطالعه و بررسی نمایید.

پایه‌ های کنترل

سوئیچ ها و پایه های کنترل در ماژول ESP8266 NodeMCU شامل موارد زیر می‌باشد:

پایه EN (به نام‌های CH_PD یا Chip Power Down هم شناخته می‌شود) پایه فعال‌ساز ESP8266 است که به شکل پیش‌فرض پول آپ (pull up) است. وقتی این پایه HIGH باشد ESP8266 فعال است و در غیر اینصورت غیرفعال می‌شود.

پایه RST پین ریست ESP8266 است که به شکل پیش‌فرض پول آپ است. وقتی این پایه موقتا LOW شود ESP8266 ریست می‌شود. با فشردن کلید RST روی برد می‌توان این پایه را LOW کرد.

پایه FLASH هنگام فلش کردن بوت لودر ESP8266 استفاده می‌شود. اگر این پایه هنگام روشن شدن ماژول LOW شود میکروکنترلر به وضعیت BOOTLOADING می‌رود. با فشردن کلید FLASH روی برد می‌توان این پایه را LOW کرد.

پایه WAKE برای بیدار کردن ESP8266 از وضعیت خواب عمیق استفاده می‌شود.

پایه های کنترل در ماژولESP8266 NodeMCU

سخن پایانی

ما در این مرجع با معرفی وظایف و میزان اولویت‌ در استفاده از پایه های ماژول ESP8266، متوجه شدیم این ماژول دارای 30 عدد پین است که برخی از آن‌ها با قابلیت برنامه‌ریزی می‌توانند عملکردهایی یکسان داشته باشند و دانستیم که 17 عدد از این پایه ها، به‌عنوان پین های ورودی و خروجی یا GPIO به شمار می‌روند. ما علاوه‌بر تشریح وظیفه برای هر پایه، با استفاده از ایجاد دیاگرام مخصوص به آن پین، با شماره و مکان قرارگیری آن در برد توسعه ماژول ESP8266 NodeMCU به‌شکل تصویری نیز آشنایی پیدا کردیم.

چنانچه در ارتباط با این مبحث و نحوه عملکرد پایه های ماژول ESP8266، دارای پرسش یا پیشنهادی هستید، در بخش دیدگاه این صفحه می‌توانید ثبت و پاسخ خود را در اسرع وقت از کارشناسان فنی روبوایکیو دریافت کنید.

مقالات مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

Fill out this field
Fill out this field
لطفاً یک نشانی ایمیل معتبر بنویسید.
You need to agree with the terms to proceed

پر بازدید ترین مقالات