ה- PCF8575 הוא מרחיב קלט/פלט של 16 סיביות המתקשר עם מיקרו-בקר דרך ממשק I2C. זה מאפשר לך להרחיב את מספר סיכות הקלט/פלט בארדואינו שלך, מה שהופך אותו למושלם לפרויקטים הדורשים חיישנים, כפתורים או נוריות LED רבות. מדריך זה ינחה אתכם באמצעות חיבור ושימוש ב- PCF8575 עם Arduino.
מה תצטרך
- מודול Expander I/O של PCF8575
- לוח ארדואינו (למשל, אונו, מגה, ננו)
- חיישנים, כפתורים או נוריות LED לבדיקה
- חוטי לחם וגשר
- מחשב עם Arduino IDE המותקן
שלב 1: הבנת המודול PCF8575
ה- PCF8575 מספק 16 סיכות GPIO נוספות שניתן להגדיר ככניסות או תפוקות. זה מתקשר דרך פרוטוקול I2C ויש לו כתובת I2C מתכווננת לחיבור מספר מודולים לאותו אוטובוס.
Pinout
| פִּין | פוּנקצִיָה |
|---|---|
| VCC | ספק כוח (3.3V/5V) |
| GND | טָחוּן |
| SDA | קו נתונים I2C |
| SCL | קו שעון I2C |
| P0-P15 | סיכות קלט/פלט למטרה כללית |
תצורת כתובת I2C
- כתובת I2C נקבעת על ידי סיכות A0, A1 ו- A2:
- כל הסיכות ל- GND:
0x20(כתובת ברירת מחדל) - כל הסיכות ל- VCC:
0x27
- כל הסיכות ל- GND:
שלב 2: חיווט ה- PCF8575 ל- Arduino
כך תוכלו לחבר את PCF8575 לארדואינו:
| PCF8575 PIN | סיכת ארדואינו |
|---|---|
| VCC | 5V |
| GND | GND |
| SDA | A4 (SDA) |
| SCL | A5 (SCL) |
חבר את ציוד היקפי שלך (למשל, נוריות LED או כפתורים) לסיכות P0-P15.
פֶּתֶק: עבור לוחות ארדואינו אחרים, וודא שאתה משתמש בסיכות I2C הנכונות.
שלב 3: התקן את הספרייה הנדרשת
כדי לפשט את העבודה עם PCF8575, התקן את הספרייה "PCF8575".
שלבים להתקנה:
- פתח את IDE Arduino.
- לך אל סְקִיצָה > כלול ספרייה > לנהל ספריות.
- חפש "PCF8575" ולחץ לְהַתְקִין.
שלב 4: העלה את הקוד
דוגמה: שליטה על נוריות LED
קוד זה מדגים כיצד להפעיל ולכבות נוריות LED באמצעות PCF8575:
#include <Wire.h>
#include <PCF8575.h>
PCF8575 pcf8575(0x20); // Initialize with the default I2C address
void setup() {
Serial.begin(9600);
// Set all pins as outputs
for (int i = 0; i < 16; i++) {
pcf8575.pinMode(i, OUTPUT);
}
Serial.println("PCF8575 initialized.");
}
void loop() {
// Turn all LEDs on
for (int i = 0; i < 16; i++) {
pcf8575.digitalWrite(i, HIGH);
}
delay(1000);
// Turn all LEDs off
for (int i = 0; i < 16; i++) {
pcf8575.digitalWrite(i, LOW);
}
delay(1000);
}
דוגמה: כפתורי קריאה
קוד זה מדגים כיצד לקרוא קלט מכפתורים המחוברים ל- PCF8575:
#include <Wire.h>
#include <PCF8575.h>
PCF8575 pcf8575(0x20); // Initialize with the default I2C address
void setup() {
Serial.begin(9600);
// Set all pins as inputs
for (int i = 0; i < 16; i++) {
pcf8575.pinMode(i, INPUT);
}
Serial.println("PCF8575 initialized.");
}
void loop() {
for (int i = 0; i < 16; i++) {
int state = pcf8575.digitalRead(i);
Serial.print("Pin ");
Serial.print(i);
Serial.print(": ");
Serial.println(state);
}
delay(500);
}
שלב 5: בדוק את ההתקנה
- חבר את Arduino למחשב שלך באמצעות USB.
- פתח את ה- Arduino IDE ובחר את הנכון לוּחַ וכן נָמָל מתחת ל כְּלֵי עֲבוֹדָה תַפרִיט.
- העלה את הקוד לארדואינו על ידי לחיצה העלה.
- לדוגמא ה- LED, שימו לב נוריות LED המופלאות ומכבות. לדוגמת הכפתור, מצבי עקב על צג בצג הסידורי.
יישומים של PCF8575
- הרחבת סיכות GPIO לפרויקטים של ארדואינו
- בניית מטריצות LED מורכבות
- קריאת מספר חיישנים או מערכי כפתורים
- שליטה על ממסרים ומפעילים
פתרון בעיות
- אין תגובה מהמודול: אמת את חיבורי I2C ותצורת הכתובת.
- קריאות לא עקביות: יש לוודא אספקת חשמל יציבה ונגדי משיכה נאותים לקווי I2C.
- התנהגות סיכה שגויה: בדוק כפול מצבי סיכה (קלט/פלט) בקוד.
מַסְקָנָה
התממשק בהצלחה את מרחיבת ה- I/O של ה- I/O של PCF8575 עם Arduino, ומאפשר לך לשלוט או לקרוא מ -16 סיכות נוספות של GPIO. התנסו עם ציוד היקפי שונה והרחבו את הפרויקטים שלכם באמצעות מודול רב -תכליתי זה!





2 תגובות
Hallo Bruce,
benutze das Library von Renzo Mischianti (kannste nach googlen uind dort auch runterladen) und benenne den Folder in “PCF8575” um. Das Repository von Rob Tillaart hat andere Befehle und passt nicht zu dem o.g. Beispiel.
Ich hoffe das bringt dich weiter.
Gruß
Jochen
I copy the code and get a coplilation error:
C:\Users\Bruce\AppData\Local\Temp\.arduinoIDE-unsaved2025104-14104-1wy2nav.zi0f\sketch_nov4a\sketch_nov4a.ino: In function ‘void setup()’:
C:\Users\Bruce\AppData\Local\Temp\.arduinoIDE-unsaved2025104-14104-1wy2nav.zi0f\sketch_nov4a\sketch_nov4a.ino:11:13: error: ‘class PCF8575’ has no member named ‘pinMode’
pcf8575.pinMode(i, INPUT);
^~~~~~~
C:\Users\Bruce\AppData\Local\Temp\.arduinoIDE-unsaved2025104-14104-1wy2nav.zi0f\sketch_nov4a\sketch_nov4a.ino: In function ‘void loop()’:
C:\Users\Bruce\AppData\Local\Temp\.arduinoIDE-unsaved2025104-14104-1wy2nav.zi0f\sketch_nov4a\sketch_nov4a.ino:19:25: error: ‘class PCF8575’ has no member named ‘digitalRead’
int state = pcf8575.digitalRead(i);
^~~~~~~~~~~
exit status 1
Compilation error: ‘class PCF8575’ has no member named ‘pinMode’