یکشنبه, شهریور 18, 1403
ادامه منو
    خانهپروژه های میکروکنترلر AVRپروژه با کی پد و کلیدتولید عدد رندوم واقعی با میکروکنترلر AVR

    تولید عدد رندوم واقعی با میکروکنترلر AVR

    در این پست از سایت اِمیک,  یک پروژه بسیار جالب و آموزشی به نام تولید عدد رندوم واقعی با میکروکنترلر AVR قرار داده شده است. همانطور که از نام پروژه مشخص است, ما در این پروژه به وسیله میکروکنترلر AVR یک عدد رندوم یا تصادفی ایجاد می کنیم و این عدد را روی یک LCD کاراکتری نمایش می دهیم. این پروژه با میکروکنترلر ATmega16 انجام شده است. در ادامه در مورد پروژه بیشتر توضیح خواهم داد. در زیر شماتیک این پروژه را مشاهده می کنید:

    تولید عدد رندوم واقعی با میکروکنترلر AVR

    همانطور که مشاهده می کنید, ما در این پروژه از میکروکنترلر ATmega16 استفاده کرده ایم. از یک LCD کاراکتری 2 در 16 نیز استفاده کرده ایم که این LCD به پورت D میکروکنترلر متصل شده است. پتانسیومتر RV1 برای تنظیم کنتراست یا میزان روشنایی LCD کاراکتری استفاده شده است. یک کلید فشاری نیز به پایه 40 میکروکنترلر (پین 0 از پورت A) متصل شده است.

    عملکرد پروژه به این صورت است که با هر بار فشار دادن کلید فشاری SW1 یک عدد رندوم بین 1 تا 32767 روی LCD کاراکتری نمایش داده می شود.

    توجه کنید که پایه های تغذیه میکروکنترلر (پایه 10 و 11) را که در شماتیک بالا نیست, فراموش نکنید که به تغذیه 5 ولت متصل کنید.

    تابع rand و srand :

    برای تولید عدد رندوم در برنامه پروژه, ما از دو تابع rand و srand استفاده کرده ایم. برای استفاده از این دو تابع باید کتابخانه stdlib.h را در ابتدای برنامه فراخوانی کنیم. تابع rand یک عدد تصادفی بین 1 تا 32767 تولید می کند. اگر بخواهیم که تابع rand اعداد کاملاً تصادفی ایجاد کند باید قبل از آن از تابع srand استفاده کنیم. تابع srand یک ورودی از نوع اعداد صحیح بدون علامت می گیرد و باعث تصادفی شدن تابع rand بر اساس مقدار ورودی تابع srand می شود.

    به عبارت دیگر برای اینکه عدد تولید شده توسط تابع rand واقعا تصادفی باشد باید قبل از استفاده از این تابع از تابع srand استفاده کنیم. تابع srand نیاز به یک عدد ورودی دارد تا بر اساس آن عدد, عدد رندوم ما تولید شود. ما در برنامه یک متغیر (i) تعریف کرده ایم که با فشار دادن کلید, مقدار این متغیر هر 1 میکروثانیه افزایش می یاید و تغییر می کند. این متغیر را به عنوان عدد ورودی به تابع srand داده ایم. بنابراین با توجه به مدت زمانی که کلید را فشار داده ایم یک عدد بین 0 تا 30000 به عنوان ورودی به تابع srand اعمال می شود که در نتیجه باعث تولید یک عدد رندوم واقعی توسط تابع rand می شود.

    برنامه کدویژن:

    در این پروژه فرکانس میکروکنترلر 8 مگاهرتز تنظیم شده است. در زیر برنامه نوشته شده به زبان C و کامپایلر کدویژن را مشاهده می کنید:

    توضیحات قسمت های مهم برنامه نوشته شده, اگر سوالی داشتید می توانید در قسمت نظرات مطرح کنید. فایل های کدویژن و شبیه سازی پروتئوس را هم می تونید از انتهای مطلب دانلود کنید.

    دانلود فایل ها

    پسورد فایل زیپ : www.emic.ir

    نظر یادتون نره…

    عابد رازانی
    عابد رازانیhttps://emic.ir/
    فارغ التحصیل کارشناسی الکترونیک از دانشکده باهنر شیراز و علاقمند به برنامه نویسی و طراحی مدارات الکترونیکی, در حال حاضر به تولید محتوای آموزشی و طراحی و انجام پروژه مشغول هستم.

    ارسال دیدگاه

    لطفا نظر خود را وارد کنید!
    لطفا نام خود را اینجا وارد کنید

    spot_img