ממשק I2C ו- Arduino

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

ממשק I2C ו- Arduino
ממשק I2C ו- Arduino

וִידֵאוֹ: ממשק I2C ו- Arduino

וִידֵאוֹ: ממשק I2C ו- Arduino
וִידֵאוֹ: Видеоуроки по Arduino. I2C и processing (7-я серия, ч1) 2024, נוֹבֶמבֶּר
Anonim

במאמר זה נבחן מהו ממשק I2C (ay-tu-si, i-two-tse), מה התכונות שלו וכיצד לעבוד איתו.

ממשק I2c
ממשק I2c

זה הכרחי

  • - ארדואינו;
  • - פוטנציומטר דיגיטלי AD5171;
  • - דיודה פולטת אור;
  • - נגד 220 אוהם;
  • - 2 נגדים ל- 4.7 kOhm;
  • - חיבור חוטים.

הוראות

שלב 1

פרוטוקול התקשורת הטורי של IIC (נקרא גם I2C - Inter-Integrated Circuits) משתמש בשני קווי תקשורת דו כיווניים להעברת נתונים, הנקראים אוטובוס SDA (Serial Data) ואוטובוס SCL (Serial Clock). ישנם גם שני קווי חשמל. האוטובוסים SDA ו- SCL נמשכים עד לאוטובוס הכוח דרך נגדים.

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

תרשים חיבור I2C
תרשים חיבור I2C

שלב 2

Arduino משתמש בשתי יציאות לעבודה על ממשק I2C. לדוגמא, ב- Arduino UNO וב- Arduino Nano, יציאה אנלוגית A4 מתאימה ל- SDA, יציאה אנלוגית A5 תואמת ל- SCL.

לדגמי לוח אחרים:

Arduino Pro ו- Pro Mini - A4 (SDA), A5 (SCL)

Arduino מגה - 20 (SDA), 21 (SCL)

ארדואינו לאונרדו - 2 (SDA), 3 (SCL)

Arduino Due - 20 (SDA), 21 (SCL), SDA1, SCL1

מיפוי סיכות ארדואינו לאוטובוסי SDA ו- SCL
מיפוי סיכות ארדואינו לאוטובוסי SDA ו- SCL

שלב 3

כדי להקל על חילופי הנתונים עם מכשירים דרך אוטובוס I2C, נכתבה ספריית "Wire" סטנדרטית עבור Arduino. יש לו את הפונקציות הבאות:

התחלה (כתובת) - אתחול הספרייה וחיבור לאוטובוס I2C; אם לא צויין כתובת, ההתקן המחובר נחשב למאסטר; נעשה שימוש בכתובת 7 סיביות;

requestFrom () - משמש את המאסטר לבקשת מספר מסוים של בתים מהעבד;

beginTransmission (כתובת) - תחילת העברת הנתונים למכשיר העבדים בכתובת ספציפית;

endTransmission () - סיום העברת נתונים לעבד;

כתוב () - כתיבת נתונים מהעבד בתגובה לבקשה;

available () - מחזיר את מספר הבתים של המידע הזמין לקבל מהעבד;

קרא () - קרא בתים שהועברו מהעבד לאדון או מהמאסטר לעבד;

onReceive () - מציין את הפונקציה שיש לקרוא לה כאשר העבד מקבל שידור מהמאסטר;

onRequest () - מציין פונקציה להיקרא כאשר המאסטר מקבל שידור מהעבד.

שלב 4

בואו נראה איך לעבוד עם אוטובוס I2C באמצעות Arduino.

ראשית, נרכיב את המעגל, כפי שמוצג באיור. אנו נשלוט על בהירות ה- LED באמצעות הפוטנציומטר הדיגיטלי AD5171 בעל 64 המיקומים, המתחבר לאוטובוס I2C. הכתובת בה נתייחס לפוטנציומטר היא 0x2c (44 בעשרוני).

מעגל בקרת LED באמצעות פוטנציומטר דיגיטלי וארדואינו
מעגל בקרת LED באמצעות פוטנציומטר דיגיטלי וארדואינו

שלב 5

עכשיו בואו נפתח סקיצה מהדוגמאות של ספריית "Wire":

קובץ -> דוגמאות -> חוט -> דיגיטלי פוטנציומטר. בואו נטען אותו בזיכרון הארדואינו. בואו נדלק את זה.

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

מוּמלָץ: