فهرست مطالب:

NODEMCU LUA ESP8266 با MCP23008 8 پورت IC Expander IC: 6 مرحله
NODEMCU LUA ESP8266 با MCP23008 8 پورت IC Expander IC: 6 مرحله

تصویری: NODEMCU LUA ESP8266 با MCP23008 8 پورت IC Expander IC: 6 مرحله

تصویری: NODEMCU LUA ESP8266 با MCP23008 8 پورت IC Expander IC: 6 مرحله
تصویری: Как сделать 4-канальное реле Wi-Fi ESP8266 ESP01 | ESP01 Домашняя автоматизация | УдаленныйXY 2024, نوامبر
Anonim
NODEMCU LUA ESP8266 با IC گسترش دهنده MICP23008 8 بیتی
NODEMCU LUA ESP8266 با IC گسترش دهنده MICP23008 8 بیتی

MCP23008 یک 8-Bit I/O Expander با رابط سریال است و بین 1.8 تا 5.5 ولت کار می کند ، بنابراین برای ESP8266 ، Arduino ، Raspberry Pi ، تراشه های PIC و موارد دیگر ایده آل است.

اگر دستورالعمل های دیگر من را در MCP23017 مشاهده کرده اید ، شاید برایتان سال باشد که چرا من نیز برای MCP23008 این کار را انجام می دهم ، زیرا واقعاً نسخه کوچکتر از همان کار است.

دلایل آن این است که ثبت های آن هم از نظر نام و هم از نظر تعداد متفاوت است و من می خواهم نحوه استفاده از ماژول کتابخانه آماده را نشان دهم. همه در استفاده از NodeMCU lua ماهر نیستند ، بنابراین من می خواهم این جنبه برنامه نویسی و همچنین نحوه استفاده از MCP23008 را نشان دهم.

کتابخانه و برنامه ها در github.com موجود است.

برگه داده MCP23008 از Microchip موجود است.

مرحله 1: سیم کشی MCP23008

سیم کشی MCP23008
سیم کشی MCP23008

IC MCP23008 دارای یک طرح ساده است و ساخت یک تخته برای آن واقعاً آسان است. همچنین می توانید مدار را روی تخته نان تنظیم کنید.

پین اتصالات روی برد من

  • پین 18 (VDD) به 3v3
  • پین 9 (VSS) به GND
  • پین 7 (NC) به GND (لازم نیست)
  • پین 1 (SCL) را به ESP GPIO2 وصل کنید
  • پین 2 (SDA) به ESP GPIO0
  • پین 5 (A0) به GND
  • پین 4 (A1) به GND
  • پین 3 (A2) به GND
  • پین 6 (بازنشانی) به 3v3

پین های خوانده شده را به Gnd در بندر A وصل کنید (پین 10 - 17)

توجه: در اینجا همه پین های آدرس به Gnd متصل هستند تا از MCP23008 در آدرس 0x20 در گذرگاه آدرس I2C استفاده کنند.

اگر از آدرس 0x21 استفاده می کردید ، A0 به 3.3V و A1 و A2 به Gnd متصل می شد.

به طور مشابه ، اگر از آدرس 0x22 استفاده می کنید ، A1 باید به 3.3V با A0 و A2 به Gnd متصل شود.

و غیره…

مرحله 2: ایجاد یک هیئت مدیره

ساخت یک هیئت مدیره
ساخت یک هیئت مدیره

من از تخته نوار 25 میلی متری در 64 میلی متری (9 ردیف در 25 سوراخ) برای ساخت تخته خود استفاده کردم. کمی محکم است ، اما از آنجا که اکثر پین های مورد نیاز شما در دو طرف IC قرار دارند ، برای کارهایی که باید انجام دهد کافی است.

من از 8 پین و 8 سوکت سربرگ برای پورت A استفاده کرده ام تا بتوانم ماژول های مختلف خود و همچنین سیم کشی های دیگر را برای پروژه های مختلف وصل کنم. من پین های Gnd و 3.3V اضافی اضافه کرده ام ، زیرا در هنگام اتصال ماژول ها به یکدیگر همیشه کمبود آنها وجود دارد.

مرحله 3: استفاده از ماژول کتابخانه

استفاده از ماژول کتابخانه
استفاده از ماژول کتابخانه

ماژول های کتابخانه به طور معمول شامل مجموعه ای از زیر روال ها ، توابع و متغیرها هستند که توسط برنامه دیگری قابل دسترسی است. خود برنامه اجرا نمی شود ، اما برنامه های فراخوانی می تواند به توابع آن دسترسی داشته باشد. این بدان معناست که می توانید برنامه های فرعی خود را در کتابخانه داشته باشید و هر زمان که به آنها احتیاج داشتید آنها را فراخوانی کنید و یک برنامه تماس کوچک ایجاد کنید. اگر برنامه های مختلف زیادی با استفاده از روالهای فرعی یکسان داشته باشید ، ارزشمندتر می شود ، نیازی نیست که روالهای فرعی را در هر برنامه گنجانید.

توجه: برنامه mcp23008.lua باید مانند سایر برنامه ها در حافظه ESP8266 بارگیری شود.

من برنامه های github.com را در اینجا و همچنین یک برنامه ساده (test.lua) قرار داده ام تا نشان دهم که کتابخانه در حال کار است.

حداقل 2 روش برای گنجاندن کتابخانه در برنامه شما وجود دارد.

نیاز ("mcp23008")

mcp23008.begin (0x0 ، gpio2 ، gpio0 ، i2c. SLOW)

یا

mcp = نیاز ("mcp23008")

mcp.begin (0x0 ، gpio2 ، gpio0 ، i2c. SLOW)

هر دوی موارد فوق یک کار را انجام می دهند ، اما روش دوم به شما امکان می دهد به جای نام برنامه از متغیر خود استفاده کنید.

مرحله 4: برنامه ماشین کیت

برنامه ماشین کیت
برنامه ماشین کیت

من برنامه KittCar23008.lua و KittLib.lua را که از کتابخانه برای نشان دادن تفاوت نحوه نوشتن برنامه ها به این روش استفاده می کند ، قرار داده ام. هر دو برنامه یک کار را انجام می دهند.

8 LED plug in از Ebay به عنوان یک کیت در دسترس است و به عنوان 8 Channel Flowing Water Light LED DIY Kit ، 99p از چین شناخته می شود. باید خودتان آن را لحیم کنید.

توجه: اگر هنگام اجرای برنامه KittLib.lua مشکلی دارید ، سعی کنید پین MCP23008 RESET را به Gnd وصل کنید. من می دانم که این یک اتصال کوتاه مستقیم ایجاد می کند (زیرا به ولتاژ 3.3 ولت متصل است) و باید همه موارد دیگر را ریست کنید. همچنین با اتصال به Gnd از طریق مقاومت 10 اهم ، احتمالاً راه بهتری برای انجام این کار است.

همچنین متوجه شدم که KittLib.lua پس از اجرای test.lua بدون هیچ مشکلی اجرا می شود (از من نپرسید چرا؟)

من راه های مختلفی را برای حل مشکل برنامه KittLib.lua امتحان کرده ام ، اما تا کنون هیچ دلیل منطقی برای خرابی آن پیدا نکرده ام. آیا کسی نظری دارد؟

من خودم همه این برنامه ها را ننوشته ام ، بنابراین نمی توانم بگویم چرا مشکلی وجود دارد ، اگرچه پس از نگاه کردن به برنامه نویسی ، ظاهراً هیچ چیز بد اشکالی وجود ندارد.

مرحله 5: بخش LED 7

7 بخش LED
7 بخش LED

همانند برنامه KittCar.lua بالا ، من یک برنامه مستقل و وابسته به کتابخانه را برای رانندگی یک صفحه نمایش LED 7 قسمتی در نظر گرفته ام.

دوباره ، هر دو برنامه یک کار را انجام می دهند ، اما نحوه استفاده از ماژول کتابخانه را که توسط خودتان یا شخص دیگری نوشته شده است نشان می دهد.

مرحله 6: نتیجه گیری

نتیجه
نتیجه

من سعی کرده ام نحوه استفاده از ماژول های کد را در محیط Lua نشان دهم ، و آن را همزمان در یک IC خاص اعمال کنم.

با وجود این که من در انجام این کار مشکلی داشتم ، اما فکر می کنم به اندازه کافی برای نشان دادن نحوه عملکرد این ماژول ها و همچنین نشان دادن یک برنامه کاربردی واقعی وجود دارد.

توصیه شده: