آموزش پروتکل I2C با آردوینو Arduino – قسمت دوم

آموزش پروتکل I2C با آردوینو digispark

با بخش دوم از توابع کتابخانه Wire.h در خدمت شما هستیم. پروتکل I2C را در ادامه با مرجع تخصصی آردوینو، دیجی اسپارک همراه باشید.

 

Wire.onReceive(handler)

هنگامی که فرستنده درخواست دیتا از گیرنده دارد، با فراخوانی یک تابع انجام میدهد. این تابع، تابع مورد نطر را تنظیم می کند.

 

پارامترها :

handler: تابعی که فراخوانی می شود. بدون آرگومان است و مقداری را هم بازگشت نمی دهد.

 

مثال :                                                                                                                   void myHandler()

Wire.onReceive(handler)

 

هنگامی که گیرنده دیتایی را از فرستده میگیرد؛ تابعی را فراخوانی میکند.این تابع، تابع مورد نظر را فراخوانی می کند.

پارامترها :

handlr : تابعی که هنگام دریافت گیرنده فراخوانده می شود. دارای یک آرگومان است ( شماره بایتی که از فرستنده می خواند.) اما مقداری را بازگشت نمی دهد.

 

مثال :                                                                                             void myHandler(int numBytes)

 

Wire.send()

دیتا را از گیرنده در پاسخ به درخواست فرستنده ویا بایت های ارسالی را از فرستنده به گیرنده ( بین دو تابع دیگر beginTransmission() و endTransmisson() ) می فرستد.

Syntax

Wire.send(value)

Wire.send(string)

Wire.send(data, quantity)

 

پارامترها :

value : یک بایت برای ارسال ( از نوع byte )

string : یک رشته برای ارسال ( از نوع char)

data: یک دیتای آرایه ای برای ارسال ( از نوع byte )

quantity : شماره بایت ارسال شونده ( از نوع byte )

تفاوت این تابع با تابع write در این است که تابع send  بدون مقدار بازگشتی است اما تابع write می تواند شماره بایت های نوشته شده را برگرداند.

یک نمونه از برنامه فرستنده و گیرنده :

 

آموزش پروتکل I2C با آردوینو ( قسمت دوم)

آموزش پروتکل I2C با آردوینو ( قسمت دوم)

 :master writer code

 : slave resiver code

 

1 دیدگاه

  1. حسین می‌گه:

    سلام
    مرسی از سایت خوب و مطالب فوق العادتون
    یک سوال دارم
    اینکه مثلا در همین برنامه ی بالا اگه ایکس به مقدار خاصی رسید، باس متوقف بشه و اسلیو بره داخل یک وقفه کاری رو انجام بده و وقتی تمام شد باس فعال شه و کار ادامه پیدا کنه

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *