كيفية استخدام Expander PCF8575 I/O مع Arduino

How to Use the PCF8575 I/O Expander with Arduino

يعد PCF8575 عبارة عن موسع I/O 16 بت يتواصل مع متحكم عبر واجهة I2C. يتيح لك توسيع عدد دبابيس الإدخال/الإخراج على Arduino ، مما يجعله مثاليًا للمشاريع التي تتطلب العديد من أجهزة الاستشعار أو الأزرار أو المصابيح. سيوجهك هذا البرنامج التعليمي من خلال الاتصال واستخدام PCF8575 مع Arduino.


ماذا ستحتاج

  1. PCF8575 I/O وحدة Expander
  2. لوحة Arduino (على سبيل المثال ، UNO ، Mega ، Nano)
  3. أجهزة الاستشعار أو الأزرار أو المصابيح للاختبار
  4. الأسلاك الأسلاك والبلوز
  5. جهاز كمبيوتر مع 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

الخطوة 2: توصيل PCF8575 إلى Arduino

إليك كيفية توصيل PCF8575 بأردوينو:

PCF8575 PIN دبوس أردوينو
VCC 5V
GND GND
SDA A4 (SDA)
SCL A5 (SCL)

قم بتوصيل الأجهزة الطرفية الخاصة بك (على سبيل المثال ، مصابيح LED أو الأزرار) بدبابيس P0-P15.

ملحوظة: للوحات Arduino الأخرى ، تأكد من استخدام دبابيس I2C الصحيحة.


الخطوة 3: تثبيت المكتبة المطلوبة

لتبسيط العمل مع PCF8575 ، قم بتثبيت مكتبة "PCF8575".

خطوات التثبيت:

  1. افتح Arduino IDE.
  2. اذهب إلى رسم > تشمل المكتبة > إدارة المكتبات.
  3. ابحث عن "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: اختبار الإعداد

  1. قم بتوصيل Arduino بجهاز الكمبيوتر الخاص بك عبر USB.
  2. افتح Arduino IDE وحدد الصحيح سبورة و ميناء تحت أدوات قائمة طعام.
  3. قم بتحميل الرمز إلى Arduino بالنقر فوق رفع.
  4. على سبيل المثال LED ، مراقبة LEDs تشغيل وإيقاف. على سبيل المثال الزر ، حالات زر الشاشة في الشاشة التسلسلية.

تطبيقات PCF8575

  1. توسيع دبابيس GPIO لمشاريع Arduino
  2. بناء مصفوفات LED مجمع
  3. قراءة أجهزة استشعار متعددة أو صفائف الأزرار
  4. السيطرة على المرحلات والمحركات

استكشاف الأخطاء وإصلاحها

  • لا استجابة من الوحدة: تحقق من اتصالات I2C وتكوين العنوان.
  • قراءات غير متناسقة: تأكد من إمدادات الطاقة المستقرة ومقاومات السحب المناسبة لخطوط I2C.
  • سلوك دبوس غير صحيح: قم بفحص أوضاع دبوس (إدخال/إخراج) في الكود.

خاتمة

لقد نجحت في الوصول إلى Expander PCF8575 I/O مع Arduino ، مما يتيح لك التحكم أو القراءة من 16 دبابيس GPIO إضافية. تجربة مع الأجهزة الطرفية المختلفة وتوسيع مشاريعك مع هذه الوحدة متعددة الاستخدامات!

اترك تعليقًا

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.