كيفية تعيين عناوين I²C واستخدام ماسح I²C لشاشات LCD1602 وLCD2004

كيفية تعيين عناوين I²C واستخدام ماسح I²C لشاشات LCD1602 وLCD2004

في هذا الدليل، سنستعرض كيفية تعيين عناوين I²C واستخدام ماسح I²C لشاشات LCD1602 وLCD2004. فهم اتصال I²C أمر حاسم لدمج وحدات العرض هذه مع مشاريع Arduino الخاصة بك، ما يتيح نقل البيانات والتحكم بكفاءة. بنهاية هذا الدليل، ستتمكن من تحديد عناوين I²C لشاشات LCD الخاصة بك بفعالية والتأكد من أنها تعمل بشكل صحيح.

LCD1602-I2C display module with 4 wires

سنستخدم مستشعر BMP-180 كجزء من هذا المشروع، الذي يعمل باستخدام اتصال I²C. يوفر المستشعر قراءات لدرجة الحرارة والضغط، ويمكن عرضها على شاشة LCD1602 أو LCD2004. سيتضمن هذا الدرس التعليمي تعليمات التوصيل، مقتطفات من الشيفرة، وعرضًا للنتائج المتوقعة. لمزيد من الفهم البصري، تأكد من مشاهدة الفيديو المرفق (في الفيديو عند 00:00).

شرح الأجهزة

المكونات الرئيسية لهذا المشروع تتضمن مستشعر BMP-180 للضغط، وشاشة LCD1602 أو LCD2004، ولوحة أردوينو. مستشعر BMP-180 هو مستشعر ضغط رقمي يتواصل عبر بروتوكول I²C، ويتطلب فقط سطرين للبيانات: SDA (خط البيانات) وSCL (خط الساعة). شاشات LCD متوافقة أيضًا مع I²C ويمكن التحكم بها بسهولة باستخدام نفس بروتوكول الاتصال، مما يتيح إعدادًا مرتبًا وفعّالًا.

يعمل حساس BMP-180 بجهد تغذية بين 1.8V و3.6V، مما يعني أنه يمكن تشغيله عبر منظم جهد إذا كنت تستخدم مصدر جهد أعلى. من ناحية أخرى، تعمل شاشات LCD عادةً بجهد 5V، مما يجعل من السهل توصيلها بلوحة أردوينو دون أي مكونات إضافية.

تفاصيل ورقة البيانات

المصنّع بوش
رقم القطعة BMP-180
جهد المنطق/الإدخال والإخراج 1.8 - 3.6 فولت
جهد التغذية 1.8 - 3.6 فولت
تيار الإخراج (لكل قناة) 3.6 ميكروأمبير
التيار الأقصى (لكل قناة) 1 ملي أمبير
إرشادات تردد PWM غير قابل للتطبيق
عتبات منطقية للإدخال غير قابل للتطبيق
هبوط الجهد / Rالمصرف-المصدر (عند التشغيل)/ التشبع غير متاح
الحدود الحرارية -40 إلى +85 °C
حزمة 3.6 × 3.8 مم
ملاحظات / متغيرات مستشعر درجة الحرارة والضغط

  • تأكد من توفير جهد مناسب: 1.8 فولت إلى 3.6 فولت لـ BMP-180.
  • استخدم مقاومات سحب للأعلى على خطوط SDA وSCL لتحقيق اتصال I²C مستقر.
  • اجعل الأسلاك قصيرة لتجنب تدهور الإشارة.
  • تحقّق من صحة عنوان I²C أثناء المسح.
  • نطاق درجة حرارة المراقبة: -40 إلى +85 °C لجهاز BMP-180.

تعليمات الأسلاك

Arduino wirng for LCD1602 with I2C
Arduino wirng for LCD1602 with I2C

لتوصيل حساس BMP-180 وشاشة LCD بلوحة أردوينو الخاصة بك، اتبع الخطوات التالية:

أولاً، قم بتوصيل وحدة BMP-180Vnقم بتوصيل الدبوس بمخرج 5V على الأردوينو. بعد ذلك، قم بتوصيلGNDدبوس الـBMP-180 إلى أرضي الأردوينو. الـSDAيجب ربط دبوس BMP-180 بدبوس الأردوينوA4دبوس، بينما الـSCLالدبوس يتصل بـA5.

بالنسبة لشاشة LCD1602 أو LCD2004، قم بتوصيل الـVCCوصل الدبوس إلى 5 فولت على الأردوينو وGNDوصل الدبوس إلى الأرض أيضًا. الـSDAيجب أن يتصل دبوس شاشة الـ LCD أيضًا بـA4(مشترك مع BMP-180)، والـSCLيجب توصيل الدبوس بـA5.

تسمح هذه التهيئة لكلا الجهازين بالتواصل عبر نفس ناقل I²C، مما يضمن إعدادًا نظيفًا وفعالًا.

أمثلة على الشيفرة وشرح خطوة بخطوة

لمسح عناوين I²C، سنستخدم مقطع كود بسيط. المقتطف التالي يهيئ اتصال I²C ويجهز المراقب التسلسلي:


#include 

void setup() {
  Wire.begin();
  Serial.begin(9600);
  while (!Serial); // Leonardo: wait for serial monitor
  Serial.println("\nI2C Scanner");
}

يقوم هذا الكود بتهيئة مكتبة Wire للتواصل عبر I²C ويضبط المراقب التسلسلي للإخراج. وهو ضروري لتصحيح الأخطاء والتأكد من تعرف أجهزة I²C.

تقوم دالة loop بفحص الأجهزة على ناقل I²C وتطبع عناوينها:


void loop() {
  byte error, address;
  int nDevices = 0;
  Serial.println("Scanning...");

  for(address = 1; address < 127; address++) {
    Wire.beginTransmission(address);
    error = Wire.endTransmission();
    if (error == 0) {
      Serial.print("I2C device found at address 0x");
      Serial.println(address, HEX);
      nDevices++;
    }
  }
  if (nDevices == 0) Serial.println("No I2C devices found\n");
  delay(5000); // wait 5 seconds for next scan
}

تتحقق هذه الحلقة من كل عنوان من 1 إلى 127، محاوِلةً التواصل مع أي أجهزة متصلة. إذا استجاب جهاز ما للتواصل، يُطبع عنوانه على نافذة المراقبة التسلسلية. هذه خطوة حاسمة لتحديد عنوان I²C لشاشة LCD الخاصة بك أو للأجهزة الأخرى المتصلة.

عرض توضيحي / ما الذي تتوقعه

عند تشغيل ماسح I²C، يجب أن ترى رسائل في المراقب التسلسلي تشير إلى ما إذا تم العثور على أي أجهزة I²C. إذا نجح الفحص، سيعرض الناتج عناوين الأجهزة المتصلة مُنسقة بصيغة سداسية عشرية (على سبيل المثال: تم العثور على جهاز I²C عند العنوان 0x27). إذا لم يتم العثور على أي أجهزة، فستظهر رسالة تفيد بذلك.

من المهم التأكد من أن جميع الوصلات مثبتة بإحكام وأن مستويات الجهد الصحيحة مُزوَّدة لتجنب مشكلات في اكتشاف الأجهزة (في الفيديو عند 05:30).

الصور

Arduino wirng for LCD1602 with I2C
Arduino wirng for LCD1602 with I2C
LCD1602-I2C display module with 4 wires
LCD1602-I2C display module with 4 wires
LCD1602-I2C display module with 4 wires
LCD1602-I2C display module with 4 wires
LCD1602-I2C display module with 4 wires
LCD1602-I2C display module with 4 wires
LCD2004_display-1
LCD2004_display-1
LCD2004_display-2
LCD2004_display-2
I2C_module
I2C_module
125-Arduino code for finding an I2C address
اللغة: C++
تم النسخ!

الأشياء التي قد تحتاجها

الموارد والمراجع

لا توجد موارد حتى الآن.

ملفات📁

مكتبات أردوينو (ملف مضغوط)

Fritzing File