PCF8574: מידע על הרחבת קלט / פלט I2C עבור Arduino

שבב PCF8574 TI

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

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

מהו אוטובוס I2C?

Arduino UNO פונקציות מיליס

השם I2C מקורו מעגל אינטגרטיבי או מעגלים משולבים. גרסת 1.0 שלה נוצרה בשנת 1992 על ידי פיליפס. ואז 2.1 השני היה מגיע בשנת 2000 והיום הוא הפך לסטנדרט (ב 100 קילו-ביט / שנייה, אם כי הוא מאפשר עד 3.4 מגה-ביט / שנייה מקסימום) כאשר פג הפטנט בשנת 2006 וניתן להשתמש בו באופן חופשי.

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

El I2C הוא אוטובוס ידוע היטב מהתקשורת הסדרתית. היא משתמשת בפרוטוקול תקשורת סינכרוני עם שני ערוצים בלבד (ישנו שלישי, אך הוא מצורף להפניה או ל- GND), למעשה הוא מכונה גם TWI (ממשק דו חוט)

  • אחד לשעון (SCL).
  • אחר לנתונים (SDA).
שניהם חיבורי CMOS עם ניקוז פתוח ודורשים נגדי משיכה. כמו כן, אם מכשיר אחד משדר 0 ואחר 1, עלולות להיות בעיות, ולכן הקו מוגדר תמיד ל -1 (רמה גבוהה) והמכשירים תמיד משדרים 0 (רמה נמוכה).

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

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

  • Arduino UNO: SDA נמצא ב- A4 ו- SCK ב- A5
  • ארדואינו ננו: זהה לקודם.
  • ארדואינו מיני פרו: אותו.
  • ארדואינו מגה: SDA נמצא על סיכה 20 ו- SCK על 21.
  • מידע נוסף על צלחות.

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

  • התחל (): הפעל את ספריית Wire וציין אם היא מאסטר או עבד
  • בקשה מ (): משמש את המאסטר לבקשת נתונים מהעבד.
  • beginTransmission (): התחל שידור עם עבד.
  • endTransmission (): סוף שידור.
  • לִכתוֹב()- כתוב נתונים מעבד בתגובה לבקשת המאסטר, או שתוכל לעמוד בתור שידור של מאסטר.
  • זמין (): יחזיר את מספר הבתים לקריאה.
  • לקרוא(): קרא בתים המועברים מעבד למורה או להיפך.
  • onReceive (): קורא לפונקציה כאשר עבד מקבל שידור ממורה.
  • בבקשה (): קורא לפונקציה כאשר עבד מבקש נתונים ממורה.

כדי MAS Información על תכנות ופונקציות של Arduino תוכלו להוריד את מדריך PDF.

מהו ה- PCF8574?

מודול PCF8574

ה- PCF8574 הוא א הרחבת כניסות ויציאות דיגיטליות (I / O) של אוטובוס I2C. ניתן לייצר אותו על ידי יצרנים שונים, בנוסף להיותו זמין ב- ICs ובמודולים. בכל מקרה, זה מאוד מעשי לחבר אותו ללוח הארדואינו שלך ויש לו את היכולת לשלוט על יותר מכשירים ממה שלוח האם מאפשר.

El PCF8574 pinout הוא פשוט, מכיוון שהוא כולל רק 8 אורנים כיווני (P0-P7 שבו הצ'יפים לתקשורת מחוברים), ומצד שני יש לך את ה- SDA וה- SCL שעליך לחבר ללוח Arduino, כמו גם VCC ו- GND כדי להפעיל גם את המודול. ואל תשכח את שלושת סיכות הכתובת A0, A1, A2 כדי לבחור לאילו מהמכשירים התקשורת מופנית ...

PCF8574 pinout

בעלים תכונות אחרות שתדעו:

  • החיבורים שלו, בהיותם נקז פתוח, יכולים להיות משמש גם ככניסות וכיציאות.
  • La זרם שיא זה 25mA כאשר הוא פועל כפלט (שוקע, כאשר הזרם זורם לכיוון PCF8574) ו- 300 µA (מקור, הזרם זורם מ- PCF8574).
  • La מתח ספק הכוח הוא 2.5 ו -6 וולט. צריכת המתנה נמוכה מאוד, רק 10 µA.
  • כל התפוקות יש תפסים, לקיים את המדינה ללא צורך בפעולות חיצוניות. אתה צריך לפעול רק כאשר אתה רוצה לשנות את המדינה.
  • אתה יכול לקבל 8 כיוונים אפשריים, כלומר, עד 8 מכשירים לתקשר עם 8 מודולים או להשתמש בהם כדי להרחיב אותו עד 64 מכשירים. הכתובות (סיכות A0, A1, A2) יהיו:
    • 000: כתובת 0x20
    • 001: כתובת 0x21
    • 010: כתובת 0x22
    • 011: כתובת 0x23
    • 100: כתובת 0x24
    • 101: כתובת 0x25
    • 110: כתובת 0x26
    • 111: כתובת 0x27
  • מודה הפרעה (INT) על ידי קו מיוחד לאיתור נתונים ללא פיקוח מתמיד.

שילוב עם ארדואינו

צילום מסך של Arduino IDE

החיבור עם Arduino הוא פשוט מאוד, אתה רק צריך לחבר Vcc עם סיכת 5V של לוח Arduino, ו- GND עם GND של Arduino. מצד שני, הסיכות של מודול PCA8574 SDA ו- SCL יכולות להיות להתחבר עם סיכות 14 (A5 SCL) ו- 15 (A4 SDA). רק עם זה זה יתחיל לעבוד, ברור שאתה יכול להשתמש ב- Px לחיבור ההתקנים שאתה רוצה לתקשר ...

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

#include <Wire.h>
 
const int address = 0x38;
 
void setup()
{
   Wire.begin();
   Serial.begin(9600);
}
 
void loop()
{
   for (short channel = 0; channel < 8; channel++)
   {
      // Escribir dato en cada uno de los 8 canales
      Wire.beginTransmission(address);
      Wire.write(~(1 << channel));
      Wire.endTransmission();
      
      // Lee dato del canal
      delay(500);
   }
}

כקלט:

#include <Wire.h>
 
const int address = 0x38;
 
void setup()
{
   Wire.begin();
   Serial.begin(9600);
}
 
void loop()
{
   short channel = 1;
   byte value = 0;
 
   // Leer el dato del canal
   Wire.requestFrom(pcfAddress, 1 << channel);
   if (Wire.available())
   {
      value = Wire.read();
   }
   Wire.endTransmission();
 
   // Mostrar el valor leido por el monitor serie
   Serial.println(value);
}

או גם השתמש בספריות, כגון ה- PCF8574 שתוכל הורד כאן והשתמש בקוד הדומה לזה מהדוגמה עצמה שמגיעה יחד עם הספריה הזו:

#include <Wire.h>
#include "PCF8574.h"
 
PCF8574 expander;
 
void setup() 
{
  Serial.begin(9600);
  
  expander.begin(0x20);
  
  /* Setup some PCF8574 pins for demo */
  expander.pinMode(0, OUTPUT);
  expander.pinMode(1, OUTPUT);
  expander.pinMode(2, OUTPUT);
  expander.pinMode(3, INPUT_PULLUP);
 
  /* Blink hardware LED for debug */
  digitalWrite(13, HIGH);  
  
  /* Toggle PCF8574 output 0 for demo */
  expander.toggle();
  
  /* Blink hardware LED for debug */
  digitalWrite(13, LOW);
}
 
 
 
void loop() 
{
}


תוכן המאמר עומד בעקרונותינו של אתיקה עריכתית. כדי לדווח על שגיאה לחץ כאן.

היה הראשון להגיב

השאירו את התגובה שלכם

כתובת הדוא"ל שלך לא תפורסם. שדות חובה מסומנים *

*

*

  1. אחראי לנתונים: מיגל אנחל גטון
  2. מטרת הנתונים: בקרת ספאם, ניהול תגובות.
  3. לגיטימציה: הסכמתך
  4. מסירת הנתונים: הנתונים לא יועברו לצדדים שלישיים אלא בהתחייבות חוקית.
  5. אחסון נתונים: מסד נתונים המתארח על ידי Occentus Networks (EU)
  6. זכויות: בכל עת תוכל להגביל, לשחזר ולמחוק את המידע שלך.