فهرست مطالب:

اتصال دو OOBoards با هم با استفاده از I2C: 4 مرحله
اتصال دو OOBoards با هم با استفاده از I2C: 4 مرحله

تصویری: اتصال دو OOBoards با هم با استفاده از I2C: 4 مرحله

تصویری: اتصال دو OOBoards با هم با استفاده از I2C: 4 مرحله
تصویری: How to use LCD LCD1602 with I2C module for Arduino - Robojax 2024, جولای
Anonim
اتصال دو OOBoboard با هم با استفاده از I2C
اتصال دو OOBoboard با هم با استفاده از I2C

این دستورالعمل نحوه اتصال دو OOBoards با استفاده از I2C را پوشش می دهد.

مرحله 1: اتصال به گذرگاه شبکه I2C

اتصال به گذرگاه شبکه I2C
اتصال به گذرگاه شبکه I2C
اتصال به گذرگاه شبکه I2C
اتصال به گذرگاه شبکه I2C

دو اتوبوس I2C در OOBoards ، یک اتوبوس محلی و یک اتوبوس شبکه وجود دارد.

کد OOPIC در اصل یک زبان تفسیر شده است ، یعنی "کد" در EEPROM ذخیره می شود و توسط ریزپردازنده در زمان واقعی خوانده/تفسیر می شود. EEPROM برای ارتباط با میکروکنترلر از گذرگاه LOCAL I2C استفاده می کند. اگر بخواهید به این اتوبوس محلی در اسیلوسکوپ نگاه کنید ، دائماً پچ پچ می کنید. در تابلوهای OOBoards ، گذرگاه محلی چیزی است که به کانکتور I2C متصل است ، این لزوماً آن چیزی نیست که ما می خواهیم. گذرگاه NETWORK معمولاً گذرگاهی است که برای برقراری ارتباط با سایر دستگاه ها استفاده می شود ، در OOBoards این گذرگاه کانکتور ندارد. برای دسترسی به این گذرگاه ، باید سیم ها را به پایه های 42 و 37 میکروکنترلر لحیم کنید (به ترتیب N_SDA ، N_SCL در شماتیک نشان داده شده است).

مرحله 2: مقاومت های Pullup را اضافه کنید

هنگامی که اتصالات SDA و SCL روی هر پردازنده برقرار شد ، دو برد می توانند

با اتصال SDA به SDA ، SCL به SCL و اتصال سیم مشترک زمین بین تخته ها به یکدیگر متصل شوند. شما همچنین به یک مقاومت کششی در هر خط نیاز خواهید داشت (من از 12k استفاده کردم ، اما این همان چیزی بود که من در اطراف داشتم). توجه داشته باشید که در مجموع برای یک مقاومت در مجموع دو مقاومت (به 4) به یک مقاومت کشش نیاز دارید.

مرحله 3: برده را برنامه ریزی کنید

اکنون که اتصالات فیزیکی وجود دارد ، باید میکروکنترلر برده را برنامه ریزی کنید. من تعدادی کد را در زیر اضافه کردم که باید شروع به کار کند.

Dim SLAVE به عنوان oDDELinkDim LED جدید به عنوان oDIO1Sub اصلی () و آدرس I2C ما را به 2 برسانید (توجه داشته باشید که این آدرس باید با راه دور و آدرس اصلی که در کد اصلی تنظیم کرده ایم مطابقت داشته باشد) ooPIC. Node = 2 & apossetup an LED LED. IOLine = 5 LED. = cvOutput & aposnow ، خروجی شی DDELink ما را به & aposthe LED پیوند دهید و آن را روشن کنید … اکنون به طور خودکار ، LED SLAVE چشمک می زند. Output. Link (LED) SLAVE. Operate = cvTrueEnd Sub

مرحله 4: برنامه ریزی کارشناسی ارشد

در نهایت ، میکروکنترلر اصلی را برنامه ریزی کنید. به خطوطی که ویژگی DDELink را تعیین می کنند.

Dim Master As New oDDELinkDim wire New New oWireDim hz1 به عنوان New oBitSub Main () و تایمر 1 ثانیه ای را به کمی که می توانیم به آن دسترسی پیدا کنیم پیوند دهید و این بیت اکنون یک بار در هر ثانیه سیم کشی می کند. ورودی. پیوند (ooPIC. Hz1) سیم. خروجی پیوند (hz1) wire. Operate = cvTrue & aposthis آدرس I2C میکروکنترلر محلی ما را فعال می کند و واسط I2C aposthe فعال نیست تا زمانی که آدرس ooPIC تنظیم شود. شی همچنین دارای یک ویژگی. Output است که استفاده می شود و هنگامی که در حالت recieve mode هستیم. ورودی. پیوند (hz1) & این آدرس I2C میکروکنترلر از راه دور است ، توجه داشته باشید که & aposin کد برده ، به آن می گوییم آدرس 2 داشته باشد Master. Node = 2 & aposugh … این قسمت ناخوشایند است ، این "آدرس" DDELink & aposobject در فضای حافظه slave & aposs است. برای پی بردن به این شماره ، aposwe باید کد slave را باز و کامپایل کنید ، سپس به View-> Compiled Code بروید. & aposlook برای چیزی مانند: & aposL *. Construct. Begin؛ Dim as new oDDELink & aposwhere * هر عددی است و نام شی DDELink شما است و کد برده خود را aposin کنید. خطی که در زیر آن قرار دارد باید چیزی شبیه به این را بخواند: داده (به عنوان مثال ، داده های ما را از ویژگی های. Input & aposto the slaves.output کپی کنید (توجه داشته باشید ، اگر این را برای دریافت تنظیم کرده اید ، برعکس است) Master. Direction = cv ارسال و ارسال آن ، اما هنوز هیچ اتفاقی نمی افتد … استاد. کار = cvTrue Do & aposcheck کنید تا ببینید آیا در حال حاضر داده ها را در حال ارسال Master یا Master. Transmitting = cvFalse سپس & apossetting این مقدار باعث می شود که Master مقدار را به slave & aposnote ارسال کند ، پس از اتمام انتقال Master به طور خودکار به 0 بازنشانی می شود. = 1 End If LoopEnd Sub

توصیه شده: