فرکانس متر دیجیتال با دقت بالا با استفاده از میکروکنترلر atmega32
با هدف استفاده از تایمر و وقفه میکروکنترلر در طراحی فرکانس متر
ویژگی های فرکانس متر ساخته شده :
– استفاده از مدار اشمیت تریگر در ورودی پالس
– استفاده از وقفه جهت شمارش پالس
– استفاده از تایمر جهت تولید یک ثانیه دقیق
– بالا بردن کلاک میکرو تا ۱۶ مگاهرتز
-دقت فرکانس متر : 16 بیت ( یعنی حداکثر تا 65535 هرتز )
نحوه عملکرد فرکانس متر :
ابتدا توسط تایمر صفر ، زمانی به مدت یک ثانیه تولید و هم زمان با آن تایمر یک نیز در حال شمارش پالس های ورودی اعمالی بر روی پایه T1 می کند . پس از طی شدن یک ثانیه مقدار شمارش شده در رجیستر تایمر یک که معادل فرکانس سیگنال ورودی است روی LCD نمایش داده می شود .
اضافه نمودن مدار اشمیت تریگر قبل از پایه T1 :
ممکن است پالس ورودی که میخواهیم شمارش شود مربعی نباشد . برای مثال اگر موج ورودی سینوسی باشد ، برای شمارش آن ابتدا باید سینوسی لبه دار شود یعنی تقریبا شبیه به موج مربعی گردد . برای این منظور مدار های زیادی موسوم به اشمیت تریگر وجود دارد که یکی از آنها را در زیر مشاهده می فرمایید . خروجی این مدار به میکرو وصل می شود . برای بزرگ نمایی روی آن کلیک کنید .
نکته : در برنامه تابع sprintf باید به صورت longint تنظیم شود . برای این منظور گزینه longwidth از مسیر زیر را در کدویژن انتخاب نمایید.
Project/Configure/C Compiler/Sprintf Feauture
فایل های پیوست : شامل سورس کدویژن به زبان C و شبیه سازی در proteus
پسورد : electrovolt.ir
دیدگاه (8)
ممنون به خاطر توضیحات و برنامه.
خواهش میکنم دوست عزیز
با سلام. ضمن تشکر از مطالب آموزنده و مفید سایت . لطفا نحوه اموزش از مبتدی تا پیشرفته را نیز اعلام کنید . البته برای رشته هایی بجز برق و کامپیوتر
سلام دوست عزیز به بخش دوره های آموزشی ما مراجعه کنید و از صفر آموزش ببینید
سلام. من این پروژه رو پیاده سازی کردم .اولش فایل پروتیوس ان را نشد استفاده کرد وخودم طراحی کردم ولی اصلا دقت نداره. فرکانس پایینی 16 برابر نشون میده فرکانس های بالا رو چند برابر نشون میده. راه حل چیه
سلام .
پرتئوس دقت کمی واره و یک شبیه ساز الکترونیک است . شما باید تقسیم A رو اجر کنی و clock آن را با آی سی 74 ول بشه بعد بره تو مدار یا اتمگا . شما این کار رو انجام بده تا درست عمل کنه .
سلام و خسته نباشید .
این مدار اتمگا (فرکانس متر) رو میخوام آنتنی کنم و موج رادیویی دریافت کند . پالس و یا دیجیتال فرستنده من با ارسال امواج به اتمگا برسه و اتمگا محاسبه کند . لطفا کمک کنید . ممنون .
برای من ایمیل نمایید .
سلام.خسته نباشید من تابع sprintfرو longwidth میذارم ولی نمی دونم چرا شمارش تا ۶۵۵۳۵رو بیشتر نشون نمی ده میشه راهنمایی کنید