فرکانس متر به کمک تایمر و کانتر Timer/Counter داخلی

ساخت فرکانس متر

در این بخش تیم الکترونیک و برنامه نویسی الکترونیک ۹۸, اقدام به طراحی و انتشار پروژه ای کاربردی و حرفه ای با عنوان, ساخت فرکانس متر به کمک تایمر و کانتر Timer/Counter داخلی, برای شما علاقه مندان به پروژه های میکروکنترلر AVR کرده است. در این پروژه با استفاده از میکروکنترلر AVR مقدار فرکانس ورودی را اندازه گیری می کنیم و سپس مقدار آن را بر روی ال سی دی کاراکتری نمایش می دهیم.

شاید در نگاه اول اندازه گیری فرکانس با میکروکنترلر ATmega32 کار سخت و پیچیده ای به نظر برسد، اما با کمی توجه به تعریف فرکانس (تعداد دقعات یک رویداد تناوبی در واحد زمان) می توانیم نتیجه بگیریم برای اندازه گیری فرکانس تنها کافی است که تعداد تناوب های یک سیکل را در واحد زمان (ثانیه) توسط میکروکنترلر AVR اندازه گیری کینم. به طور ساده و مفید می توان گفت ما باید برنامه ای بنویسیم که در آن میکروکنترلر AVR تعداد پالس های یک سیکل را طی مدت زمان یک ثانیه شمارش کند، حال عدد شمارش شده همان مقدار فرکانس اندازه گیری شده در واحد Hz می باشد. در ادامه این پروژه بیشتر در باره اندازه گیری و نحوه محاسبه فرکانس توضیح داده شده است، پس برای مشاهده توضیحات کاملتر و برنامه نوشته شده با الکترونیک 98 همراه باشید.

نقشه شماتیک پروژه

فرکانس متر به کمک تایمر و کانتر Timer/Counter داخلی

سخت افزار پروژه

فرکانس متر از یک شمارنده و یک تایمر تشکیل شده است. به این صورت شمارنده هایی که در واقع Timer1 که از نوع 16bit می باشد تعداد پالس های دریافتی در ورودی PB1/T1 را با پیکربندی Config Timer1 = Counter , Edge = Rising را شمارش می کند. به طور همزمان تایمری که آن هم از تایمرهای سیستمی می باشد با دقت بالا زمان یک ثانیه را اندازه گیری می کند. وقتی Timer2 سر ریز کرد، شمارنده و وقفه ها را غیر فعال کرده و تعداد پالس شمارش شده را نشان می دهد که در واقع همان فرکانس دریافتی است.

حال فرض کنید در یک ثانیه تعداد پالس های دریافتی بیشتر از مقدار 65535 شود. در این حالت شمارنده (Timer1) سریز می شود و بنا به پیکربندی On Ovf1 Pulsecount به لیبل Pulsecount پرش می کند. در آنجا مقدار آن صفر شده و به مقدار متغییر B یک واحد اضافه می شود.

حال مطابق فرمول برنامه A = B*65536 و A = A+Counter1 تعداد دفعات سرریز در 65535 ضرب شده و با مقدار فعلی Counter1 جمع می شود و فرکانس نهایی را در LCD کاراکتری نشان می دهد.

همچنین فایل شبیه ساز این پروژه نیز که با نرم افزار Proteus 8 Professional طراحی شده، پیوست فایل پروژه جهت دانلود قرار داده شده است، که می تواند شما را در یادگیری هر چه بهتر مدار و نحوه عملکرد آن یاری نماید.

برنامه میکروکنترلر به زبان بیسیک BASIC در نرم افزار BASCOM-AVR

 اطلاعات پروژه

 رمز فایل : www.electronics98.com

 حجم فایل : 116 کیلوبایت

 محیط برنامه نویسی : Bascom-AVR

 برنامه نویسی شده به زبان : Basic

 نویسنده : فرهاد اکبری

 تاریخ انتشار : 18 فوریه 2018

4 دیدگاه

  1. سلام خسته نباشد این پروژه توی شبیه سازی فرکانس واقعی رو نوشون نمیده می خواستم بدونم توی عمل نشون میده ؟

  2. سلام دوست عزیز
    این پروژه دقیق کار میکنه حتی در محیط شبیه سازی، اگه به تصویر پروژه که از محیط شبیه سازی گرفته شده دقت کنید متوجه این موضوع میشید. همچنین لازم به ذکره تموم پروژه های موجود در سایت کاملا تست شده هستند و صد در صد عملی هستند.

  3. سلامببخشید از این فرکانس متر رو میشه برای تعیین فرکانس نوسانات مایع (روغن) استفاده کرد؟

  4. سلام تا چه فرکانسی اندازه میگیره و اینکه میشه میکرو و کریستال رو تعقییر داد؟مثلا کریستال8یا16 و میکرو atm8استفاده کرد؟

 شرایط و قوانین ثبت دیدگاه

 فارسی بنویسید و از کیبورد فارسی استفاده کنید.

 لطفاً بیش‌از‌حدِ معمول، شکلک یا ایموجی استفاده نکنید و از کشیدن حروف یا کلمات با صفحه‌کلید بپرهیزید.

 به کاربران و سایر اشخاص احترام بگذارید. پیام‌هایی که شامل محتوای توهین‌آمیز و کلمات نامناسب باشند، حذف می‌شوند.

 از ارسال لینک‌های سایت‌های دیگر و ارایه‌ی اطلاعات شخصی خودتان مثل شماره تماس، ایمیل و آی‌دی شبکه‌های اجتماعی پرهیز کنید.