فهرست مطالب:
- مرحله 1: سیم کشی MCP23008
- مرحله 2: ایجاد یک هیئت مدیره
- مرحله 3: استفاده از ماژول کتابخانه
- مرحله 4: برنامه ماشین کیت
- مرحله 5: بخش LED 7
- مرحله 6: نتیجه گیری
تصویری: NODEMCU LUA ESP8266 با MCP23008 8 پورت IC Expander IC: 6 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:57
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
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
همانند برنامه KittCar.lua بالا ، من یک برنامه مستقل و وابسته به کتابخانه را برای رانندگی یک صفحه نمایش LED 7 قسمتی در نظر گرفته ام.
دوباره ، هر دو برنامه یک کار را انجام می دهند ، اما نحوه استفاده از ماژول کتابخانه را که توسط خودتان یا شخص دیگری نوشته شده است نشان می دهد.
مرحله 6: نتیجه گیری
من سعی کرده ام نحوه استفاده از ماژول های کد را در محیط Lua نشان دهم ، و آن را همزمان در یک IC خاص اعمال کنم.
با وجود این که من در انجام این کار مشکلی داشتم ، اما فکر می کنم به اندازه کافی برای نشان دادن نحوه عملکرد این ماژول ها و همچنین نشان دادن یک برنامه کاربردی واقعی وجود دارد.
توصیه شده:
یک WIZ820io / USR -ES1 - پورت شبکه Wiznet W5500 را به تمشک پای خود اضافه کنید .: 10 مرحله
WIZ820io / USR -ES1 - پورت شبکه Wiznet W5500 را به Raspberry Pi خود اضافه کنید. سعی کنید پورت شبکه دوم را به Raspberry Pi متصل کنید. بنابراین در حین انجام پروژه های دیگر من
رفع مشکل پورت سریال USB Lilypad/شماره درایور: 10 مرحله (همراه با تصاویر)
رفع مشکل پورت سریال USB Lilypad/مشکل درایور: از سال 2016 ، آیا مک شما کمتر از 2 سال سن دارد؟ آیا اخیراً به جدیدترین سیستم عامل (Yosemite یا هر چیزی جدیدتر) ارتقا داده اید؟ آیا USB/MP3 های Lilypad شما دیگر کار نمی کنند؟ آموزش به شما نشان می دهد که چگونه USB های Lilypad خود را تعمیر کردم. خطایی که با آن مواجه شدم مربوط به
ساخت پورت USB مبتنی بر SAMD21 به پورت سریال سخت افزاری!: 3 مرحله
ساختن پورت USB مبتنی بر SAMD21 به پورت سریال سخت افزاری!: امروزه استفاده از پورت USB برد Arduino (یا هر سازگار دیگر) به عنوان پورت سریال شبیه سازی شده استاندارد است. این برای اشکال زدایی ، ارسال و دریافت داده ها از تابلوهای دوست داشتنی ما بسیار مفید است. من در uChip کار می کردم
پورت USB NODEMcu کار نمی کند؟ کد را با استفاده از USB به ماژول TTL (FTDI) فقط در 2 مرحله: 3 مرحله بارگذاری کنید
پورت USB NODEMcu کار نمی کند؟ بارگذاری کد با استفاده از ماژول USB به TTL (FTDI) تنها در 2 مرحله: از اتصال به سیمهای زیادی از USB به ماژول TTL به NODEMcu خسته شده اید ، این دستورالعمل را دنبال کنید تا کد را فقط در 2 مرحله بارگذاری کنید. اگر پورت USB NODEMcu کار نمی کند ، پس نگران نباشید. این فقط تراشه درایور USB یا اتصال USB است ،
NODEMCU LUA ESP8266 با MCP23017 16 پورت IC Expander IC: 6 مرحله (همراه با تصاویر)
NODEMCU LUA ESP8266 با MCP23017 16 Bit Expander IC: MCP23017 یک IC نسبتاً آسان برای ساختن برد است زیرا دارای پورت A و B در دو طرف تراشه است و پین ها به ترتیب متوالی هستند. به طور مشابه گذرگاه آدرس I2C همه با هم همینطور. روی این IC 2 پین وجود دارد که بدون استفاده هستند