از نامش مشخص است. اعداد تصادفی، غیرعمدی که با فراخوانی تابع Random Numbers در برنامه وارد میشود. در آموزش بخش چهاردم آردوینو توابع Random Numbers را با هم بررسی خواهیم کرد. در ادامه با مرجع تخصصی آردوینو به زیان فارسی، دیجی اسپارک همراه باشید.
random()
تابع تصادفی random اعداد شبه تصادفی در برنامه تولید میکند. نوع داده دیتا در تابع تصادفی long است.تابع random() در برنامهنویسی آردوینو (Arduino) یک تابع تولید اعداد تصادفی (رندم) است که از آن برای ایجاد اعداد تصادفی در برنامههای خود میتوانید استفاده کنید. این تابع تصادفی اعداد صحیح بین ۰ و ۶۵,۵۳۵ (که حداکثر مقدار unsigned int در Arduino است) تولید میکند.
- random(maxVal): این متد یک عدد تصادفی بین ۰ و maxVal – 1 تولید میکند. به عبارت دیگر، حداکثر عدد تصادفی تولید شده برابر با maxVal – 1 خواهد بود.
- int randomNumber = random(10); // یک عدد تصادفی بین ۰ و ۹ تولید میشود.
- random(minVal, maxVal): این متد یک عدد تصادفی بین minVal و maxVal – 1 تولید میکند.
- int randomNumber = random(5, 10); // یک عدد تصادفی بین ۵ و ۹ تولید میشود.
روش فراخوانی تابع تصادفی
random(max) random(min, max)
پارامترهای تابع تصادفی
min مینیمم = کمترین مقدار تابع اعداد تصادفی max ماکزیمم = بیشترین مقدار تابع اعداد تصادفی
نمونه کد آردوینو Random Numbers
برای تست تابع random نمونه کد آردوینو زیر را در نرم افزار Arduino IDE وارد کنید.
long randomnumber; // تعریف یک متغیر با اسم دلخواه از نوع داده long void setup() { Serial.begin(9600); // انتخاب بادریت ۹۶۰۰ random(analogRead(0)); // دریافت اعداد تصادفی از analogread } void loop() { randomnumber = random(300); // انتخاب بازه ی اعداد تصادفی Serial.println(randomnumber); //نمایش اعداد تصادفی delay(1000); // نمایش اعداد تصادفی هر یک ثانیه یک بار }
در این کد یک متغیر با اسم دلخواه randomnumber برای نمایش اعداد تصادفی ایجاد و نوع داده را long انتخاب میکنیم. چرا long? بالاتر گفته شده است که برای فراخوانی تابع اعداد تصادفی نوع داده بایستی long باشد. برای دریافت مقادیر از پایه analogread در آردوینو استفاده میشود. به صورت پیش فرض مقادیر از صفر آغاز میشود. از سریال مانیتور برای نمایش مقادیر تصادفی استفاده شده است که از بادریت ۹۶۰۰ استفاده شده است. در حلقه ی برنامه از تابع random برای مشخص کردن ماکزیمم عدد دریافتی تصادفی در برنامه استفاده میکنیم. سپس اعداد هر یک ثانیه یک بار در سریال مانیتور نمایش داده میشود.
Randomseed()
همانند تابع random است با این تفاوت که میتوانیم دامنه اعداد تصادفی را در برنامه مشخص کنیم. تابع randomSeed() در برنامهنویسی آردوینو (Arduino) برای تنظیم seed تولید اعداد تصادفی توسط تابع random() به منظور تولید اعداد تصادفی پیشپیشفرضی (pseudo-random numbers) مورد استفاده قرار میگیرد.
- randomSeed(seed);
در این مثال، randomSeed(analogRead(0)) seed تابع random() را با استفاده از مقدار خوانده شده از پین آنالوگ ۰ (که ممکن است با تغییرات در ولتاژ ورودی تغییر کند) تنظیم میکند. این کار باعث میشود هر بار که برنامه اجرا میشود، توالی متفاوتی از اعداد تصادفی تولید شود.
روش فراخوانی تابع RandomSeed
randomSeed(seed)
پارامترهای تابع تصادفی
Seed = یک عدد برای ساخت دامنه اعداد تصادفی
نمونه کد آردوینو RandomSeed Numbers
برای تست تابع randomSeed نمونه کد آردوینو زیر را در نرم افزار Arduino IDE وارد کنید.
long randomnumber; // تعریف یک متغیر با اسم دلخواه از نوع داده long void setup() { Serial.begin(9600); // انتخاب بادریت ۹۶۰۰ randomSeed(analogRead(0)); // دریافت اعداد تصادفی از analogread } void loop() { randomnumber = random(300); // انتخاب بازه ی اعداد تصادفی Serial.println(randomnumber); //نمایش اعداد تصادفی delay(1000); // نمایش اعداد تصادفی هر یک ثانیه یک بار }
تفاوت random , randomseed
اگر از تابع random برای دریافت اعداد تصادفی در آردوینو استفاده کنیم، با هر بار ریست آردوینو مقادیر تصادفی در برنامه تکرار میشود. در صورت استفاده از تابع RandomSeed در صورت ریست مقادیر تصادفی غیرتکراری در برنامه ایجاد میشود. به عنوان مثال در کد زیر ۵ عدد تصادفی با random در برنامه ایجاد میکنیم.
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 استفاده کنید. کد آردوینو به صورت زیر در برنامه تعریف میشود.
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 استفاده میشود.
وسایل مورد نیاز
همین!
چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند میتوانید از همین طریق اطلاع رسانی کنید.
در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.
سلام
عملکرد random در چه مثال هایی دیده شده است؟
با سلام
برای نمایش عدد تصادفی با لحاظ کردن بیشترین حد در برنامه ها مورد استفاده قرار میگیرد.
سلام خیلی عالی هستید خانم مهندس
خداخیرتون بدهد
سپاس از همراهی شما
سلام
بخش به بخش در حال مطالعه هستم از زحمات شما ممنونم
با سلام
سپاس از همراهی شما
کاربردی بود ممنونم خسته نباشید
سلام
سپاس از همراهی شما کاربر گرامی
عالی و خوب نوشتین ولی کمتر استفاده میشه
سپاس از همراهی شما کاربر گرامی
کاربردی بود و ممنونم
با سلام
کاربر گرامی سپاس از همراهی شما
امیدوارم مفید واقع شده باشد.
اایده ی چاپ عدد تصادفی هم برای پروژه های قرعه کشی با الکترونیک خیلی جالب میشه
اتوماتیک یک عدد رو نمایش بده و سرو جایزه رو برداره مثلا
ایده ی بسیار جالبی است. از همراهی شما سپاسگزارم.
مرسی از شما برای کامل بودن آموزش های آردوینو
با سلام
کاربر گرامی از اینکه تجربه ی خود را با دیگر کاربران به اشتراک میگذارید، صمیمانه سپاسگزاریم.
سپاس مهندس
با سلام
کاربر گرامی سپاس از همراهی شما
امیدوارم مفید واقع شده باشد
سلام
تست اعداد تصادفی تجربه جذابی در ریاضی و آردوینو بود
با سلام
کاربر گرامی سپاس از همراهی شما
خداقوت عالی
با سلام
کاربر گرامی سپاس از همراهی شما
امیدوارم مفید واقع شده باشد.
عالی و کاربردی
موفق باشید
سپاس از همراهی شما
سپاس از توضیحات خوب شماذ
با سلام
سپاس از همراهی شما