תוכן עניינים:

NODEMCU LUA ESP8266 עם מרחיב יציאות 8 סיביות MCP23008 IC: 6 שלבים
NODEMCU LUA ESP8266 עם מרחיב יציאות 8 סיביות MCP23008 IC: 6 שלבים

וִידֵאוֹ: NODEMCU LUA ESP8266 עם מרחיב יציאות 8 סיביות MCP23008 IC: 6 שלבים

וִידֵאוֹ: NODEMCU LUA ESP8266 עם מרחיב יציאות 8 סיביות MCP23008 IC: 6 שלבים
וִידֵאוֹ: Introduction to NodeMCU ESP8266 WiFi Development board with HTTP Client example- Robojax 2024, נוֹבֶמבֶּר
Anonim
NODEMCU LUA ESP8266 עם MCP23008 מרחיב יציאות 8 סיביות
NODEMCU LUA ESP8266 עם MCP23008 מרחיב יציאות 8 סיביות

MCP23008 הוא מרחיב קלט/פלט של 8 סיביות עם ממשק סידורי ופועל בין 1.8 ל -5.5 וולט, כך שהוא אידיאלי עבור ESP8266, Arduino, Raspberry Pi, שבבי PIC ועוד.

אם ראית את ההוראה האחרת שלי ב- MCP23017, ייתכן שאתה תוהה מדוע אני עושה אחת גם עבור MCP23008, מכיוון שהיא באמת גרסה קטנה יותר של אותו דבר.

הסיבות הן שהרשמים שלו שונים הן בשם והן במספר ואני רוצה להראות כיצד להשתמש במודול ספרייה מוכן. לא כולם מיומנים בעת שימוש ב- NodeMCU lua, לכן ברצוני להציג היבט זה של התכנות וכן כיצד להשתמש ב- MCP23008.

הספרייה והתוכניות זמינות באתר github.com.

גליון הנתונים של MCP23008 זמין מ- Microchip.

שלב 1: חיווט ה- MCP23008

חיווט MCP23008
חיווט MCP23008

ה- MCP23008 IC הוא בעל פריסה פשוטה ובניית לוח ממש קלה עבורו. אתה יכול גם להגדיר את המעגל על לוח לחם.

הצמד חיבורים בלוח שלי

  • פין 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: בניית לוח

בניית לוח
בניית לוח

השתמשתי בלוח רצועות Vero בגודל 25 מ"מ על 64 מ"מ (9 שורות x 25 חורים) לבניית הלוח שלי. הוא מעט הדוק, אך מכיוון שרוב הפינים הדרושים לך נמצאים משני צדי ה- IC, הוא מתאים למה שהוא צריך לעשות.

השתמשתי בשמונה סיכות ו -8 שקעי כותרת ליציאה A, כך שאוכל לחבר את המודולים השונים שלי וכן חיווט אחר לפרויקטים שונים. הוספתי סיכות Gnd ו- 3.3V נוספות שכן אני מוצא שתמיד יש מחסור כאלו בעת חיבור מודולים יחדיו.

שלב 3: שימוש במודול ספרייה

שימוש במודול ספרייה
שימוש במודול ספרייה

מודולי הספרייה מכילים בדרך כלל מבחר של שגרות משנה, פונקציות ומשתנים שאפשר לגשת אליהם באמצעות תוכנית אחרת. התוכנית עצמה אינה פועלת, אך ניתן לגשת לפונקציות שלה על ידי התוכנית המתקשרת. המשמעות היא שתוכל לקבל את שגרת המשנה שלך בתוך הספרייה ולהתקשר אליהם בכל פעם שתזדקק להם, ותעשה תוכנית שיחות קטנה. זה הופך להיות בעל ערך רב יותר אם יש לך הרבה תוכניות שונות המשתמשות באותן שגרות משנה, אינך צריך לכלול את שגרת המשנה בכל תוכנית.

הערה: יש לטעון את התוכנית mcp23008.lua לזיכרון ESP8266 כמו שאר התוכניות.

צירפתי כאן את התוכניות github.com וכן תוכנית פשוטה (test.lua) להראות שהספרייה פועלת.

ישנן לפחות 2 דרכים לכלול את הספרייה בתוכנית שלך.

לדרוש ("mcp23008")

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

אוֹ

mcp = require ("mcp23008")

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

שני הדברים הנ ל עושים את אותו הדבר, אך השיטה השנייה מאפשרת לך להשתמש במשתנה משלך במקום בשם התוכנית.

שלב 4: תוכנית מכונית קיט

תוכנית מכונית קיט
תוכנית מכונית קיט

כללתי את התוכנית KittCar23008.lua ו- KittLib.lua המשתמשת בספרייה כדי להראות את ההבדלים בכתיבת תוכניות בדרך זו. שתי התוכניות עושות את אותו הדבר.

תקע ה- 8 LED זמין ב- Ebay כערכה והוא ידוע כערכת DIY DIY LED LED זורמת 8 ערוצים, 99p מסין. אתה צריך להלחם אותו בעצמך.

הערה: אם נתקלת בבעיה בניסיון להריץ את תוכנית KittLib.lua, נסה לחבר לרגע את סיכת MCP23008 RESET ל- Gnd. אני יודע שזה ייתן קצר חשמלי ישיר (מכיוון שהוא מחובר ל- 3.3V) ואתה צריך לאפס את כל השאר. הוא פועל גם על ידי חיבור ל- Gnd באמצעות נגד של 10 אוהם, כנראה דרך טובה יותר לעשות זאת.

גיליתי גם ש- KittLib.lua ירוץ ללא בעיות לאחר הפעלת test.lua (אל תשאל אותי למה?)

ניסיתי דרכים שונות לפתור את בעיית התוכנית KittLib.lua, אך עד כה לא מצאתי סיבה הגיונית מדוע היא קורסת. למישהו יש רעיונות?

לא כתבתי את כל התוכניות האלה בעצמי, ולכן אינני יכול לומר מדוע יש בעיה, אם כי לאחר עיון בקידוד לא נראה שמשהו לא תקין.

שלב 5: 7 פלח LED

7 פלחי LED
7 פלחי LED

בדומה לתוכנית KittCar.lua לעיל, כללתי תוכנית עצמאית ותלויה בספרייה להנעת תצוגת LED של 7 קטעים.

שוב, שתי התוכניות עושות את אותו הדבר, אך מדגימות כיצד להשתמש במודול ספרייה שנכתב על ידי עצמך או על ידי מישהו אחר.

שלב 6: מסקנה

סיכום
סיכום

ניסיתי להדגים כיצד להשתמש במודולי קוד בתוך סביבת ה- Lua, ולהחיל אותו על IC ספציפי בו זמנית.

למרות שיש לי בעיה לעשות זאת, אני חושב שיש מספיק כדי להראות כיצד המודולים האלה עובדים כמו גם הדגמת יישום בחיים האמיתיים.

מוּמלָץ: