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

פטל PI מכשירי I2C מרובים: 3 שלבים
פטל PI מכשירי I2C מרובים: 3 שלבים

וִידֵאוֹ: פטל PI מכשירי I2C מרובים: 3 שלבים

וִידֵאוֹ: פטל PI מכשירי I2C מרובים: 3 שלבים
וִידֵאוֹ: RAMPS 1.6 - Basics 2024, נוֹבֶמבֶּר
Anonim
פטל PI מכשירי I2C מרובים
פטל PI מכשירי I2C מרובים
פטל PI מכשירי I2C מרובים
פטל PI מכשירי I2C מרובים

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

שלב 1: כמה פקודות מעטפת

כמה פקודות מעטפת
כמה פקודות מעטפת

חבר אחד ממכשירי ה- i2c שלך כשפי הפטל שלך הוא, הפעל את פאי הפטל והפעל

sudo i2cdetect -y 1

תראה טבלה כמו באיור המצורף. יש לי לצרף חיישן טמפ 'BMP280 ולחץ ברומטרי. כתובת i2c היא 0x76 בהתאם לטבלה. שימו לב לכתובת הזו.

בצע זאת עבור כל מכשירי ה- i2c שלך.

שלב 2: מקרה ראשון: למכשירי I2c יש את אותה כתובת

מקרה ראשון: למכשירי I2c יש את אותה כתובת
מקרה ראשון: למכשירי I2c יש את אותה כתובת

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

אני אצור שני אוטובוסים נוספים, אוטובוס 3 ו -4

פתח את הקלי והפעל

תקליטור /אתחול

סודו ננו config.txt

הוסף את שורת הקוד הבאה, העדיפה בקטע שבו SPI ו- i2c מופעל.

dtoverlay = i2c-gpio, אוטובוס = 4, i2c_gpio_delay_us = 1, i2c_gpio_sda = 23, i2c_gpio_scl = 24

קו זה ייצור אוטובוס i2c נוסף (אוטובוס 4) ב- GPIO 23 כ- SDA ו- GPIO 24 כ- SCL (GPIO 23 ו- 24 הוא ברירת מחדל)

הוסף גם את השורה הבאה ליצירת אוטובוס i2c 3

dtoverlay = i2c-gpio, אוטובוס = 3, i2c_gpio_delay_us = 1, i2c_gpio_sda = 17, i2c_gpio_scl = 27

GPIO 17 יהיה ה- SDA ו- GPIO 27 יהיה ה- SCL עבור אוטובוס i2c 4.

לחץ על בקרת X כדי לצאת.

הערה לגבי מספרי האוטובוסים וההזמנה:

לעולם אל תשתמש באוטובוס 0 ו -2, הוא משמש לדברים אחרים בלוח כמו eprom על כובעים וכו '

למהדורת raspbian באפריל 2019:

עליך תמיד להתחיל עם האוטובוס הגבוה ביותר (אוטובוס 4 במקרה זה) בתצורת config.txt שלך ולעבור לאוטובוס הנמוך ביותר (אוטובוס 3).

האוטובוס הנמוך ביותר חייב להיות תמיד אוטובוס 3

אם אתה צריך 5 אוטובוסים נוספים, האוטובוסים חייבים להיות דו בסדר גודל של 7, 6, 5, 4, 3

בעיה זו בהזמנת אוטובוסים לא הייתה שם כאשר הוראה זו נכתבה במקור. נראה שנעשו שינויים בגרעין.

כבה את ה- PI שלך, כבה אותו. חבר את התקני i2c שלך לאפיק 4 (SDA ל- GPIO 23 ו- SCL ל- GPIO 24) והשני לאוטובוס i2c 3 (SDA ל- GPIO 17 ו- SCL ל- GPIO 27).

הפעל את ה- pi.

לָרוּץ:

sudo i2cdetect -l (אותיות קטנות L)

כעת תראה כי אוטובוס i2c 3 ו -4 מופיע גם כן. הפעל גם:

sudo i2cdetect -y 3

sudo i2cdetect -y 4

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

Attach היא דוגמה לחיישן הטמפרטורה והלחץ הפופולרי BMP280. אף מרבב לא יכול לקרוא 2 BMP280 במהירות זו.

מצורפת גם דוגמה ל -2 חיישני Sensirion SDP 810. שוב עובד הרבה יותר מהר מהמרבב שהשתמשתי בו בעבר

יצרתי קוד פייתון לקריאת שני BMP388 חדשים מ- adafruit.

אני עשוי להוסיף בעתיד גם חיישנים אחרים ל

שלב 3: מקרה 2: כתובות I2c שונות

פָּשׁוּט. i2c הוא אוטובוס. מטרה של אוטובוס היא לתקשר עם מספר מכשירים. חבר את ההתקנים במקביל לאותו אוטובוס i2c. אתה יכול להשתמש באוטובוס אחד.

לָרוּץ:

sudo i2cdetect -y 1

תראה את המכשירים ברשימה.

מוּמלָץ: