يعد PCF8575 عبارة عن موسع I/O 16 بت يتواصل مع متحكم عبر واجهة I2C. يتيح لك توسيع عدد دبابيس الإدخال/الإخراج على Arduino ، مما يجعله مثاليًا للمشاريع التي تتطلب العديد من أجهزة الاستشعار أو الأزرار أو المصابيح. سيوجهك هذا البرنامج التعليمي من خلال الاتصال واستخدام PCF8575 مع Arduino.
ماذا ستحتاج
- PCF8575 I/O وحدة Expander
- لوحة Arduino (على سبيل المثال ، UNO ، Mega ، Nano)
- أجهزة الاستشعار أو الأزرار أو المصابيح للاختبار
- الأسلاك الأسلاك والبلوز
- جهاز كمبيوتر مع Arduino IDE مثبت
الخطوة 1: فهم وحدة PCF8575
يوفر PCF8575 16 دبابيس GPIO إضافية يمكن تكوينها كمدخلات أو مخرجات. يتواصل عبر بروتوكول I2C وله عنوان I2C قابل للتعديل لتوصيل وحدات متعددة بنفس الحافلة.
pinout
دبوس | وظيفة |
---|---|
VCC | مزود الطاقة (3.3V/5V) |
GND | أرضي |
SDA | خط بيانات I2C |
SCL | خط الساعة I2C |
P0-P15 | الغرض العام دبابيس I/O |
تكوين عنوان 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.
ملحوظة: للوحات Arduino الأخرى ، تأكد من استخدام دبابيس I2C الصحيحة.
الخطوة 3: تثبيت المكتبة المطلوبة
لتبسيط العمل مع PCF8575 ، قم بتثبيت مكتبة "PCF8575".
خطوات التثبيت:
- افتح Arduino IDE.
- اذهب إلى رسم > تشمل المكتبة > إدارة المكتبات.
- ابحث عن "PCF8575" وانقر فوق ثَبَّتَ.
الخطوة 4: تحميل الرمز
مثال: التحكم في المصابيح
يوضح هذا الرمز كيفية تشغيل LEDs وإيقاف تشغيله باستخدام 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 وحدد الصحيح سبورة و ميناء تحت أدوات قائمة طعام.
- قم بتحميل الرمز إلى Arduino بالنقر فوق رفع.
- على سبيل المثال LED ، مراقبة LEDs تشغيل وإيقاف. على سبيل المثال الزر ، حالات زر الشاشة في الشاشة التسلسلية.
تطبيقات PCF8575
- توسيع دبابيس GPIO لمشاريع Arduino
- بناء مصفوفات LED مجمع
- قراءة أجهزة استشعار متعددة أو صفائف الأزرار
- السيطرة على المرحلات والمحركات
استكشاف الأخطاء وإصلاحها
- لا استجابة من الوحدة: تحقق من اتصالات I2C وتكوين العنوان.
- قراءات غير متناسقة: تأكد من إمدادات الطاقة المستقرة ومقاومات السحب المناسبة لخطوط I2C.
- سلوك دبوس غير صحيح: قم بفحص أوضاع دبوس (إدخال/إخراج) في الكود.
خاتمة
لقد نجحت في الوصول إلى Expander PCF8575 I/O مع Arduino ، مما يتيح لك التحكم أو القراءة من 16 دبابيس GPIO إضافية. تجربة مع الأجهزة الطرفية المختلفة وتوسيع مشاريعك مع هذه الوحدة متعددة الاستخدامات!