ساختار if / else در آردوینو به نسبت if ساده، با چک کردن چند شرطِ همراه با هم، قدرت بیشتری در کنترل جریان کد به ما میدهد. برای مثال در چک کردن یک ورودی آنالوگ، هنگامی که ورودی کمتر از 500 است،کار خاصی قابل انجام است و کار دیگر، هنگامی صورت می گیرد که ورودی بیشتر یا مساوی 500 باشد. کد این مثال به شکل زیر خواهد بود:
1 2 3 4 5 6 7 8 | if (pinFiveInput < 500) { // action A } else { // action B } |
else میتواند یک تستِ if دیگر انجام دهد؛ بنابراین تست های چندتایی و یا تست های ناسازگارِ با هم نیز می توانند همزمان اجرا شوند و نتایج صحیحی را ارائه نمایند.
هر شرط، تا رسیدن به شرطی که حاصلِ true داشته باشد، بررسی خواهد شد. در واقع تمامی شرط ها یکی یکی تا رسیدن به جواب صحیح چک میشوند. هنگامی که حاصل عمل چک کردن یک شرط true شد؛ بلاک کد مربوط به آن اجرا خواهد شد و برنامه از مابقی ساختار if else چشم پوشی میکند تا به خط بعد از این ساختار برسد. اگر هیچ شرطی به جواب true نرسد و بلاکِ else پیش فرض، وجود داشته باشد، این بلاک اجرا خواهد شد و عملیات پیش فرض را انجام خواهد داد.
شاید برای شما مفید باشد: ساخت ماینر
توجه کنید که میتوان از یک بلاکِ else if با یا بدون یک بلاک else پایانی استفاده کرد. عکس این جمله نیز صادق است. همچنین استفاده از else if محدودیتی ندارد و میتوانید به هر تعداد دلخواه، از این ساختار در یک بلاک کد استفاده کنید.
1 2 3 4 5 6 7 8 9 10 11 12 | if (pinFiveInput < 500) { // do Thing A } else if (pinFiveInput >= 1000) { // do Thing B } else { // do Thing C } |
یک راه دیگرِ ایجاد شرط های شاخه ای (ساختار کنترلی منشعب شونده) و تست های متقابلِ ناسازگار، استفاده از ساختار switch case است.
میخوام بگم اگه سنسور ۱ روشن شد و بعد دو پایه ۹ به مدت چند ثانیه روشن شود ولی اگه اول دو شد بعد یک واکنشی نده دستورشو چگونه بنویسم؟
با سلام من میخوام یک کد adc رو با فشار یک کلید بصورت متوالی اجرا کنم و با فشار مجدد همون کلید و نگه داشتن به مدت یک ثانیه اجرای کد رو متوقف کنم بصورتی که در هنگام روشن شدن آردوینو در حالت توقف باشه برای این کار از چه نوع دستوراتی باید استفاده کنم لطفا کمکم کنید با تشکر
خوب اول کاری رو که میخواید انجام بدید به شکل فلوچارت بکشید – بعدش احتمالا به سادگی میتونید با دستورات if پیاده سازیش کنید 🙂