با عرض سلام و خسته نباشید میخواستم بدونم میشه چهار پنج تا از ماژول RFM 12 رو پیش هم استفاده کرد طوریکه هرکدوم دیتای مربوط به خودشو بگیره من چند تا راه رو آزمایش کردم نشده کسی تا به حال ای کارو کرده oo:
ممنون
سلام
باید هر کدوم از اونا رو آدرس دهی کنی. بعد باید اول آدرس رو ارسال گیرنده مورد نظر رو ارسال کنی بعد ازش acknowledge بگیری. و بعد از اون داده رو ارسال کنی به اون.
ممنون از پاسختون
این کارم کردم نشده چون مثلا ماژول فرستنده X عدد 8 رو به عنوان آدرس به ماژول گیرنده ارسال میکنه در همین بین یکی از ماژولها که قبلا آدرس دهی شده و منتظر یک متغیر هست عدد 8 رو اشتباهی از اون ماژول فرستنده X میگیره :angry: :angry: :angry:
ممنون
قبل از ارسال اطلاعات یه عبارت مثل #8$ به عنوان آدرس بفرست تا همهآی میکرو ها چک کننش و میکرو مورد نظرت متوجه بشه که واسه اون فرستادی
یه عبارتی انتخاب کن که با متغیر هات تداخل نداشته باشه
آقا چرا هر ماژول رو تو یه کانال خاص نمیزاری؟؟ حتما همشون باید تو یه کانال کار کنن؟
مثلا 10 تا rfm12 داری و یه دونه master
همه ی slave ها رو تو کانال های مختلف تنظیم کن ، بعد هر وقت خواشتی باهر کدوم کار کنی فرستنده رو ببر رو کانال گیرنده مورد نظر!!
آقا من هم یه بار همچین مشکلی داشتم... یا این که آدرس دهی میکردم یعنی بایت اول آدرس بود و هر وقت میکرو با بایت اول آدرس خودشو تشخیص میداد بایت با بایت های بعدی به عنوان دیتا بودن البته یه ریزه گیر برنامه نویسی داشتم ! چه کاریه , اگه همزمان رو 10 تا کانال نمیشه فرستاد چه اشکالی داره؟
میریم رو کانال A و دیتای مربوط رو میفرستیم و اگه احیانا باید چیزی دریافت بشه منتظر میمونیم! بعد میریم سر وقت کانال بعدی! چیزی که گفتم اشکالش چیه؟
1- استفاده از جهش فرکانسی(که نمی دونم آیا RFM12 این قابلیت رو داره یا نه؟)
2- اینکه یه پروتکل از خودت اختراع کنی!
همونطور که دوستان گفتند وقتی دیتایی رو برای پکی از نودها می فرستی بقیه ی نودها هم این دیتا رو می بینن، پس احتیاج به پیاده سازی پروتکل های مبتنی بر BUS داری، مثل پروتکل های صنعتی FF یا همون Field Bus ، از جمله این پروتکل ها CAN، mod bus و... هستن.
این پروتکل ها از دو قسمت اصلی داده و آدرس تشکیل می شن. یه فریم چند بایتی (مثلا 8 بایتی) هم در نظر بگیر که قسمت مشخصی از اون آدرس هستش و بقیه دیتا. شما باید این فریم رو ارسال و دریافت کنی، در صورتی که آدرس فریم دریافتی با آدرس نود برابر بود پاسخ رو ارسال کن و در صورتی که برابر نبود فریم رو دور بریز و منتظر فریم بعدی باش.
البته برای اطمینان از صحت تبادل فریم ها می تونی جمع کنترلی (check sum ) رو هم به فریم ها اضافه کنی...
مشکلی نیست که آسان نشود مرد میخواهد که هراسان نشود
سلام برهمگی
سوالی داشتم از محضر گرانقدر دوست عزیزمان حمیدجان
میخوستم خواهش کنم اگر ممکنه الگوریتم ارسال و دریافت یک بایت را توسط پروتکل modbus برام شرح بدین ممنون
دیدگاه