از نامش مشخص است. اعداد تصادفی، غیرعمدی که با فراخوانی تابع Random Numbers در برنامه وارد میشود. در آموزش بخش چهاردم آردوینو توابع Random Numbers را با هم بررسی خواهیم کرد. در ادامه با مرجع تخصصی آردوینو به زیان فارسی، دیجی اسپارک همراه باشید.
random()
تابع تصادفی random اعداد شبه تصادفی در برنامه تولید میکند. نوع داده دیتا در تابع تصادفی long است.
روش فراخوانی تابع تصادفی
1 2 |
random(max) random(min, max) |
پارامترهای تابع تصادفی
1 2 3 |
min مینیمم = کمترین مقدار تابع اعداد تصادفی max ماکزیمم = بیشترین مقدار تابع اعداد تصادفی |
نمونه کد آردوینو Random Numbers
برای تست تابع random نمونه کد آردوینو زیر را در نرم افزار Arduino IDE وارد کنید.
1 2 3 4 5 6 7 8 9 10 11 12 |
long randomnumber; // تعریف یک متغیر با اسم دلخواه از نوع داده long void setup() { Serial.begin(9600); // انتخاب بادریت 9600 random(analogRead(0)); // دریافت اعداد تصادفی از analogread } void loop() { randomnumber = random(300); // انتخاب بازه ی اعداد تصادفی Serial.println(randomnumber); //نمایش اعداد تصادفی delay(1000); // نمایش اعداد تصادفی هر یک ثانیه یک بار } |
در این کد یک متغیر با اسم دلخواه randomnumber برای نمایش اعداد تصادفی ایجاد و نوع داده را long انتخاب میکنیم. چرا long? بالاتر گفته شده است که برای فراخوانی تابع اعداد تصادفی نوع داده بایستی long باشد. برای دریافت مقادیر از پایه analogread در آردوینو استفاده میشود. به صورت پیش فرض مقادیر از صفر آغاز میشود. از سریال مانیتور برای نمایش مقادیر تصادفی استفاده شده است که از بادریت ۹۶۰۰ استفاده شده است. در حلقه ی برنامه از تابع random برای مشخص کردن ماکزیمم عدد دریافتی تصادفی در برنامه استفاده میکنیم. سپس اعداد هر یک ثانیه یک بار در سریال مانیتور نمایش داده میشود.
Randomseed()
همانند تابع random است با این تفاوت که میتوانیم دامنه اعداد تصادفی را در برنامه مشخص کنیم.
روش فراخوانی تابع RandomSeed
1 |
randomSeed(seed) |
پارامترهای تابع تصادفی
1 |
Seed = یک عدد برای ساخت دامنه اعداد تصادفی |
نمونه کد آردوینو RandomSeed Numbers
برای تست تابع randomSeed نمونه کد آردوینو زیر را در نرم افزار Arduino IDE وارد کنید.
1 2 3 4 5 6 7 8 9 10 11 12 |
long randomnumber; // تعریف یک متغیر با اسم دلخواه از نوع داده long void setup() { Serial.begin(9600); // انتخاب بادریت 9600 randomSeed(analogRead(0)); // دریافت اعداد تصادفی از analogread } void loop() { randomnumber = random(300); // انتخاب بازه ی اعداد تصادفی Serial.println(randomnumber); //نمایش اعداد تصادفی delay(1000); // نمایش اعداد تصادفی هر یک ثانیه یک بار } |
تفاوت random , randomseed
اگر از تابع random برای دریافت اعداد تصادفی در آردوینو استفاده کنیم، با هر بار ریست آردوینو مقادیر تصادفی در برنامه تکرار میشود. در صورت استفاده از تابع RandomSeed در صورت ریست مقادیر تصادفی غیرتکراری در برنامه ایجاد میشود. به عنوان مثال در کد زیر ۵ عدد تصادفی با random در برنامه ایجاد میکنیم.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
void setup(){ Serial.begin(9600); for(int i=0; i<5; i++){ Serial.print(random(1, 101)); Serial.print(" "); } Serial.println(" "); } void loop(){ } |
سریال مانیتور را باز کنید. ۵ عدد به صورت رندم تولید شده و در سریال مانیتور نمایش داده میشود.
برای دریافت مقادیر متفاوت همانطور که گفته شد، بایستی از دستور randomseed و فراخوانی از پایه analogread استفاده کنید. کد آردوینو به صورت زیر در برنامه تعریف میشود.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
void setup(){ randomSeed(analogRead(A0)); Serial.begin(9600); for(int i=0; i<5; i++){ Serial.print(random(1, 101)); Serial.print(" "); } Serial.println(" "); } void loop(){ } |
سریال مانیتور را باز کنید. ۵ عدد به صورت تصادفی نمایش داده میشود. تکته ی مهم اینجاست! با ریست آردوینو اعداد تصادفی جدید تولید میشود که توسط تابع randomseed تولید شده است و از پایه آنالوگ A0 استفاده میشود.
وسایل مورد نیاز
همین!
چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند میتوانید از همین طریق اطلاع رسانی کنید.
در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.