با اتصال مولتی متر به پایه dtr ماژول sim800 متوجه شدم موقع ریست این پایه low میشود و در بقیه حالت high است این پایه را یکی از پایه های آردینو وصل کردم و برنامه ای نوشتم که در صورت low شدن پایه متصل به dtr ماژول یک سری دستورات at اجرا شود و در عمل برنامه و مدار عملکرد درستی دارد، حال شوال من این است که آیا می توانیم ازین مدار و برنامه برای شرایطی استفاده کنیم نوسان برق باعث ریست شدن ماژول و قطع ارتباطش با آردینو میشود استفاده کرد که ازبن طریق آردینو ریست شدن متژول را متوجه شود و دسنورات برقراری ارتباط سریال را ارسال کند؟
لازم به ذکر است خودم امتحان کردم این روش جواب داد اما نمیدانم از نظر فنی و در بلند مدت و همچنین در نوسان واقعی برق پاسخگو هست یا خیر(نوسان و ربست شدن ماژول را خودم با استفاده از سیمهای ضعیف ایجاد کردم)
به صورتی است که شما در سمت آردوینو که وسط اجرا برنامه هستید، حالی که ماژول ریست شده است و شما از این موضوع مطلع نیستید و دستور های AT بعدی را میخواهید بدهید و ماژول به درستی کار نمیکند.
از این طریق متوجه می شوید که ماژول شما ریست شده است و آردوینو نیز نیاز دارد که از ابتدا دستور های کانفیگ ماژول را انجام دهد تا دچار خطا و مشکل نشود.
با توجه به اینکه این پایه مربوط به ارتباط سریال است و برخیجاها هم نوشتن sleep است اگر dtr ماژول sim800 را به یکی از پایه های آردینو وصل کنیم که آردینو نوسان و قطعی ارتباط را تشخیص دهد و دستوراتat را ارسال کند، در یک پروژه عملی و واقعی باعث ایجاد اختلال در عملکرد سیستم نمیشود و میشود ازین روش برای حل مشکل نوسان بدون استفاده از باطری یا ریست دستی استفاده کرد؟
اگر از این روش برای رفع قطعی ارتباط سریال به دلیل نوسان برق در یک پروژه واقعی که دایم روشن است و dtr به یکیاز پایه های آردینو متصل است استفاده کنیم مشکلی از نظر خرابی و کاهش عمر ماژول یا آردینو یا اختلال در عملکرد مدار و برنامه پیش نمیآید؟
ممنون، واقعا از مزاحمت ها و سوالات و پیگیریهای زیاد پوزش میخواهم، به نظرم این یک نکته آموزشی ناب هست که فقط در انجمن کافه ربات و از آقای مهندس دمیرچی میتوان آموخت و در هیچ سایتی این نکته را ندیدم و همه نوشتن برای sleep هست.
این توضیحی است که در اکثر سایتها برای dtr داده شده است: «پایه DTR برای فعال یا غیرفعال سازی حالت SLEEP استفاده میشود. در حالت HIGH دستگاه به خوابرفته و در حالت LOW ماژول بیدار میشود» . این در تناقض استقاده از این پایه برای تشخیص ریست شدن نیست؟ یعنی همه اشتباه نوشتن!؟ در دیتا شیت خود چیبست هم نوشته شده برای این منظور یا آنجا هم برای sleep نوشته شده؟
این موردی که ذکر کردید تناقصی با این کاری که دارید میکنید ندارد. زمانی که ماژول ریست میشود برای یک لحظه HIGH وLOW میشود که متوجه ریست شدن می شوید. هم چنین زمانی که ماژول را به حالت sleep ببرید نیز این پایه high می شود، شما به این پایه دستور نمیدهید فقط مقدار این پایه را سمت میکرو میخوانید از این رو تاثیری روی کارکرد ماژول ندارید.