ايران ويج

نسخه‌ی کامل: اندازه‌گیری نور محیط
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام
من تو یه پروژه نیاز دارم نور محیط رو اندازه بگیرم و اگر نور محیط از یه مقدار x کمتر شد یه پورت رو فرضا 1 کنم. برای اندازه‌گیری شدت نور از یه فتوسل معمولی استفاده کردم و با بیسیک از adc یک atmega16 به صورت زیر استفاده کردم تا مقدار عددی رو روی یه LCD 2*16 نمایش بدم:
کد:
$regfile = "m16def.dat"
$crystal = 8000000
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , Rs = Portb.2 , E = Portb.3

Config Adc = Single , Prescaler = Auto
Start Adc
Dim A As Word
Cursor Off
Do
A = Getadc(0)
Locate 1 , 1
Lcd A
Loop
End
اما متاسفانه عددی که روی LCD برمیگردونه سریعا تناوب داره و اصلا نمیشه خوندش. شاید مشکل از پیکربندی نامناسب باشه. من پین‌های AREF و AVCC میکرو رو به VCC وصل کردم و بین زمین و ADC0 یه فتوسل گذاشتم.

خودم حدس می‌زنم باید عملکرد فتوسل رو تقویت کنم و بعد بدمش به کانال 0 مبدل آنالوگ به دیجیتال میکرو. اما نمیدونم چگونه؟
مهندس شما فقط كافيه تو حلقه اصلي برنامه به تاخير كوچولو بذاري !
مثلا waitms 200

البته مي توني بيست بار بخوني و ميانگينشون رو نشون بدي براي دقت بيشتر !
فتوسل ها خيلي حساسن حتي به دما. بعید نیست اون نوسانات تو خود فتوسل باشه .اگه مشکل با راه حل علی آقا حل نشد،این روشها رو امتحان بکنید:
1)یه خازن کوچولو مثل 0.1 میکرو به دو سر فتوسل وصل کنید
2)به جای A/D از مقایسه کننده های آپ امپی استفاده کنید
3)از سنسور های دیگه ای استفاده کنید
waitms تونست مشکل رو حل کنه اما حساسیت خیلی خیلی کمه. یعنی وقتی دستمو جلوی نور تابشی به فتوسل میگیرم خیلی کند مقدار رو نمایش میده! میخوام حساسیت رو حداکثر کنم...
(۰۹-مهر-۱۳۸۸, ۱۵:۰۹:۱۳)web_developer نوشته است: [ -> ]waitms تونست مشکل رو حل کنه اما حساسیت خیلی خیلی کمه. یعنی وقتی دستمو جلوی نور تابشی به فتوسل میگیرم خیلی کند مقدار رو نمایش میده! میخوام حساسیت رو حداکثر کنم...

مقاومت هايي كه سر سنسورات وصل هست را يكم كم كن
يا پتانسيومتر سرش بذار
اما من هیچ مقاومتی به فتوسل وصل نکردم! فتوسل خودش یه مقاومته که. پست اول گفتم چطور مدارو بستم...
مهندس میشه مدارت رو بذاری !

آخه اینطور که فکر کنم داری می گیری کلا اشتباه هستش !

شما یه مقاومت صد کیلو بین پایه میکرو و برق مثبت بزن ! فتوسل رو هم بین پایه میکرو و زمین ( همون منفی ) وصل کن )
پایه ورودی میکرو منظور همون ورودی آنالوگ میکروست ! ( تو برنامه شما پایه 40هستش )


می تونی برای خوندن فتوسل از دستور getrc استفاده کنی !
فقط یه خازن سری با فتوسل لازم داره !
با زمان شارژ و دشارژ خازن تست می کنه !
فکر کنم همون ADC بهتر باشه ها
تاخیرتو کم کن
وقتی که ADC رو خوندی stop adc کن
مقدارشو بخونو نمایش بده
روی یه مقدار هم مقایشه نکن
چون خروجی مدام قطع و وصل میشه
یه محدوده خیلی کوچیک تعیین که با اختلاف کم بعد مقایسه برای قطع وصلو انجام بده
اون مقاومت 100 کیلو هم که دوستمون گفتن یادت نره
موفق باشی