پروژه AVR مولد موج مربعی با قابلیت تغییر فرکانس

0

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

P-prj-Frequency-generation-using-avr-emic

دامنه ولتاژ خروجی موج مربعی ما 5 ولت خواهد بود و فرکانس ان نیز از حدود 250 هرتز تا 62500 هرتز (62.5Khz) قابل تنظیم است. در ادامه شماتیک این پروژه را مشاهده می کنید و با این پروژه بیشتر اشنا خواهید شد.

پروژه AVR مولد موج مربعی با قابلیت تغییر فرکانس:

prj-Frequency-generation-using-avr-emic

شماتیک این پروژه را در بالا مشاهده می کنید که بسیار ساده می باشد. همانطور که مشاهده می کنید خروجی موج مربعی ما پایه 4 میکرو (پین 3 از پورت B) می باشد و با عبارت OUTPUT مشخص شده است, که این پایه خروجی تایمر 0 میکروکنترلر ATmega16 می باشد. برای نمایش مقدار فرکانس خروجی از یک LCD کاراکتری استفاده شده که بصورت دائم فرکانس خروجی را نمایش می دهد.

پتانسیومتر RV1 برای تنظیم فرکانس خروجی استفاده شده که با تغییر ان می توانید فرکانس موج مربعی را از 250Hz هرتز تا 62.5KHz تغییر دهید. همانطور که مشاهده می کنید دو سر این پتانسیومتر به مثبت و منفی تغذیه (VCC و GND) متصل شده و با تغییر ان, ولتاژ پایه وسط ان که به پین 40 میکرو متصل است از 0 تا 5 ولت تغییر می کند. پایه 40 میکروکنترلر ATmega16 پایه ی ADC0 می باشد و ما این ولتاژ پایه وسط پتانسیومتر را توسط ADC میکرو اندازه گیری می کنیم و با توجه به مقدار این ولتاژ فرکانس موج مربعی توسط میکرو تنظیم می شود.

پتانسیومتر RV1 برای تنظیم کنتراست یا روشنایی LCD کاراکتری استفاده شده, در صورتی که نخواستید استفاده کنید باید پایه 3 ال سی دی را به زمین (GND) متصل کنید.

توجه کنید که پایه های تغذیه میکروکنترلر (پایه 10 و 11) را که در شماتیک بالا نیست, فراموش نکنید به تغذیه 5 ولت متصل کنید و همچنین پایه های 30 و 32 میکروکنترلر ATmega16 را هم به دلیل استفاده از ADC باید به مثبت تغذیه متصل کنیم.

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

برنامه این پروژه به زبان C و با استفاده از کامپایلر کدویژن نوشته شده است. فرکانس میکروکنترلر 1 مگاهرتز تنظیم شده و همانطور که گفته شد از ADC0 میکرو برای اندازه گیری ولتاژ پایه وسط پتانسیومتر استفاده شده که این ولتاژ را برابر تایمر 0 میکرو قرار داده ایم تا از این طریق بتوانیم فرکانس خروجی موج مربعی را تغییر دهیم. تایمر 0 میکرو نیز در مد CTC و مقسم فرکانسی 8 استفاده شده (در کدویزارد مقدار فرکانس تایمر 125KHz انتخاب شده) در زیر برنامه پروژه را مشاهده می کنید:

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

نکات:

  • در صورتی که با ADC در میکروکنترلر AVR و نحوه راه اندازی ان اشنا نیستید این پست را مطالعه کنید
  • برای اشنایی با LCD کاراکتری و نحوه راه اندازی ان این پست را مطالعه کنید
  • توجه کنید که در کدویزارد در زمان فعالسازی ADC باید حتما تیک Use 8 bits را فعال کنید

کلیپ تست عملی پروژه :

 

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

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

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

ارسال دیدگاه

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