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

היכרות עם I2C עם מודולי Zio ו- Qwiic: 6 שלבים
היכרות עם I2C עם מודולי Zio ו- Qwiic: 6 שלבים

וִידֵאוֹ: היכרות עם I2C עם מודולי Zio ו- Qwiic: 6 שלבים

וִידֵאוֹ: היכרות עם I2C עם מודולי Zio ו- Qwiic: 6 שלבים
וִידֵאוֹ: How to use LCD LCD1602 with I2C module for Arduino - Robojax 2024, יולי
Anonim
היכרות עם I2C עם מודולי Zio ו- Qwiic
היכרות עם I2C עם מודולי Zio ו- Qwiic

רובין שארמה אמרה: 'שיפורים קטנים מדי יום לאורך זמן מובילים לתוצאות מדהימות'. יתכן שאתה חושב, 'אוי, עוד פוסט I2C?'. ובכן, יש בהחלט אלפי מידע בכל הקשור ל- I2C. אבל המשך לעקוב, זה לא סתם עוד מאמר I2C. מערכת Qwiic Connect ולוחות פריצה היקפיים של Zio הם בהחלט מחליפי המשחק I²C!

מבוא

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

בנוסף, אם יש לך פרויקטים מרובים, אתה מבלה הרבה זמן בהחלפת חוטים מפרויקט לפרויקט.

אנו יוצרים ולכן אנו מבינים את המאבק. התרומה האחרונה שלנו לקהילת OHS היא מערכת אב טיפוס מודולרית בשם ZIO, המאמצת מערכת חיבור Qwiic. Qwiic היא דרך נוחה מאוד לתקשר לוח מעגלים הניתן לתכנות לחיישנים, מפעילים ולוחות פריצה באמצעות I²C.

שלב 1: מהו I²C ולמה אנחנו אוהבים אותו

מהו I²C ומדוע אנו אוהבים אותו
מהו I²C ומדוע אנו אוהבים אותו

I²C הוא האוטובוס הרב-מאסטר הנפוץ ביותר, כלומר ניתן לחבר שבבים שונים לאותו אוטובוס. הוא משמש ביישומים רבים בין מאסטר לעבד או התקני מאסטר ועבד מרובים. החל מבקרו -מיקרו, לסמארטפונים ועד ליישומים תעשייתיים, במיוחד למכשירי וידאו כמו צגי מחשב. ניתן ליישם אותו בקלות בעיצובים אלקטרוניים רבים (ולאחרונה אף קל יותר עם מחבר Qwiic).

אם היינו צריכים לתאר את I²C בשתי מילים, סביר להניח שהיינו משתמשים בפשטות וגמישות.

אחד היתרונות הגדולים ביותר של I²C על פני פרוטוקולי תקשורת אחרים הוא שמדובר בממשק דו -חוטי, כלומר הוא זקוק לשני חוטי אות בלבד, SDA (קו נתונים סידורי) ו- SCL (קו שעון סידורי). זה אולי לא הפרוטוקול המהיר ביותר, אבל הוא ידוע בזכות היותו גמיש מאוד ומאפשר גמישות במתח האוטובוס.

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

שלב 2: בואו נסתכל מקרוב

בואו נסתכל מקרוב
בואו נסתכל מקרוב
בואו נסתכל מקרוב
בואו נסתכל מקרוב
בואו נסתכל מקרוב
בואו נסתכל מקרוב
בואו נסתכל מקרוב
בואו נסתכל מקרוב

אז איך I²C עובד? מוקדם יותר הזכרנו שאחת התכונות המשמעותיות ביותר היא קצב המתח, זה אפשרי מכיוון ש- I²C משתמש באספן פתוח (המכונה גם ניקוז פתוח) עבור קווי תקשורת SDA ו- SCL.

SCL הוא אות השעון, מסנכרן את העברת הנתונים בין המכשירים באוטובוס I²C והוא נוצר על ידי המאסטר. בעוד SDA נושא את הנתונים לשליחה או קבלה מהחיישנים או התקנים אחרים המחוברים לאוטובוס.

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

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

I²C פועל על פי פרוטוקול הודעות על מנת לתקשר את המאסטר עם התקני עבדים. שני הקווים (SCL ו- SDA) נפוצים בתוך כל עבדי I²C, כל העבדים באוטובוס מקשיבים להודעה.

פרוטוקול ההודעה עוקב אחר הפורמט המוצג בתמונה המצורפת:

זה עשוי להיראות מסובך במבט ראשון, אבל יש לנו חדשות טובות. בעת שימוש ב- Arduino IDE יש את הספרייה Wire.h, כדי לפשט את כל ההגדרות לפרוטוקול הודעות I²C.

מצב ההתחלה נוצר כאשר קו הנתונים (SDA) יורד נמוך בעוד קו השעון (SCL) עדיין גבוה. בעת הקמת פרויקט בממשק Arduino איננו באמת צריכים לדאוג ליצירת תנאי ההתחלה, הוא יתחיל עם פונקציה ספציפית (Wire.beginTransmission (slaveAddress)).

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

המשחה נותנת תשובה עם אישור (ACK או NACK), והתקני עבדים אחרים באוטובוס מוזלים את שאר הנתונים עד להשלמת ההודעה והאוטובוס בחינם. בעקבות ה- ACK, רצף של פנקס כתובות פנימי של העבדים ממשיך את השידור.

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

שלב 3: I²C ו- ZIO

I²C ו- ZIO
I²C ו- ZIO

הבנו שעדיף שאשרטט את כל המידע לעיל בשיחה בין מאסטר (a.k.a Zuino, המיקרו שלנו) לבין עבדים (a.k.a לוחות פריצה ZIO).

בדוגמה בסיסית זו אנו משתמשים בחיישן המרחק ZIO TOF ותצוגת ZIO OLED. ה- TOF נותן את פרטי המרחק בעוד ה- ZIO Oled מציג את הנתונים. הרכיבים וההתקנים המשמשים:

  • ZUINO M UNO - המאסטר
  • תצוגת ZIO OLED - Slave_01
  • חיישן מרחק ZIO TOF - Slave_02
  • כבל Qwiic - חיבור קל למכשירי I²C

הנה כמה קל לחבר את הלוחות זה לזה באמצעות Qwiic, ללא צורך בלוח לחם, כבלים נוספים או סיכות ZUINO. קו השעון והנתונים הטורי של ה- ZUINO מחובר אוטומטית לחיישן המרחק ול- OLED באמצעות מחבר Qwiic. שני הכבלים הנוספים הם 3V3 ו- GND.

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

מכשיר: חיישן מרחק ZIO

  • מספר חלק: RFD77402
  • כתובת I2C: 0x4C
  • קישור לגיליון נתונים

מכשיר: תצוגת ZIO OLED

  • מספר חלק: SSD1306
  • כתובת: 0x3C
  • קישור לגיליון נתונים

כדי למצוא את הכתובת הייחודית למכשירי העבדים, פתח את גליון הנתונים המסופק. עבור חיישן המרחק הכתובת מסופקת בממשק המודול. לכל חיישן או רכיב יש גליון נתונים אחר עם מידע שונה. לפעמים יכול להיות מאתגר למצוא אותו בגליון נתונים של 30 עמודים (רמז: פתח את כלי החיפוש במציג PDF והקלד "כתובת" או "מזהה מכשיר" לחיפוש מהיר).

כעת, כאשר הכתובת הייחודית לכל מכשיר ידועה, בכדי לקרוא/ לכתוב נתונים, יש לזהות את כתובת הרישום הפנימי (גם מתוך גליון הנתונים). עיון בגליון הנתונים של חיישן המרחק ZIO הכתובת לקבלת המרחק תואמת 0x7FF.

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

השלב הבא, מסור את הקוד. ZUINO M UNO תואם ל- Arduino IDE, מה שהופך את ההתקנה לקלה הרבה יותר. הספריות הדרושות לפרויקט זה הן:

  • Wire.h
  • Adafruit_GFX.h
  • Adafruit_SSD1306.h
  • SparkFun_RFD77402_Arduino_Library.h

Wire.h היא ספריית arduino, שתי ספריות Adafruit משמשות ל- OLED והאחרונות משמשות לחיישן המרחק. עיין במדריך זה כיצד לקשר בין *ספריות.zip ל- Arduino IDE.

במבט על הקוד, ראשית יש להכריז על הספריות וכן על כתובת ה- OLED.

בהגדרה () השידור מתחיל והטקסט מוצג עבור פונקציונליות חיישן המרחק.

הלולאה () לוקחת מדידות על המרחק ו- OLED מדפיס אותו.

בדוק את קוד המקור לדוגמה בקישור github.

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

שלב 4: מהו אורך הכבל המרבי?

האורך המרבי תלוי בנגדי המשיכה המשמשים SDA ו- SCL וקיבול הכבלים. הנגדים גם קובעים את מהירות האוטובוס, ככל שמהירות האוטובוס נמוכה יותר, כך גבול הכבל ארוך יותר. קיבול הכבלים מגביל את מספר המכשירים באוטובוס, כמו גם את אורך הכבל. יישומים אופייניים מגבילים את אורך החוט ל 2.5-3.5 מ '(9-12 רגל) אך יש שונות בהתאם לכבל המשמש. לעיון, האורך המרבי ביישומי I2C באמצעות כבלי זוג מעוותים של 22 AWG הוא כ 1 מ '(3 רגל) ב -100 קמ ג, 10 מ' (30 רגל) ב- 10kbaud.

ישנם כמה אתרים כמו mogami או WolframAlpha המאפשרים לאמוד את אורך הכבל.

שלב 5: כיצד לחבר התקנים מרובים באותו אוטובוס?

כיצד לחבר מספר מכשירים באותו אוטובוס?
כיצד לחבר מספר מכשירים באותו אוטובוס?
כיצד לחבר מספר מכשירים באותו אוטובוס?
כיצד לחבר מספר מכשירים באותו אוטובוס?

I2C הוא אוטובוס סדרתי, שבו כל המכשירים מחוברים לאוטובוס משותף. עם מחבר Qwiic ניתן לחבר את לוחות הפריצה השונים אחד אחרי השני באמצעות המחבר Qwiic. לכל לוח יש לפחות 2 מחברי Qwiic.

יצרנו לוחות שונים כדי לפתור כמה ממגבלות ה- Qwiic ו- I2C. לוח מתאם Zio Qwiic משמש לחיבור באמצעות התקני Qwiic ללא מחבר Qwiic, באמצעות כבל כותרת זכר של לוח Qwiic. הטריק הפשוט הזה יוצר אפשרויות בלתי מוגבלות.

כדי לחבר מכשירים שונים ברשת אוטובוסים או עצים הגענו לרכזת Zio Qwiic.

אחרון חביב, Zio Qwiic MUX מאפשר חיבור של שני מכשירים או יותר באמצעות אותה כתובת.

שלב 6: מהו סיום I2C?

I2C נדרש לסיים, כך שהקו חופשי להוסיף התקנים אחרים. זה עשוי להיות קצת מבלבל, שכן בדרך כלל משתמשים במושג הסיום לתיאור נגדי המשיכה של האוטובוסים (כדי לספק מצב ברירת מחדל, במקרה זה כדי לספק זרם למעגל). עבור לוחות Zuino, ערך הנגד הוא 4.7kΩ.

אם הסיום יושמט, לא תהיה תקשורת כלל באוטובוס- המאסטר לא יוכל ליצור את מצב ההתחלה, כך שההודעה לא תועבר לעבדים.

למידע נוסף ויכולות Zio בדוק את מוצרי Zio העדכניים ביותר. המטרה במאמר זה היא להסביר את יסודות התקשורת I²C וכיצד היא פועלת עם מחבר Zio ו- Qwiic. המשך לעקוב לעדכונים נוספים.

מוּמלָץ: