ايران ويج

نسخه‌ی کامل: صوت سنج با ميكرو
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2
با سلام خدمت دوستان
ميخاستم ببينم با ميكرو ميشه صوت سنج طراحي كرد
طوري كه با adc به يك خروجي صدا (مثل اسپيكر) وصل كني و بعد (مثلا 8تا led كه به يك پورت وصل كردي) به نسبت شدت صدا روشن بشه

خودم يه چيزي نوشتم اما جواب نداد
با تشكر

$regfile = "m8def.dat"
$crystal = 8000000
Config Adc = Single , Prescaler = Auto
Dim A As Word
Config Portb = Output
Start Adc
Do
A = Getadc(5)
Select Case A
Case 0 To 125
Portb = &B00000001
Case 121 To 240
Portb = &B00000011
Case 241 To 360
Portb = &B00000111
Case 361 To 480
Portb = &B00001111
Case 481 To 600
Portb = &B00011111
Case 601 To 720
Portb = &B00111111
Case 721 To 840
Portb = &B01111111
Case 841 To 1000
Portb = &B11111111
End Select
Waitms 300
Loop
End
هیچ احتیاجی به میکرو نیست خیلی از آی سی های مدار منطقی این کارو می کنن در کل میکرو به صرفه نیست
برای برنامه شما ولتاژ خروجی رو تقویت کن و حداکثرش رو به 5 ولت برسون و بده به adc یعنی ولتاژ بین 0-5 متغیره
توئ برنامتون دستور enable adc رو ننوشتین بعد از start adc بنویسینش تا مبدل روشن بشه
متوجه نشدم
چجوري خروجي رو تقويت كنم؟
خط دوم نوشتتونو توضيح بديد لطفا

راه يا برنامه آسونتري هم هست يا ميشه نوشت؟
تشكر
ببخشید یکم عجله داشتم برای همین غلط املایی داشتم
1- دستور enable adc رو نذاشتین این دستور بنویسین تا مبدل آنالوگ به دیجیتال فعال بشه
2- ولتاژ ورودی که به پایه ی میکرو وصل می کنید رو با یه ترانزیستور تقویت کنین یعنی باید ولتاژی که به adc میدین بین 0 تا 5 ولت تغیر کنه حالا با هرچی تونستین تقویتش کنید بهترین گزینه ترانزیستوره
3- برنامتون هم خوبه مشکلی نداره
4-راه ساده تر استفاده از آی سی های منطقیه مثلا آی سی lb1409 یه سرچی بکنین مدارشو پیدا می کنین
با آی سی های سری LM39XX هم براحتی میشه اینو ساخت ...


(۲۷-بهمن-۱۳۹۱, ۰۰:۰۹:۳۹)hadikh73 نوشته است: [ -> ]4-راه ساده تر استفاده از آی سی های منطقیه مثلا آی سی lb1409 یه سرچی بکنین مدارشو پیدا می کنین

هادی جون این آی سی ورودی AC هم داره ... حالا منظورش از سیگنال AC در اینجا چیه؟
باهاش میشه سطح ولتاژ AC رو هم نمایش داد؟
اصلا اصل کار این آی سی چیه ... یعنی مثل همون سری LM 39XX همه کاره هستن ؟
1-ترانزيستورش چي باشه؟
2- يعني ترانزيستور يك پايش به adc ميكرو ،يك پايش به 5 ولت ، يك پايش به خروجي صدا درست ميگم؟
3- بعد براي مثال من بخام از يكي از باندهاي اسپيكرم خروجي بگبرم مگه دورشته سيم نيست؟ حالا من اينو يكيشو به adc ميكرو وصل كنم يكي ديگشو به كجا وصل كنم؟
4- دستوري كه كم بود رو به برنامه اضافه كردم اما مدار باز هم كار نكرد
براي تست اومدم پايه ي adc رو به پايه ي مشترك يك پتانسيومتر وصل كردم و يك پايه پتانسيومتر رو به زمين و ديگريش به +5
پتانسيومتر رو تغيير دادم در اين صورت بايد كار ميكرد اما نكرد
با تشكر
1-فک کنم bc547 جواب بده
2-پایه ی امیتر به adc پایه ی کلکتور به 5 ولت و بیس به خروجی کارت صدا
3-از بعد از اسپیکر نگیرین از خروجیه کارت صدا بگیرین یه فیش سبز رنگه که سه تا سیم داره یکشون هیچ حفاظی نداره که به منفی وصل کنید و از یکی از دوتا سیم دیگه رو به ترانزیستور(قبل از این کار ولتاژ خروجیش رو چک کن با ولتمتر ببین چقدره اگر بین صفر و 5 ولت بود دیگه نیازی به ترانزیستور نیست)
4-سخت افزار سالمه برنامه به نظر میاد سالم باشه ولتاژ مرجع رو درست وصل کردین
آقا رسول جواب این سوالایی رو که گفتن من نمی دونم ولی به پیوست نگاه کنین یه شماتیک پیوست کردم فک کنم بدردتون بخوره
داداش من كه سخت افزاري نزاشتم كه شما ميگي سخت افزار درسته
ولتاژ مرجع رو باز از كجا بگيرم به كجا وصل كنم
شما از روي كدوم سسخت افزار دارين توضيح ميدين؟
منظورم از سخت افزار مداریه که ساختین (آی سی و و ال ای دی ها و ...)
برای ولتاژ مرجع باید پایه های AVCC و AREF رو به مثبت وصل کنین
ولتاژ مرجع همون ولتاژیه که مقدار پایه ی ADC با اون مقایسه میشه
برنامتون کاملا درسته من تو پروتئوس امتحانش کردم مشکل از سخت افزاره اونه امحان کنید
سلام
خسته نباشید
من یه صوت سنج میخوام بسازم که یه میکروفون خازنی داره و آلودگی صوتی رو برحسب دسی بل روی lcd نشون میده اما برنامه ش ایراد داره
ممکنه لطف کنید و برنامه ش رو برام تصحیح کنید ؟ ممنون میشم Rolleyes

کد php:
regfile "m66def.dat'
$crystal = 8888888
Config Lcdpin = Pin , Db 4= Portb. 4, Db 5= Portb. 5, Db 6= Portb.6
, Db 7= Portb. 7, E = Portb. 6, Rs = Portb.8
Config Lcd = 66* 2
Config Adc = Single , Prescaler = Auto
Dim A2d As Word , A As Single , A_max As Single , W As String * 2
, K As Long , F As Long , W_max As String * 2
Dim Hold As Bit
Ddrd. 2= 8
Portd. 2= 6
Ddrd. 3= 8
Portd. 3= 6
Reset_key Alias Pind.2
Hold_key Alias Pind.3
Do
If Hold = 6Then Goto Lowe
Start Adc
A2d = Getadc( )8
Stop Adc
A = A2d / 68.24
W = Fusing(a)"
##.#" ,
Locate 66
Lcd 
"sound: " " db"
Locate 26
'Lcd "sound_max"=
If W > W_max Then
W_max = W
Locate 2, 66
Lcd W_max
End If
Waitms 6
Lowe:
If Reset_key = 8Then
Waitms 6888
Lcd "sound_max"=
Lcd" "
Waitms 6888
End If
If Hold_key = 8Then
Bitwait Hold_key , Set
Waitms 688
Toggle Hold
End If
Loop 
(۲۵-مهر-۱۳۹۲, ۰۲:۴۲:۴۸)مریم احمدی نوشته است: [ -> ]سلام
خسته نباشید
من یه صوت سنج میخوام بسازم که یه میکروفون خازنی داره و آلودگی صوتی رو برحسب دسی بل روی lcd نشون میده اما برنامه ش ایراد داره
ممکنه لطف کنید و برنامه ش رو برام تصحیح کنید ؟ ممنون میشم Rolleyes

کد php:
regfile "m66def.dat'
$crystal = 8888888
Config Lcdpin = Pin , Db 4= Portb. 4, Db 5= Portb. 5, Db 6= Portb.6
, Db 7= Portb. 7, E = Portb. 6, Rs = Portb.8
Config Lcd = 66* 2
Config Adc = Single , Prescaler = Auto
Dim A2d As Word , A As Single , A_max As Single , W As String * 2
, K As Long , F As Long , W_max As String * 2
Dim Hold As Bit
Ddrd. 2= 8
Portd. 2= 6
Ddrd. 3= 8
Portd. 3= 6
Reset_key Alias Pind.2
Hold_key Alias Pind.3
Do
If Hold = 6Then Goto Lowe
Start Adc
A2d = Getadc( )8
Stop Adc
A = A2d / 68.24
W = Fusing(a)"
##.#" ,
Locate 66
Lcd 
"sound: " " db"
Locate 26
'Lcd "sound_max"=
If W > W_max Then
W_max = W
Locate 2, 66
Lcd W_max
End If
Waitms 6
Lowe:
If Reset_key = 8Then
Waitms 6888
Lcd "sound_max"=
Lcd" "
Waitms 6888
End If
If Hold_key = 8Then
Bitwait Hold_key , Set
Waitms 688
Toggle Hold
End If
Loop 

سلام
خوش اومدید
برنامه رو دقیق بررسی نکردم
ولی مشکل فقط برنامه است؟سخت افزار و درست پیاده کردید؟
میکروفون خازنی خروجی ولتاژ خیلی پایینی داره و باید قبلش با پری امپلی فایر تقویت بشه بعد بدید به adc میکرو
صفحه‌ها: 1 2