فرکانس متر

baharan20

عضو جدید
سلام دوستان
یه پروژه با عنوان زیر دارم که هیچی ازش نمیدونم میشه راهنماییم کنید لطفا
اندازه گیری فرکانس های کمتر از 10 کیلو هرتز و نمایش آن بر روی سون سگمنت.......
 

sh85

مدیر بازنشسته
کاربر ممتاز

سعید گروسی

عضو جدید
کاربر ممتاز
سلام دوستان
یه پروژه با عنوان زیر دارم که هیچی ازش نمیدونم میشه راهنماییم کنید لطفا
اندازه گیری فرکانس های کمتر از 10 کیلو هرتز و نمایش آن بر روی سون سگمنت.......
سلام
فرکانس دونوع اندازه گیری وبرنامه نویسی میشه بامیکرو
اگرانتهای دوسیگنال روازهم کم کنیداختلاف 2 سیگل فرکانس موردنظرمیباشد
راه حل دوم که بیشترتوصیه میشه اگرتعداسیگل های دریافتی به یک پایه روبشماریم درزمان 1 ثانیه فرکانس میشود.تعدادسیکل های داده شده به میکروروباcounter شمارش میکنین درمدت زمان 1 ثانیه که باtimero یاtimer1 میکروساختین.
اگرخواستین برنامه میکروش روبراتون مینویسم وهمین جامیذارم.
 

baharan20

عضو جدید
سلام
فرکانس دونوع اندازه گیری وبرنامه نویسی میشه بامیکرو
اگرانتهای دوسیگنال روازهم کم کنیداختلاف 2 سیگل فرکانس موردنظرمیباشد
راه حل دوم که بیشترتوصیه میشه اگرتعداسیگل های دریافتی به یک پایه روبشماریم درزمان 1 ثانیه فرکانس میشود.تعدادسیکل های داده شده به میکروروباcounter شمارش میکنین درمدت زمان 1 ثانیه که باtimero یاtimer1 میکروساختین.
اگرخواستین برنامه میکروش روبراتون مینویسم وهمین جامیذارم.

سلام
ممنون میشم اگه کدشو بزارید.
موفق باشید.
 

سعید گروسی

عضو جدید
کاربر ممتاز
سلام
برنامه تست شده وکارمیکنه .عکسش روبرات میزارم.فرکانس موردنظرداده شده 9999 هرتزمیباشدکه توی عکس 9977نمایش داده شده باخطای خیلی کم.برای ساخت درعمل بایدپایه ای فرکانس واردمیشودبایک مقاومت 4.7کیلوپول آپ شود تادقیق نشان دهد.اینم برنامه.شماهم موفق باشین.



$regfile = "m16def.dat"
$crystal = 16000000
Config Clock = Soft , Gosub = Sectic
Config Timer1 = Counter , Edge = Rising
Enable Interrupts
Enable Ovf1
On Ovf1 Pulse
Dim Aa As Long
Config Portd = Output
Config Debounce = 50
Ddrc.0 = 1 : Portc.0 = 0 : S1 Alias Portc.0
Ddrc.1 = 1 : Portc.1 = 0 : S2 Alias Portc.1
Ddrc.2 = 1 : Portc.2 = 0 : S3 Alias Portc.2
Ddrc.3 = 1 : Portc.3 = 0 : S4 Alias Portc.3
Dim Hezar As Word , Sad As Word , Dah As Word
Dim Yek As Word , X As Word , Y As Word
Dim B As Byte
Declare Sub Hesab
Ddrb.1 = 0 : Portb.1 = 1
Sectic:
Aa = Aa * 65536
Aa = Aa + Counter1
Counter1 = 0
Do
Call Hesab
B = Lookup(hezar , Dat)
Reset S1 : Set S2 : Set S3 : Set S4
B = Not B
Portd = B
Waitus 500
Portd = 0
'==============
B = Lookup(sad , Dat)
Set S1 : Reset S2 : Set S3 : Set S4
B = Not B
Portd = B
Waitus 500
Portd = 0
'==============
B = Lookup(dah , Dat)
Set S1 : Set S2 : Reset S3 : Set S4
B = Not B
Portd = B
Waitus 500
Portd = 0
'==============
B = Lookup(yek , Dat)
Set S1 : Set S2 : Set S3 : Reset S4
B = Not B
Portd = B
Waitus 500
Portd = 0
Loop
End
'***************************************************
Hesab:
Hezar = Aa / 1000
X = Hezar * 1000
Y = Aa - X
Sad = Y / 100
X = Sad * 100
X = Y - X
Dah = X / 10
Yek = Dah * 10
Yek = X - Yek
Return
L1:
Aa = 0
Return
Pulse:
Incr Aa
Counter1 = 0
Return
Dat:
Data &H03 , &H9F , &H25 , &H0D , &H99 , &H49
Data &H41 , &H1F , &H01 , &H09
 

سعید گروسی

عضو جدید
کاربر ممتاز
سلام
برنامه قبلی روتغییراتی دادم دقیق شد
این مقدارفرکانسیه که پالس ورودی داره یعنی 9999هرتز


اینم مقداری که میکرونشون میده همون 9999هرتز



اینم برنامه:


 

baharan20

عضو جدید
سلام
من رشتم کامپیوتر هستش و اطلاعات الکترونیکی زیادی ندارم. برای پیاده ساری سخت افزاری سیگنال ژنراتور رو چجوری به برد وصل کنم؟
ممنون
 

سعید گروسی

عضو جدید
کاربر ممتاز
سلام
من رشتم کامپیوتر هستش و اطلاعات الکترونیکی زیادی ندارم. برای پیاده ساری سخت افزاری سیگنال ژنراتور رو چجوری به برد وصل کنم؟
ممنون
سلام
خروجی سیگنال ژنراتورروبه پایه ی 2 میکروatmega16یعنی همون portb.1وصل میکنیم.
البته منظورپلاریته مثبتش رووصل میکنی .منفیش روهمبه منفی مداریاهمون زمین مداروصل میکنی.
توی شبیه سازپروتئوس یه دونه اسلیسکوپ برای نمایش سیگنال میارم ویه دونه سیگنال ژنراتوربرای ایجادیک سیگنال بافرکانس متفاوت.
دقت کن منفی سیگنال ژنراتوربه زمین وصل میکنم.روی سیگنال زنراتورچندتاپیچ تنظیم وکلیدوجوددارد.
level:برای تغییردامنه سیگنال
frequency:تنظیم رنج فرکانس...هزتزیاکیلوهرتز
waveform:انتخاب نوع سیگنال مثلاسینوسی..مربعی...مثلثی...
اینم خروجی بایه مقدارفرکانس خاص



 
بالا