جلسه سی و یکم : پیدا کردن آدرس I2C توسط آردوینو

سلام
جلسه قبل در مورد پروتکل I2C یه کوچولو صحبت کردیم و جنبه های سخت افزاری و نرم افزاری اون رو مورد بررسی قرار دادیم . اگه بخوایم یه دوره مختصر بکنیم باید بگم که از لحاظ سخت افزاری پینهایی که اسمشون scl و sda هست بارزه مشخص قطعاتی خواهند بود که با پروتکل ارتباطی I2C کار میکنن. از لحاظ نرم افزاری هم برامون مهم بود که بدونیم آدرس I2C قطعه ای که داریم باهاش کار میکنیم چیه. در مورد این آدرس I2C هم یه کم حرف زدیم و گفتیم که درست مثل کد پستی خونه ها می مونه . برای این که داده صحیح و سلامت از فرستنده به گیرنده برسه لازمه که بدونه باید داده رو به کدوم آدرس پستی تحویل بده.
اما سوالی که پیش میاد اینه که برای یه قطعه چطوری باید تشخیص بدیم آدرس I2C اش چیه؟
جواب اینه که دو تا راه داره.
راه حل : بعضی قطعه ها و ماژول ها که میخریم پشتشون روی PCB شون نوشته که آدرسشون چیه. مثلا نوشته 0X4A این 4A که نوشته همون آدرس قطعه محسوب میشه. دقت کنید که ما همیشه با کد هگز آدرس I2C سر و کار داریم.
راه حل دوم :این راه حل زمانی به درد میخوره که هیچ جوری نتونیم آدرس I2C قطعه رو پیدا کنیم. نه سازنده اون رو در اختیارمون قرار بده ( هر از گاهی از این شیرین کاری ها میکنن تولید کننده ها ) و نه روی خود قطعه چیزی نوشته . کار بسیار بسیار ساده تر از چیزیه که فکرشو بکنید . برای این کار کافیه مراحل زیر رو طی کنید:
1 . اول از لحاظ سخت افزاری قطعه رو تمام و کمال به آردوینو وصل کنید یعنی :
VCC به 5 یا 3.3 ( بسته به ولتاژ کاری ماژول)
GND به GND
SCL به A4
SDA به A5
2. اپلود کد توسط نرم افزار Arduino IDE . به دلیل طولانی بودن کد اون رو توی انجمن قرار دادم.

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

همونطور که می بینید برای من دو تا آدرس I2C پیدا کرده . دلیل این موضوع این هست که من دو تا ماژول با پروتکل ارتباطی I2C به آردوینوم وصل کردم و الان هم هر دو شناخته شدن و هم آدرسشون معلوم شده . آدرس یکیشون IE هست و آدرس اون یکی 42 . تعجب نکنید بله میشه چند تا ماژول با ارتباط I2C رو با هم به یه آردوینو وصل کرد که در آینده در موردش پروژه خواهیم بست.

پایان جلسه اعلام میشه

One thought on “جلسه سی و یکم : پیدا کردن آدرس I2C توسط آردوینو

  1. سلام
    یه سوال, اگه از یک ماژول چند عدد رو بخواهیم به آردینو وصل کنیم باید آدرس ماژول ها رو تغییر داد؟اصلن همچین کاری ممکنه؟

  2. سلام.خیلی خیلی دیر آپ می کنین.آموزش هاتون خوبه و کم و کاست نداره ولی اگه یکم تعداد پست ها رو زیاد کنین خوب میشه.

  3. با تشکر از زحمات.یه سوال داشتم که خارج از این موضوعه.من یه ماژول وای فای 8266 دارم و میخوام بهش ای پی ثابت بدم که هر دفعه ای پیشو عوض نکنه.کد کاملشو میخواستم.با تشکر

  4. سلام
    باتشکر از زحماتتون ، آموزشاتون واقعا عالیه ای کاش درمورد ماژول وای فایesp8266 رو هم آموزش بدین.

  5. سلام
    با تشکر فراوان
    من همه کارارو انجام دادم ولی توی سریال مانیتور میزنه Scanning…
    No I2C devices found
    و هیی تکرار میکنه
    به نظرتون مشکل از کجاست
    چون میخوام lcd 20*4 رو با i2c نصب کنم خیلی به این نیاز دارم چون هنوز نتونستم راهش بندازم

  6. با سلام و خسته نباشید
    من کدها رو زدم ولی چیزی که نشون میده میزنه No I2C devices found
    باید چیکار کنم
    میخوام یه lcd 20*4 رو با i2c وصل کنم. نشده تا الان
    خیلی بهش نیاز دارم

  7. سلامو خسته نباشید لطفا فونت وبلاگ رو عوض کنین و همون فونت قبلی رو ارایه بدین ممنون

  8. باعرض سلام دوستان گرامی من در راه اندازی ماژول فاصله سنج لیزری VL53LOX که پروتکل ارتباطی آن I2C می باشد گیر کردم وباید پروژه رو تحویل استاد بدم لطفا کمکم کنید خیلی ممنون میشم جبران میکنم

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

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