در آردوینو توسط
سلام. از یک آردوینو مگا به عنوان مستر و چند آردوینو uno به عنوان slave استفاده کردم تا مقدار آنالوگ رو به مستر بفرستم یعنی مستر گیرنده و اسلیوها فرستنده هستند. پس از قطع پاور یکی از اسلیوها، شبکه i2c هنگ میکنه و سریال مانیتور دیگه چیزی رو مانیتور نمیکنه و stop میشه. مشکل از چیه؟ ارتباط i2c یک شبکه هست و اگه قرار باشه با از کار افتادن یکی از نودها، کل شبکه مختل بشه نمیشه ازش استفاده کرد. در ضمن آردوینو مگا برای دو خط sda و scl مقاومت ها پول آپ داخلی داره، ول با این حال من خارجی هم قرار دادم هر کدوم 4.7 کیلو. اما باز هم مشکل به قوت خودش باقیه.

1 پاسخ

0 امتیاز
توسط sahacin
سلام

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

به خصوص در محیط های پر نویز و صنعتی چون با هنگ یکی از اسلیو های ارتباط ، مستر به خاطر کد نویسی مشکل دار کتابخانه وایر به داخل یک لوپ بی نهایت میره ( while() )و باعث هنگ مستر میشه

این موضوع رو داخل فروم های خارجی دیدم که یه فکر هایی هم واسش کردن اما من حوصله نکردم ببیینم چی گفتن و چیکار کردن چون سنسورم از دوتا پروتکل پشتیبانی می کرد به جای I2C از وان وایر استفاده کردم و مشکلم حل شد(صورت مسئله رو پاک کردم)
...