آموزش آردوینو

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

نوشته شده توسط اروند طباطبایی

با بخش دوم از توابع کتابخانه 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

 

درباره نویسنده

اروند طباطبایی

هرچه می آموزم میبینم که خیلی کم آموختم. در حال حاضر مدیریت تولید مقطع کارشناسی ارشد هستم. علاقه به رباتیک و تکنولوژی دارم. امیدوارم بتونم دانشی را که آموخته‌ام، به روش‌های مختلفی به کاربران علاقمند منتقل کنم.

۱ دیدگاه

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

دیدگاهتان را بنویسید