دستور randomSeed در آردوینو (تصادفی کردن اعداد random)

ما قبلا دستور random را بررسی کردیم. با دستور random میتوانستیم اعداد تصادفی را در محدوده دلخواه خود ایجاد کنیم. اما یک ایراد بر دستور random وارد است. آن هم این است که هر بار برد راه اندازی مجدد شود، اعداد تصادفی مشابهی تولید میشوند. در پروژه هایی که نیاز دارید حتی با ریستارت شدن برد، باز هم اعداد تصادفی تولید شده متفاوت باشند، باید از تابع randomSeed استفاده کنید.
با استفاده از این دستور، اعداد تصادفی تولید شده یک مرحله دیگر نیز تصادفی میشوند و بنابراین اعداد یکسانی را دریافت نمیکنید. زیرا این دستور با نویزی که در پایه های ورودی آنالوگ وجود دارد، اعداد مختلفی را برای شما ایجاد میکند.
دستور randomSeed
تابع randomSeed() به صورت زیر قابل استفاده است.
- seed: نام یک پین ورودی آنالوگ (میتوانید از یک عدد ثابت نیز استفاده کنید)
این دستور چه چیزی را بر میگرداند؟
چیزی را بر نمیگرداند.
نمونه کد با تابع randomSeed
با استفاده از کد زیر ما یک عدد تصادفی در محدوده 0 تا 299 تولید میکنیم. در این کد از تابع randomSeed استفاده کردیم بنابراین عدد تولید شده هربار متفاوت است.
long randNumber; // تعریف متغیر برای عدد تصادفی void setup() { Serial.begin(9600); // آغاز ارتباط سریال randomSeed(analogRead(0)); // استفاده از دستور مورد نظر با پایه آنالوگ 0 } void loop() { randNumber = random(300); // ایجاد عدد تصادفی در محدوده 0 تا 299 Serial.println(randNumber); // نمایش عدد تصادفی در سریال مانیتور delay(50); // تاخیر به مدت 50 میلی ثانیه برای تولید عدد تصادفی بعدی }
دستورات مرتبط: