جدول المحتويات:

توصيل لوحتين خارجيتين معًا باستخدام I2C: 4 خطوات
توصيل لوحتين خارجيتين معًا باستخدام I2C: 4 خطوات

فيديو: توصيل لوحتين خارجيتين معًا باستخدام I2C: 4 خطوات

فيديو: توصيل لوحتين خارجيتين معًا باستخدام I2C: 4 خطوات
فيديو: طلعت معا اوبر ومشوارها نص ساعه وهيا وصول😭😭#shorts #ترند_السعودية #السعودية #tiktok 2024, شهر نوفمبر
Anonim
توصيل جهازي OOBoards معًا باستخدام I2C
توصيل جهازي OOBoards معًا باستخدام I2C

يغطي هذا التوجيه كيفية توصيل جهازي OOBoards باستخدام I2C.

الخطوة 1: الاتصال بناقل شبكة I2C

الاتصال بحافلة شبكة I2C
الاتصال بحافلة شبكة I2C
الاتصال بحافلة شبكة I2C
الاتصال بحافلة شبكة I2C

هناك نوعان من حافلات I2C على OOBoards ، وحافلة محلية ، وحافلة شبكة.

رمز OOPIC هو في الأساس لغة مفسرة ، أي يتم تخزين "الكود" في EEPROM ، وقراءته / تفسيره بواسطة المعالج الدقيق في الوقت الفعلي. يستخدم EEPROM ناقل LOCAL I2C للتواصل مع وحدة التحكم الدقيقة. إذا كنت ستنظر إلى هذه الحافلة المحلية على مرسمة الذبذبات ، فسترى ثرثرة مستمرة. على لوحات OOBoards ، الناقل المحلي هو ما يتم توصيله بموصل I2C ، وهذا ليس بالضرورة ما نريده. عادة ما يكون ناقل الشبكة هو الناقل المستخدم للتواصل مع الأجهزة الأخرى / oopics ، على OOBoards لا يحتوي هذا الناقل على موصل. من أجل الوصول إلى هذا الناقل ، يجب عليك لحام الأسلاك في المسامير 42 و 37 من المتحكم الدقيق (تم وضع علامة N_SDA و N_SCL على التخطيطي على التوالي).

الخطوة 2: أضف مقاومات Pullup

بمجرد إجراء توصيلات SDA و SCL على كل معالج ، يمكن للوحاتين القيام بذلك

يتم ربطها معًا عن طريق توصيل SDA بـ SDA و SCL بـ SCL وتوصيل سلك أرضي مشترك بين الألواح. ستحتاج أيضًا إلى مقاومة سحب على كل سطر (لقد استخدمت 12 كيلو ، ولكن هذا هو بالضبط ما كنت أرقده حولك). لاحظ أنك تحتاج فقط إلى مقاومة سحب واحدة لكل سطر ليصبح المجموع اثنين من المقاومات (وليس 4).

الخطوة 3: برمجة العبد

الآن بعد أن أصبحت التوصيلات المادية موجودة ، ستحتاج إلى برمجة وحدة التحكم الدقيقة التابعة. لقد أضفت بعض التعليمات البرمجية أدناه والتي يجب أن تبدأ.

خافت SLAVE كجديد oDDELinkDim LED كـ New oDIO1Sub Main () & aposset عنوان I2C الخاص بنا إلى 2 (ملاحظة ، يجب أن يتطابق هذا مع عنوان التحكم عن بعد & apos ؛ الذي قمنا بتعيينه في الكود الرئيسي) ooPIC. Node = 2 & apossetup LED LED. IOLine = 5 LED. الاتجاه = cvOutput & aposnow ، اربط إخراج كائن DDELink الخاص بنا بـ & aposthe LED ، وقم بتشغيله … الآن تلقائيًا ، سيومض مؤشر LED SLAVE. Output. Link (LED) SLAVE. Operate = cvTrueEnd Sub

الخطوة 4: برمجة برنامج الماجستير

أخيرًا ، قم ببرمجة المتحكم الرئيسي. انتبه جيدًا للخطوط التي تعيّن خاصية DDELink's. Location: ما لم يتم تعيين هذا بشكل صحيح ، فلن يعمل هذا!

خافت ماستر كجديد oDDELinkDim wire كجديد oWireDim hz1 كجديد oBitSub Main () & aposlink جهاز ضبط الوقت لمدة ثانية واحدة إلى الشيء الذي يمكننا الوصول إليه & apost هذا البتة سوف يتبدل الآن مرة واحدة في الثانية wire. Input. Link (ooPIC. Hz1) wire. Output. Link (hz1) wire. Operate = cvTrue & aposthis يعيّن عنوان I2C لوحدة التحكم الدقيقة المحلية الخاصة بنا وواجهة I2C المفصلية غير نشطة حتى يتم تعيين العنوان ooPIC. Node = 1 والآن نقوم بإعداد كائن DDELink ، المدخلات لدينا هي bit hz1 & aposnote أن يحتوي الكائن أيضًا على خاصية الإخراج التي يتم استخدامها & apos ، عندما نكون في وضع الاستلام Master. Input. Link (hz1) & apost هذا هو عنوان I2C لوحدة التحكم الدقيقة عن بُعد ، لاحظ أنه & apos في الكود التابع ، نخبرها أن يكون لها عنوان من 2 Master. Node = 2 & aposugh … هذا هو الجزء السيء ، هذا هو "عنوان" كائن DDELink & aposobject في مساحة الذاكرة التابعة و aposs. من أجل معرفة هذا الرقم ، & apos ؛ نحتاج إلى فتح وتجميع كود التابع ، ثم الانتقال إلى View-> Compiled Code. "ابحث عن شيء مثل: & aposL *. Construct. Begin؛ Dim as new oDDELink & aposwhere * هو أي رقم ، وهو اسم كائن DDELink & aposin الخاص بك. يجب أن يقرأ السطر الموجود أسفله مباشرة شيئًا مثل: & aposC0020: 041 ؛ هذا.. العنوان والرقم الفريد الموجود على يمين & apos: & apos هو عنوان كائن DDELink الرئيسي التابع للرقيق. Location = 41 & aposthis يخبر الكائن الذي سنرسله البيانات (على سبيل المثال ، انسخ البيانات من. Input property & aposto the slaves. output property (ملاحظة ، إذا قمت بتعيين هذا للاستلام ، فسيكون عكس ذلك) = cvTrue Do & aposcheck لمعرفة ما إذا كنا نقوم حاليًا بنقل البيانات إذا كان Master. Transmitting = cvFalse ثم يؤدي تعيين هذه القيمة إلى 1 إلى قيام السيد بإرسال القيمة إلى التابع & aposnote ، يتم إعادة تعيين هذا تلقائيًا إلى 0 عند اكتمال عملية الإرسال Master. = 1 End If LoopEnd Sub

موصى به: