ايران ويج

نسخه‌ی کامل: ADC
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2
با سلام
سوال من در رابطه با مبدل آنالوگ به دیجیتال مگا32 هست.
اگه این کد برنامه باشه من چطور باید ولتاژ بین 0 تا 5 رو به پین 0 از پورت A وصل کنم؟ منظورم اینکه نحوه ی اتصال منفی و مثبت ولتاژ به میکرو چطوره؟
! وقتی که پورت A آزاد است و هیچ ولتاژی اعمال نشده ال سی دی عدد 1023 رو نمایش میده!
ببخشید اگه سوالای من خیلی حوصله سر بره!
کد php:
$regfile "m32def.dat"
$crystal 16000000
Config Lcdpin 
Pin Db4 Portb.1 Db5 Portb.2 Db6 Portb.3 Db7 Portb.4 Portb.5 Rs Portb.6
Config Adc 
Single Prescaler Auto
Config Lcd 
16 2
Dim A 
As Integer

Start Adc
Q
:
Getadc(0)
Cls
Home
Lcd A
Waitms 10


Goto Q
End 
مهندس من مفهوم سوالتو نفهمیدم !

ولی وقتی پایه ای ازاد باشه به دلیل مقاومت ورودی بالای میکرو نویز می گیره و همون 1023 رو انگار دریافت کرده !

به ورودی میکرو فقط میشه ولتاژ مثبت داد و برای ولتاژ منفی به یه اپ امپ نیاز هستش !

می تونی این کتاب رو بخونی : http://forum.iranled.com/showthread.php?tid=10869

نحوه اتصال ولتاژ منفی به میکرو رو گفته !
با سلام
و با اجازه اساتید
خوب تو این ولتاژ رو از یه المانی باید سنس کرده باشی. مثلا یه LM35 که اونوقت میتونی بر اساس ولتاژ اون مثلا دما رو تشخیص بدی خوب من فرض رو بر این میگیرم. حالا باید مبدل رو اینجوری پیکر بندی کنی
'Config Adc = Single , Prescaler = 128 , Reference = Internal
Enable Adcc
If Ss = 1 Then
Start Adc
Temp = Getadc(0)
Shift Temp , Right , 2

Stop Adc
Ts = Str(temp)
Ts = Format(ts , " ")

Locate 1 , 7
Lcd Ts
End If
خوب چون من میخواستم هر یک دقیقه یکبار دمای روی ال سی دی رفرش بشه به این شکل استفاده کردم اما با دستور شیفت که دیدی ما دقت عدد رو به 8 بیت کاهش میدیم تا دما رو با دقت تا دمای صحیح نمایش داده بشه. بهر حال پیکربندی و دستکاری بیتهای بدست آمده امیدوارم به منظورت برسی.
خوب حالا پایه خروجی اون سنسورت رو به یکی از پایه های میکرو مه تو دیتاشیت نوشته ADC وصل کن و از اون یک مقاومت 10 کیلو به زمین وصل کن. کار تموم شد عزیز ازش لذت ببر
خوب مهندس برنامشو اینطوری بنویس :

دقت 0.25 درجه

کد php:
$regfile "m32def.dat" $crystal 1000000

Config Lcdpin 
Pin Db4 Pinc.3 Db5 Pinc.2 Db6 Pinc.1 Db7 Pinc.0 Pinc.4 Rs Pinc.5
Config Lcd 
16 Cursor Off Cls

Config Adc 
Single Prescaler Auto Reference Internal

Dim W 
As Word , As Single

Start Adc

Do

   
Getadc(0) : 4
   Home L 
Lcd "Temp = " " C     "
   
Wait 1

Loop 
(۱۰-دى-۱۳۸۸, ۱۳:۵۸:۲۵)salehjg نوشته است: [ -> ]با سلام
سوال من در رابطه با مبدل آنالوگ به دیجیتال مگا32 هست.
اگه این کد برنامه باشه من چطور باید ولتاژ بین 0 تا 5 رو به پین 0 از پورت A وصل کنم؟ منظورم اینکه نحوه ی اتصال منفی و مثبت ولتاژ به میکرو چطوره؟
! وقتی که پورت A آزاد است و هیچ ولتاژی اعمال نشده ال سی دی عدد 1023 رو نمایش میده!
ببخشید اگه سوالای من خیلی حوصله سر بره!
کد php:
$regfile "m32def.dat"
$crystal 16000000
Config Lcdpin 
Pin Db4 Portb.1 Db5 Portb.2 Db6 Portb.3 Db7 Portb.4 Portb.5 Rs Portb.6
Config Adc 
Single Prescaler Auto
Config Lcd 
16 2
Dim A 
As Integer

Start Adc
Q
:
Getadc(0)
Cls
Home
Lcd A
Waitms 10


Goto Q
End 

سلام...
دوست عزیز پایه های AVCC و AREF و AGND شما ازاده؟؟؟؟
موفق باشی....
آره !

اون پایه ها ول هستش !

البته اگه agnd رو زمین کنی خوبه !
ببخشید یه مدار adc و سنسور دما lm015 را با سی هست .
شاید به کارتون بیاد.
[attachment=4413]
(۱۴-دى-۱۳۸۸, ۱۳:۳۷:۱۵)arobfan نوشته است: [ -> ]... سنسور دماlm015
ببخشید
مثل اینکه سنسوره lm35 بود
اشتباه شد
بازم ببخشید
یه توضیح کلی در مورد آپ امپ میدین؟
مقاومت ورودی خیلی زیاد

مقاومت خروجی خیلی کم

به عنوان تقویت کننده و مقایسه گر استفاده میشه

توضیحات بیشتر خواستی بگو

به کتاب الکترونیک 2 هم میتونی مراجعه کنی
از همه ی شما متشکرم مشکلم حل شد. اشکال کار مقاومت به زمین بود.
صفحه‌ها: 1 2