في هذه المقالة سنلقي نظرة على ماهية واجهة I2C (ay-tu-si ، i-two-tse) ، وما هي ميزاتها وكيفية التعامل معها.
انه ضروري
- - اردوينو
- - مقياس الجهد الرقمي AD5171 ؛
- - الصمام الثنائي الباعث للضوء ؛
- - 220 أوم المقاوم ؛
- - 2 مقاومات لـ 4.7 كيلو أوم ؛
- - توصيل الأسلاك.
تعليمات
الخطوة 1
يستخدم بروتوكول الاتصال التسلسلي IIC (يسمى أيضًا I2C - الدوائر المتكاملة) خطي اتصال ثنائي الاتجاه لنقل البيانات ، يطلق عليهما ناقل SDA (البيانات التسلسلية) وناقل SCL (الساعة التسلسلية). هناك نوعان من خطوط الكهرباء. يتم سحب حافلات SDA و SCL إلى الحافلة الكهربائية من خلال المقاومات.
يوجد على الأقل Master واحد في الشبكة يبدأ نقل البيانات ويولد إشارات التزامن. تحتوي الشبكة أيضًا على عبيد ينقلون البيانات بناءً على طلب السيد. كل جهاز تابع له عنوان فريد يخاطبه السيد. يشار إلى عنوان الجهاز في جواز السفر (ورقة البيانات). يمكن توصيل ما يصل إلى 127 جهازًا بحافلة I2C واحدة ، بما في ذلك العديد من الأجهزة الرئيسية. يمكن توصيل الأجهزة بالحافلة أثناء التشغيل ، أي وهو يدعم التوصيل الساخن.
الخطوة 2
يستخدم Arduino منفذين للعمل على واجهة I2C. على سبيل المثال ، في Arduino UNO و Arduino Nano ، يتوافق المنفذ التناظري A4 مع SDA ، المنفذ التناظري A5 يتوافق مع SCL.
بالنسبة إلى موديلات الألواح الأخرى:
اردوينو برو وبرو ميني - A4 (SDA) ، A5 (SCL)
اردوينو ميجا - 20 (SDA) ، 21 (SCL)
اردوينو ليوناردو - 2 (SDA) ، 3 (SCL)
اردوينو ديو - 20 (SDA) ، 21 (SCL) ، SDA1 ، SCL1
الخطوه 3
لتسهيل تبادل البيانات مع الأجهزة عبر ناقل I2C ، تمت كتابة مكتبة "Wire" قياسية لـ Arduino. لديها الوظائف التالية:
تبدأ (العنوان) - تهيئة المكتبة والاتصال بحافلة I2C ؛ إذا لم يتم تحديد عنوان ، فسيتم اعتبار الجهاز المتصل هو الرئيسي ؛ يتم استخدام عنونة 7 بت ؛
requestFrom () - يستخدمه السيد لطلب عدد معين من البايتات من العبد ؛
startTransmission (العنوان) - بداية نقل البيانات إلى الجهاز التابع في عنوان محدد ؛
endTransmission () - إنهاء إرسال البيانات إلى العبد ؛
write () - كتابة البيانات من العبد استجابة لطلب ؛
available () - إرجاع عدد بايتات المعلومات المتاحة لتلقيها من العبد ؛
قراءة () - قراءة البايت المنقولة من العبد إلى السيد أو من السيد إلى العبد ؛
onReceive () - تشير إلى الوظيفة التي سيتم استدعاؤها عندما يتلقى العبد إرسالًا من السيد ؛
onRequest () - يشير إلى وظيفة يتم استدعاؤها عندما يتلقى السيد إرسالًا من التابع.
الخطوة 4
دعونا نرى كيفية العمل مع I2C bus باستخدام Arduino.
أولاً ، سنقوم بتجميع الدائرة ، كما هو موضح في الشكل. سنتحكم في سطوع مؤشر LED باستخدام مقياس الجهد الرقمي AD5171 ذو 64 موضعًا ، والذي يتصل بحافلة I2C. العنوان الذي سنشير إليه إلى مقياس الجهد هو 0x2c (44 في النظام العشري).
الخطوة الخامسة
لنفتح الآن رسمًا تخطيطيًا من أمثلة مكتبة "Wire":
ملف -> عينات -> سلك -> مقياس الجهد الرقمي. لنقم بتحميله في ذاكرة Arduino. دعونا نشغلها.
كما ترى ، يرتفع سطوع LED بشكل دوري ، ثم ينطفئ فجأة. في هذه الحالة ، نتحكم في مقياس الجهد باستخدام Arduino عبر ناقل I2C.