Eng. Barahim | بارحيم
Eng. Barahim | بارحيم

@EngBarahim

7 تغريدة 45 قراءة Mar 05, 2021
واحد من اهم بروتوكولات التواصل للمتحكمات - microcontrollers - هو I2C . ايش هو بروتوكول I2C ؟ وكيف استفيد منه في المتحكمات؟ حنأخذ لفة بسيطة عليه مع تجربة لواحدة من تطبيقاته
I2C وسيلة تواصل تسلسلية بسرعات بطيئة نسبيا وممكن تستخدمه في عدة تطبيقات منها تواصل بين متحكم وشاشة ، متحكم ومجموعة حساسات ، متحكمين ومجموعة ملحقات اخرى. بمعنى آخر يمكن تواجد اكثر من جهاز master واكثر من جهاز slave على نفس ال bus
اللي احتاجه عشان ابدا اتصال I2C هو سلكين ، سلك clock وسلك data .. ولازم ننتبه لموضوع طول السلكين لان البروتوكول عبارة عن وسيلة تواصل قصيرة مدى ، فكل ما طول السلكين قلت سرعة التواصل واللي تتراوح بين ١٠٠ الى ٤٠٠ كيلوبايت لكل ثانية
جهاز ال master هو اللي يبدا التواصل بتحديد عنوان الجهاز + تحديد اذا هو حيرسل او حيستقبل + كتابة البيانات اللي حيرسلها او قراءة البيانات اللي حيستقبلها .. من الجهة الاخرى جهاز ال slave يتأكد اذا عنوان المرسل خاص فيه او لا + يشوف اذا حيستقبل او حيرسل + يرسل البيانات او يستقبلها
مثل ما ذكرت I2C ، ممكن يستخدم بين متحكمين او بين متحكم وملحقات اخرى .. فتخيل عندك مشروع فيه شاشة + مجموعة كبيرة من الحساسات والمحركات + اتصال بتطبيق على الجوال .. وجيت تستخدم متحكم ولقيت عدد المنافذ غير كافية .. فهنا دمجت بين Arduino mega و ESP8266 عن طريق I2C ..
حتظهر لك مشكلة اختلاف جهد التواصل بين اللوحين : من ٥ فولت الى ٣.٣ فولت .. وهنا ممكن تحل المشكلة عن طريق محول جهد باتجاهين - bidirectional level converter .. يضمن لك اتصال آمن بين الجهازين حيث الاردوينو يتواصل بجهد ٥ فولت وال ESP يتواصل بجهد ٣.٣ فولت
التجربة في الصورة هو اتصال ESP بالجوال عن طريق تطبيق Blynk وطلب اليوم والوقت ،ال ESP مبرمج ك Master فهو رح يبدا التواصل مع الاردوينو وحيرسله اليوم والوقت. والاردوينو كجهاز slave حيستقبل بيانات اليوم والوقت ويعرضها على شاشة TFT 3.5. وطبعا التواصل تم عن طريق بروتوكول ال I2C

جاري تحميل الاقتراحات...