תוכן עניינים:
- שלב 1: חיווט ה- MCP23008
- שלב 2: בניית לוח
- שלב 3: שימוש במודול ספרייה
- שלב 4: תוכנית מכונית קיט
- שלב 5: 7 פלח LED
- שלב 6: מסקנה
וִידֵאוֹ: NODEMCU LUA ESP8266 עם מרחיב יציאות 8 סיביות MCP23008 IC: 6 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:17
MCP23008 הוא מרחיב קלט/פלט של 8 סיביות עם ממשק סידורי ופועל בין 1.8 ל -5.5 וולט, כך שהוא אידיאלי עבור ESP8266, Arduino, Raspberry Pi, שבבי PIC ועוד.
אם ראית את ההוראה האחרת שלי ב- MCP23017, ייתכן שאתה תוהה מדוע אני עושה אחת גם עבור MCP23008, מכיוון שהיא באמת גרסה קטנה יותר של אותו דבר.
הסיבות הן שהרשמים שלו שונים הן בשם והן במספר ואני רוצה להראות כיצד להשתמש במודול ספרייה מוכן. לא כולם מיומנים בעת שימוש ב- NodeMCU lua, לכן ברצוני להציג היבט זה של התכנות וכן כיצד להשתמש ב- MCP23008.
הספרייה והתוכניות זמינות באתר github.com.
גליון הנתונים של MCP23008 זמין מ- Microchip.
שלב 1: חיווט ה- 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
בדומה לתוכנית KittCar.lua לעיל, כללתי תוכנית עצמאית ותלויה בספרייה להנעת תצוגת LED של 7 קטעים.
שוב, שתי התוכניות עושות את אותו הדבר, אך מדגימות כיצד להשתמש במודול ספרייה שנכתב על ידי עצמך או על ידי מישהו אחר.
שלב 6: מסקנה
ניסיתי להדגים כיצד להשתמש במודולי קוד בתוך סביבת ה- Lua, ולהחיל אותו על IC ספציפי בו זמנית.
למרות שיש לי בעיה לעשות זאת, אני חושב שיש מספיק כדי להראות כיצד המודולים האלה עובדים כמו גם הדגמת יישום בחיים האמיתיים.
מוּמלָץ:
Arduino Nano-MMA8452Q 3 צירים 12 סיביות/8 סיביות מד תאוצה דיגיטלי: 4 שלבים
Arduino Nano-MMA8452Q 3 צירים 12 סיביות/8 סיביות מד תאוצה דיגיטלי: ה- MMA8452Q הוא מד תאוצה חכם בעל הספק נמוך, בעל שלושה צירים, קיבולי, מיקרומכני עם 12 סיביות רזולוציה. אפשרויות לתכנות גמישות למשתמש ניתנות בעזרת פונקציות מוטבעות במד התאוצה, הניתנות להגדרה לשני מפסיקים
Raspberry Pi MMA8452Q 3 צירים 12 סיביות/8 סיביות מד תאוצה דיגיטלי Java: 4 שלבים
Raspberry Pi MMA8452Q 3 צירים 12 סיביות/8 סיביות מד תאוצה דיגיטאלי: מדגם ה- MMA8452Q הוא מד תאוצה חכם, בעל צריכת חשמל נמוכה, בעל שלושה צירים, קיבולי, מיקרומכני עם 12 סיביות רזולוציה. אפשרויות לתכנות גמישות למשתמש ניתנות בעזרת פונקציות מוטבעות במד התאוצה, הניתנות להגדרה לשני מפסיקים
PCF8591 (מרחיב קלט/פלט אנלוגי i2c) שימוש קל ומהיר: 9 שלבים
PCF8591 (מרחיב קלט/פלט אנלוגי i2c) שימוש קל ומהיר: ספרייה לשימוש i2c pcf8591 IC עם arduino ו- esp8266. IC זה יכול לשלוט (עד 4) קלט אנלוגי ו/או פלט אנלוגי אחד כמו מדידת מתח, קריאת ערך תרמיסטור או דהיית LED. יכול לקרוא ערך אנלוגי ולכתוב ערך אנלוגי עם 2 חוטים בלבד (מושלם
DIY MusiLED, נוריות מוזיקה מסונכרנות עם יישום Windows ולינוקס בלחיצה אחת (32 סיביות ו 64 סיביות). קל לשחזור, קל לשימוש, קל לנייד: 3 שלבים
DIY MusiLED, נוריות מוזיקה מסונכרנות עם יישום Windows ולינוקס בלחיצה אחת (32 סיביות ו 64 סיביות). קל לשחזור, קל לשימוש, קל לנייד: פרויקט זה יעזור לך לחבר 18 נוריות LED (6 אדומות + 6 כחולות + 6 צהובות) ללוח ה- Arduino ולנתח את אותות כרטיס הקול של המחשב שלך בזמן אמת ולהעביר אותן אל הנורות כדי להאיר אותן בהתאם לאפקטים של קצב (סנאר, כובע גבוה, בעיטה)
NODEMCU LUA ESP8266 עם MCP23017 מרחיב יציאות 16 סיביות IC: 6 שלבים (עם תמונות)
NODEMCU LUA ESP8266 עם MCP23017 IC 16 Expander IC: ה- MCP23017 הוא IC קל יחסית להכין לוח מכיוון שיש לו יציאה A ו- B משני צידי השבב והסיכות בסדר עוקב. בדומה לאוטובוס כתובת I2C הוא גם יחד. ישנם 2 סיכות ב- IC זה שאינן בשימוש כפי שהוא