فهرست مطالب:

ESP8266 با استفاده از پین GPIO0/GPIO2/GPIO15: 4 مرحله
ESP8266 با استفاده از پین GPIO0/GPIO2/GPIO15: 4 مرحله

تصویری: ESP8266 با استفاده از پین GPIO0/GPIO2/GPIO15: 4 مرحله

تصویری: ESP8266 با استفاده از پین GPIO0/GPIO2/GPIO15: 4 مرحله
تصویری: 🔥کنترل لامپ با ESP8266🔥 2024, نوامبر
Anonim
ESP8266 با استفاده از پین GPIO0/GPIO2/GPIO15
ESP8266 با استفاده از پین GPIO0/GPIO2/GPIO15

به روز رسانی 1 جولای 2018-اضافه شدن یادداشت در مورد برنامه نویسی مجدد هنگامی که GPIO0 خروجی است

این یک یادداشت بسیار کوتاه در مورد نحوه استفاده از پین GPIO0 / GPIO2 و GPIO15 در ماژول ESP8266 است.

به روز رسانی: همچنین نحوه استفاده از پین های ESP8266-01 را بررسی کنید

معرفی

ESP8266 یک تراشه کم هزینه Wi -Fi است. در انواع مختلفی از ماژول ها وجود دارد و می توان آن را به روش های مختلف برنامه ریزی کرد. همه ماژول ها GPIO0 و GPIO2 را در دسترس قرار می دهند. اکثر ماژولها ، به غیر از ESP8266-01 ، GPIO15 را نیز در دسترس قرار می دهند. این GPIO نحوه راه اندازی ماژول را کنترل می کند و به همین دلیل در صورت استفاده از آنها نیاز به دستکاری خاصی دارد. GPIO6-GPIO11 نیز نیاز به درمان خاصی دارد که در زیر توضیح داده شده است.

مرحله 1: پین های GPIO را فلش کنید - GPIO6 تا GPIO11

اکثر برد های ESP8266 دارای یک تراشه فلش هستند که به برخی یا تمام GPIO6-GPIO11 متصل است. اکثر برنامه ها از حافظه فلش و همچنین RAM استفاده می کنند ، بنابراین مگر اینکه مطمئن شوید که کد شما فقط از RAM اجرا می شود ، نمی توانید از این پین ها برای اهداف دیگر استفاده کنید.

تعداد دقیق پین های مورد استفاده در محدوده GPIO6 تا GPIO11 بستگی به نوع سخت افزار فلش مورد استفاده در ماژول شما دارد. Quad IO از 4 خط برای داده ها (در مجموع 6 پین) تا 4 برابر سرعت استاندارد استفاده می کند. IO دوگانه از 2 خط برای داده ها استفاده می کند (مجموع 4 پین) استاندارد از یک خط واحد برای داده ها استفاده می کند (در مجموع 3 پین).

مگر اینکه دقیقاً بدانید برد شما به چه چیزی نیاز دارد ، بهتر است GPIO6 را به GPIO11 نادیده بگیرید و از کد خود به آنها اشاره نکنید.

مرحله 2: پین GPIO0 ، GPIO2 و GPIO15

پین های GPIO0 ، GPIO2 و GPIO15
پین های GPIO0 ، GPIO2 و GPIO15

این پین ها تعیین می کنند که چیپ در چه مدتی شروع به کار می کند.

برای اجرای عادی برنامه ، GPIO0 و GPIO2 باید تا Vcc (3.3V) و GPIO15 به GND کشیده شوند ، هر کدام دارای یک مقاومت در محدوده مقاومت 2K تا 10K هستند. مقاومت 2K ایمنی بیشتری در برابر نویز ایجاد می کند. OLIMEX از مقاومت های 2K استفاده می کند SparkFun از مقاومت های 10K استفاده می کند. من از مقاومتهای 3K3 استفاده می کنم.

تنظیمات این ورودی ها فقط در حین روشن شدن (یا تنظیم مجدد) تراشه بررسی می شود. پس از آن پین ها برای مصارف عمومی در دسترس هستند ، اما همانطور که در زیر توضیح داده شد استفاده از آنها توسط این مقاومتهای بالا و پایین خارجی کششی محدود می شود.

مرحله 3: استفاده از GPIO0 ، GPIO2 و GPIO15 به عنوان خروجی

استفاده از GPIO0 ، GPIO2 و GPIO15 به عنوان خروجی
استفاده از GPIO0 ، GPIO2 و GPIO15 به عنوان خروجی

همانطور که در بالا ذکر شد ، این پین ها قبلاً دارای یک مقاومت متصل به VCC (GPIO0 و GPIO2) یا GND برای GPIO15 خواهند بود. این تعیین می کند که چگونه هر دستگاه خارجی مانند رله یا مقاومت+led باید متصل شود. برای GPIO0 و GPIO2 ، یک رله خارجی باید بین VCC و پین متصل شود تا مانع از مقاومت کشش نشود. برعکس ، یک رله خارجی متصل به GPIO15 باید بین GND و پین متصل شود تا مانع از عملکرد مقاومت کششی نشود.

برای فعال کردن دستگاه خارجی ، GPIO0 یا GPIO2 باید LOW (Active LOW) و GPIO15 باید HIGH (Active HIGH) رانده شوند.

شماتیک بالا نحوه استفاده از GPIO0 و GPIO2 و GPIO15 را به عنوان خروجی نشان می دهد. این مدار شامل مقاومت های کشش/کشش لازم نیز می شود. توجه داشته باشید که ماژول رله 5V هدایت شده توسط GPIO0 بصورت اپتیکال جدا شده و دارای یک اتصال مشترک جداگانه برای ورودی می باشد. مهم است که ولتاژ 5V VCCA به پین ESP8266 اعمال نشود.

نحوه برنامه ریزی مجدد هنگام استفاده از GPIO0 به عنوان خروجی

توجه: برای ورود به حالت برنامه نویسی ، GPIO0 باید زمین گیر شود. اگر در حال رانندگی بالا هستید ، اتصال آن می تواند به تراشه ESP8266 آسیب برساند. راه مطمئن برای برنامه ریزی مجدد ESP8266 هنگامی که کد شما خروجی GPIO0 را هدایت می کند این است:- الف) خاموش کردن برد ب) GPIO0 کوتاه به gnd ج) فعال کردن برد که به دلیل کوتاه بودن GPIO0 به حالت برنامه می رود د) حذف کوتاه از GPIO0 بنابراین هنگام خروجی برنامه خروجی را کوتاه نمی کنید ه) برنامه ریزی مجدد برد f) در صورت لزوم چرخه برق بردن برد.

مرحله 4: استفاده از GPIO0 ، GPIO2 و GPIO15 به عنوان ورودی

استفاده از GPIO0 ، GPIO2 و GPIO15 به عنوان ورودی
استفاده از GPIO0 ، GPIO2 و GPIO15 به عنوان ورودی

استفاده از این پین ها به عنوان ورودی کمی مشکل است. همانطور که در بالا ذکر شد هنگام روشن شدن و تنظیم مجدد ، این پین ها باید در صورت لزوم بالا یا پایین کشیده شوند تا ماژول ESP8266 در حالت عادی اجرا شود. این بدان معناست که ، به طور کلی ، شما نمی توانید فقط یک سوئیچ خارجی به این پین ها وصل کنید ، زیرا هنگام روشن شدن معمولاً نمی توانید تضمین کنید که سوئیچ ورودی را به زمین نمی کشاند و بنابراین از شروع صحیح ماژول جلوگیری می کنید.

ترفند این است که سوئیچ خارجی را مستقیماً از GPIO0 یا GPIO2 به GND متصل نکنید ، بلکه آن را به پین GPIO دیگری متصل کنید که فقط پس از راه اندازی ESP8266 به زمین منتقل می شود (به عنوان خروجی). به یاد داشته باشید ، هنگامی که پین های GPIO به عنوان خروجی مورد استفاده قرار می گیرند ، بسته به اینکه بالا یا پایین هدایت می شوند ، اتصال بسیار کمی به VCC یا GND ایجاد می کنند.

در اینجا فقط GPIO0 و GPIO2 در نظر گرفته خواهد شد. با استفاده از این روش می توانید یک (1) ورودی اضافی با استفاده از این دو (2) GPIO دریافت کنید.

روش مشابهی را می توان برای GPIO15 با استفاده از یک پین GPIO دیگر برای اتصال سوئیچ آن به +VCC استفاده کرد ، اما این ورودی اضافی به دست نمی آورد ، شما ممکن است فقط از پین دیگر GPIO مستقیماً به عنوان ورودی استفاده کنید.

مدار بالا به عنوان مثال از ماژول ESP8266-01 استفاده می کند. اگر قبلاً از پین RX/TX برای اتصال UART استفاده می کنید ، ESP8266-01 بدون استفاده از این ترفند ، هیچ پین رایگان برای استفاده به عنوان ورودی ندارد.

از آنجا که روش setup () sketch تنها پس از راه اندازی ماژول ESP8266 اجرا می شود ، می توان خروجی GPIO0 را LOW پایین کرد و بنابراین زمینه ای برای S1 متصل به GPIO2 ایجاد کرد. سپس می توانید از digitalRead (2) در جای دیگر در طرح خود برای خواندن تنظیمات سوئیچ استفاده کنید.

نتیجه

این یادداشت کوتاه نحوه استفاده از GPIO0 ، GPIO2 و GPIO15 به عنوان خروجی و نحوه استفاده از ورودی اضافی با استفاده از GPIO0 و GPIO2 را با هم نشان می دهد.

توصیه شده: