ايران ويج

نسخه‌ی کامل: استفاده دقیق از سنسور SMT160
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سالم .
من باید یه دمای کاملا دقیق و 200 بار در ثانیه بسنجم .
می خوام این کارو با SMT160 بکنم ولی جواب دقیقی نمیگیرم .
هر کی اگه راه کاری و می دونه بگه خیلی ممنون می شم.
آقا من به این مدار خیلی نیاز دارم . خواهش می کنم یکی به من کمک کنه؟
۲۰۰ بار تو ثانیه؟
کلی زمان می بره تا سنسور بتونه هم دما بشه البته بستگی به اندازه سنسور هم داره و نحوه اتصالش ولی ۱/۲۰۰ ثانیه بعیده بتونه تغییر کنه
من یه نگاهی بهش کردم اینو باید مستقیم دیوتی سایکل و اندازه بگیر برای این کار یه کانتر نیاز داری که با لبه بالا رونده فعالش کنی و با لبه پایین رونده غیر فعال کنی و مقدار رو بخونی
۸۰۵۱ خدا بیامرز خیلی راحت این کارو می کرد فکر کنم avr هم از این امکانات داشته باشه
بازم ممنون که راهنمایی کردین. 
سلام به دوستان عزیز و البته اقای ha_60 من مشکلی برام پیش اومده اونم اینه که برای اندازه گیری دما با سنسور smt160 تو عمل مقدار واقعی رو نشون نمیده در اصل چیزی نزدیک به 10 درجه اختلاف داره و تو دمای کاملا ثابت (دستگاه جوجه کشی) نوسان 2 الی 3 درجه ای داره.در صورتیکه می بایست دقت 0.1 رو حداقل می داشت (مقاومت 4.7k بین portd.0 و زمین رو هم گذاشتم)برنامه ای هم که تو میکرو ریختم اینه لطفا راهنماییم کنید با تشکر فراوان
$regfile = "m32def.dat"
$crystal = 4000000
'-------------------------------lcd---------------------------------------------
Config Lcd = 16 * 2
Config Lcdpin = Pin , Rs = Pinb.0 , E = Pinb.2 , Db4 = Pinb.4 , Db5 = Pinb.5 , Db6 = Pinb.6 , Db7 = Pinb.7
'--------------------------------dim-------------------------------------------
Dim Yazdkit_reset As Word
Dim Yazdkit_set As Word
Dim Temp As Single
Dim Duty As Single
Dim X As Integer

'-------------------------------------------------------------------------------
Config Timer1 = Timer , Prescale = 1
Enable Timer1
'--------------------------------main------------------------------------------
Config Pind.0 = Input
'------------------------------------------------------------------------------
Cursor Off
Cls
Locate 1 , 5
Lcd "Hello"
Locate 2 , 1
Lcd "WWW.YAZDKIT.COM"
Wait 2
Cls

Smt160:
Do
Gosub Read_data_sm160
Locate 1 , 1
Lcd "T= " ; Temp ; "c ";
Wait 1
Loop

'-------------------------------------------------------------------------------
Read_data_sm160:
Bitwait Pind.0 , Set
Bitwait Pind.0 , Reset
Bitwait Pind.0 , Set
Bitwait Pind.0 , Reset
Bitwait Pind.0 , Set
Bitwait Pind.0 , Reset
Stop Timer1


Bitwait Pind.0 , Set
Timer1 = 0
Start Timer1
Bitwait Pind.0 , Reset
'Xl = Timer1
Yazdkit_set = Timer1


Timer1 = 0
Start Timer1
Bitwait Pind.0 , Set
'Xf = Timer1
Yazdkit_reset = Timer1

X = Yazdkit_set + Yazdkit_reset
Duty = Yazdkit_set / X

Duty = Duty - 0.32
Waitms 1
Temp = Duty / 0.0047
Waitms 1
Locate 1 , 1
Temp = Round(temp)
Stop Timer1
Return

پورت رو هم تو برنامه عوض کردم نشد
'--------------------------------main-------------------------------------------
$regfile = "m32def.dat"
$crystal = 1000000
'-------------------------------lcd---------------------------------------------
Config Lcd = 16 * 2
Config Lcdpin = Pin , Rs = Pinb.0 , E = Pinb.2 , Db4 = Pinb.4 , Db5 = Pinb.5 , Db6 = Pinb.6 , Db7 = Pinb.7
'--------------------------------dim-------------------------------------------
Dim Rs As Word
Dim Sets As Word
Dim Temp As Single
Dim Duty As Single
Dim X As Integer
Config Single = Scientific , Digits = 3
'-------------------------------------------------------------------------------
Config Timer1 = Timer , Prescale = 1
Enable Timer1
'--------------------------------main------------------------------------------
Config Pind.4 = Input
'------------------------------------------------------------------------------
Cursor Off
Cls
Locate 1 , 5
Lcd "Hello"
Locate 2 , 1
Lcd " RAMIN "
Wait 2
Cls

Smt160:
Do
Gosub Read_data_sm160
Locate 1 , 1
Lcd "T= " ; Temp ; "c ";
Wait 1
Loop

'-------------------------------------------------------------------------------
Read_data_sm160:
Bitwait Pind.4 , Set
Bitwait Pind.4 , Reset
Bitwait Pind.4 , Set
Bitwait Pind.4 , Reset
Bitwait Pind.4 , Set
Bitwait Pind.4 , Reset

Stop Timer1


Bitwait Pind.4 , Set
Timer1 = 0
Start Timer1
Bitwait Pind.4 , Reset
'Xl = Timer1
Sets = Timer1

'Bitwait Pind.0 , Reset 'ramin
Timer1 = 0
Start Timer1
Bitwait Pind.4 , Set
'Xf = Timer1
Rs = Timer1

X = Sets + Rs
Duty = Sets / X

Duty = Duty - 0.32
Waitms 1
Temp = Duty / 0.0047
Waitms 1
'Locate 1 , 1
'Temp = Round(temp)
Stop Timer1
Return







سلام

تو فیوز بیت میکرو کریستال را روی 4 مگ گذاشتی؟

من این مدا را با همین برنامه بستم دقتش عالی بود

سلام
تو فیوز بیت مقدار کریستال را روی 4 مگاهرتز گذاشتی؟

من این مدار را بستم خیلی خوب جواب میداد
نمیدونم چرا با پروگرمر هاتل وقتی
RSTDISBLE فیوز بیت
تیکش رو زدم کار خراب شد
یه فیوزبیت عوض کردم ات 8 دیگه پروگرم نمیشه
دیگه راهی برای زنده کردن آی سی نیست؟
یکی از دوستام می گفت پروگرمر با استفاده از پایه ریست میتونه عمل پروگرم رو انجام بده وقتی غیرفعال بشه دیگه نمیتونه
پیغام میده که نمیتونه آی سی رو پیدا کنه
من هم فیوز بیت ریست مگا8 رو دستکاری کردم و دیگه پر.گرام نمیشه،میکرو پر
من با smt160و مگا32مدارو بستم با کریستال 1مگ اما دقت نداره اصلا!