الهدف من المشروع
الهدف هو إنشاء اتصال بين وحدتي أردوينو (واحدة رئيسية "Master" والأخرى تابعة "Slave") لإرسال رسالة نصية من الوحدة الرئيسية وعرضها على شاشة كريستال سائل (LCD) متصلة بالوحدة التابعة، وذلك باستخدام بروتوكول الاتصال I2C.
المكونات المستخدمة
عدد 2 لوحة أردوينو.
شاشة LCD.
بطارية 9 فولت.
مقاومة متغيرة (Potentiometer) للتحكم في سطوع الشاشة.
لوحة تجارب (Breadboard) وأسلاك توصيل.
طريقة العمل
اختيار البروتوكول: تم استخدام بروتوكول I2C لأنه يتطلب سلكين فقط لنقل البيانات (SDA و SCL) بالإضافة إلى الأرضي المشترك، مما يجعله بسيطًا وفعالًا لهذا التطبيق.
كود الأردوينو الرئيسي (Master): تم كتابة كود بسيط يقوم بإرسال رسالة نصية مرة واحدة فقط عند بدء التشغيل إلى عنوان محدد للـ Slave وهو 0x31. لم يتم استخدام دالة loop لإرسال الرسالة مرة واحدة فقط.
كود الأردوينو التابع (Slave):
يقوم هذا الكود بتهيئة شاشة الـ LCD وبروتوكول I2C على نفس العنوان 0x31.
يستخدم دالة onReceive التي تعمل تلقائيًا عند استلام أي بيانات من الـ Master.
عند استلام الرسالة، يقوم الكود بتخزينها في متغير نصي (string) لضمان عرضها كاملة وبدون أخطاء.
بعد ذلك، يقوم بمسح أي بيانات قديمة على الشاشة ثم يعرض الرسالة الجديدة، مع تقسيمها على سطرين إذا كانت أطول من 16 حرفًا.
التوصيلات الكهربائية
تم توصيل وحدتي الأردوينو معًا باستخدام ثلاثة أسلاك: A4 (SDA)، A5 (SCL)، و GND (الأرضي).
تم توصيل الوحدة التابعة (Slave) بشاشة الـ LCD حسب أطراف التوصيل القياسية.
واجهت مشكلة عند توصيل بطارية 9 فولت مباشرة بلوحة التجارب، حيث أثر الجهد العالي على الشاشة. تم حل المشكلة عن طريق توصيل البطارية بمنفذ VIN في لوحة الأردوينو، الذي يقوم بتنظيم الجهد إلى 5 فولت مناسبة للشاشة والمكونات الأخرى.