امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
کد برنامه smt160
نویسنده پیام
edifier آفلاین
كاربر تک ستاره
*

ارسال‌ها: 25
موضوع‌ها: 15
تاریخ عضویت: شهریور ۱۳۸۷

تشکرها : 1
( 4 تشکر در 4 ارسال )
ارسال: #1
کد برنامه smt160
کد استفاده از smt 160 :
از اونجایی که برای نوشتن کد بدست آوردن دما به وسیله smt160 خیلی به دردسر افتادم اونو در اختیار کسانی قرار میدم که قصد استفاده از اون رو دارن.
البته نوشتن این برنامه با استفاده از وقفه های میکرو خیلی ساده تره . من فقط با استفاده از یک پین ورودی و تایمر0 این کارو کردم.
آرزوی آرامش و آسایش برای همتون

کد:
$regfile = "m32def.dat"
$crystal = 1000000
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Pinb.2 , Db5 = Pinb.3 _
, Db6 = Pinb.4 , Db7 = Pinb.5 , Rs = Pinb.0 , E = Pinb.1
Config Timer0 = Timer , Prescale = 8
Enable Timer0
Dim T1 As Long
Dim T2 As Long
Dim T3 As Long
Dim Dc As Single
Dim Endt As Single
Do
T1 = 0 : T2 = 0 : Dc = 0 : Endt = 0
Start Timer1
Bitwait Pinb.7 , Reset
Timer1 = 0
Bitwait Pinb.7 , Set
T2 = Timer1
Timer1 = 0
Bitwait Pinb.7 , Reset
T1 = Timer1
Timer1 = 0
Bitwait Pinb.7 , Set
T2 = Timer1
T3 = T2 + T1
Dc = T1 / T3
Endt = Dc - 0.32
Endt = Endt / 0.0047
cls
Lcd endt
Stop Timer1
Loop
End
(آخرین ویرایش در این ارسال: ۱۳-مهر-۱۳۸۷, ۱۴:۵۲:۵۲، توسط 1nafar.)
۱۳-مهر-۱۳۸۷, ۰۲:۰۲:۲۱
ارسال‌ها
پاسخ
تشکر شده توسط : t3r!p3000
t3r!p3000 آفلاین
         
*****

ارسال‌ها: 5,050
موضوع‌ها: 83
تاریخ عضویت: اردیبهشت ۱۳۸۵

تشکرها : 34447
( 17423 تشکر در 5116 ارسال )
ارسال: #2
RE: کد برنامه smt160

سلا مهندس

ممنون از برنامه


من تا حالا با smt160 كار نكردم ولي فكر مي كنم بعضي از خط هاي شما انگار اضافه اند .

فكر كنم بشه برنامه رو به فرم زير خلاصه كرد .

کد:
$regfile = "m32def.dat" : $crystal = 1000000
Config Lcdpin = Pin , Db4 = Pinb.2 , Db5 = Pinb.3 , Db6 = Pinb.4 , Db7 = Pinb.5 , Rs = Pinb.0 , E = Pinb.1
Config Lcd = 16 * 2 : Cursor Off
Config Timer1 = Timer , Prescale = 8
Dim T1 As Word , T2 As Long , Dc As Single
Do
    T1 = 0 : T2 = 0 : Dc = 0
    Timer1 = 0
    Bitwait Pinb.7 , Reset
    Start Timer1
    Bitwait Pinb.7 , Set
    T2 = Timer1 : Timer1 = 0
    Bitwait Pinb.7 , Reset
    T1 = Timer1: Stop timer1:T2 = T2 + T1
    Dc = T1 / T2 : Dc = Dc - 0.32 : Dc = Dc / 0.0047
    Cls : Lcd Dc :Waitms 100
Loop


اين خط شما انگار اضافه است . اخه دارين وقفه تايمر صفر رو فعال مي كنيد .
کد:
Enable Timer0


نمي دونم چرا شما تايمر صفر رو برنامه ريزي كرديد ولي از تايمر يك استفاده كرديد .
کد:
Config Timer0 = Timer , Prescale = 8
کد:
Start Timer1


متغيرهاي Endt و T3 رو هم فكر كنم بشه برداشت .

براي بدست آوردن T1 و T2 هم انگار دوبار پشت سر هم انجام داديد كه يكبارش اضافه هستش .

نكته : نقشه شماتيك رو هم مي ذاشتين عالي مي شد .
۱۳-مهر-۱۳۸۷, ۲۱:۵۴:۰۰
ارسال‌ها
پاسخ
edifier آفلاین
كاربر تک ستاره
*

ارسال‌ها: 25
موضوع‌ها: 15
تاریخ عضویت: شهریور ۱۳۸۷

تشکرها : 1
( 4 تشکر در 4 ارسال )
ارسال: #3
RE: کد برنامه smt160
ممنون از اصلاحاتی که دادی.
اما چند تا نکته
1-تو بیس کام نمیشه چند تا متغیر رو پشت سرهم تعریف کرد.
2-آنچه که باعث به درد سر افتادن زیاد من شد، این بود که بار اول مقدار t1 درست محاسبه نمیشه
وحتما باید اونو دوبار محاسبه کرد و مقدار دوم مقدار درسته.
3-در مورد شماره تایمر شما درست میگید.
4- در مورد استفاده از متغیرهای t3 , endt بازم شما درست میگید ولی ممکنه خوانایی برنامه از بین بره.
5- تا زمانی که از دستور Enable Timer0 استفاده نکنید تایمر به کار نمی افته.
6-شماتیک برنامه هیچ چیز قابل توجهی رو دربر نداره. smt160 یک ماژول 3پایه است(زمین،دیتا،مثبت) فقط باید پایه دیتا به pinb.7 یا هر پایه که خودتون تعیین می کنید ، وصل بشه.همین
ممنون از اصلاحاتی که دادی.
اما چند تا نکته
1-تو بیس کام نمیشه چند تا متغیر رو پشت سرهم تعریف کرد.
2-آنچه که باعث به درد سر افتادن زیاد من شد، این بود که بار اول مقدار t1 درست محاسبه نمیشه
وحتما باید اونو دوبار محاسبه کرد و مقدار دوم مقدار درسته.
3-در مورد شماره تایمر شما درست میگید.
4- در مورد استفاده از متغیرهای t3 , endt بازم شما درست میگید ولی ممکنه خوانایی برنامه از بین بره.
5- تا زمانی که از دستور Enable Timer0 استفاده نکنید تایمر به کار نمی افته.
6-شماتیک برنامه هیچ چیز قابل توجهی رو دربر نداره. smt160 یک ماژول 3پایه است(زمین،دیتا،مثبت) فقط باید پایه دیتا به pinb.7 یا هر پایه که خودتون تعیین می کنید ، وصل بشه. همین
(آخرین ویرایش در این ارسال: ۱۵-مهر-۱۳۸۷, ۱۶:۱۲:۴۴، توسط edifier.)
۱۵-مهر-۱۳۸۷, ۱۶:۱۱:۳۶
ارسال‌ها
پاسخ
تشکر شده توسط : t3r!p3000
t3r!p3000 آفلاین
         
*****

ارسال‌ها: 5,050
موضوع‌ها: 83
تاریخ عضویت: اردیبهشت ۱۳۸۵

تشکرها : 34447
( 17423 تشکر در 5116 ارسال )
ارسال: #4
RE: کد برنامه smt160
چشمهاي من پست شما رو تا به تا مي بينه ؟
فكر مي كنم توهمه چون دو تا مي بينم


edifier نوشته است:تو بیس کام نمیشه چند تا متغیر رو پشت سرهم تعریف کرد.
ها !!!!!!! ( با لهجه قوچاني بخونيد )
يه چيزي مي گي .
اگه بينشون ويرگول "," بذاري مي شه همه رو تو يه خط نوشت مثل زير :
کد:
Dim T1 As Word , T2 As Long , Dc As Single

تازه مي شه چند تا دستور هم تو يه خط نوشت . بايد بينشون دو نقطه ":" بذاري .مثل زير :
کد:
Cls : Lcd Dc :Waitms 100

همينطور مي شه چند تا متغير رو هم با هم ارسال يا نشون داد . بايد بينشون نقطه ويرگول ";" بذاري . مثل زير :
کد:
Print  Dc ; T1 ; "  " ; T2
Lcd  Dc ; "  " ; T1 ; "  " ; T2


edifier نوشته است:آنچه که باعث به درد سر افتادن زیاد من شد، این بود که بار اول مقدار t1 درست محاسبه نمیشه وحتما باید اونو دوبار محاسبه کرد و مقدار دوم مقدار درسته.
منطقي نيست .
البته برنامه شما چنين مشكلي داره .
دوباره نگاش كن ، علتشو مي فهمي .
تو برنامه من نبايد چنين مشكلي وجود داشته باشه .
مقايسه كن . علت رو مي فهمي .


edifier نوشته است:تا زمانی که از دستور Enable Timer0 استفاده نکنید تایمر به کار نمی افته.
وقفه تايمر كار نمي كنه نه خود تايمر .
شما هم كه از وقفه استفاده نكردي .
بدون اون هم امتحان كن ، بايد كار كنه .
نكته : تايمر يك رو ميگي ديگه . آخه تايمر صفر رو نوشتي .


نكته : من از بسكام 1.11.9.0 استفاده مي كنم .

حالا اين smt160 چي هستش ؟
سنسور چيه ؟
( الان با خودتون مي گين كه من نمي دونم smt160 چيه ، ولي الكي دارم رو برنامه هاش بحث مي كنم . )
۱۵-مهر-۱۳۸۷, ۱۸:۳۴:۲۱
ارسال‌ها
پاسخ
تشکر شده توسط : 1nafar
dariush_abbasi آفلاین
تازه وارد

ارسال‌ها: 3
موضوع‌ها: 0
تاریخ عضویت: مرداد ۱۳۸۸

تشکرها : 0
( 2 تشکر در 2 ارسال )
ارسال: #5
RE: کد برنامه smt160
آیا دقت این برنامه 0.01 است؟
۰۴-مرداد-۱۳۸۸, ۲۲:۵۵:۱۲
ارسال‌ها
پاسخ


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  سوال درباره برنامه smt160 دراکولا 2 2,820 ۱۶-شهریور-۱۳۹۲, ۱۶:۳۶:۴۲
آخرین ارسال: alfa.1000
Question استفاده دقیق از سنسور SMT160 mehdi_shz11 7 9,666 ۱۰-بهمن-۱۳۹۰, ۱۹:۵۲:۰۸
آخرین ارسال: miladhp
Exclamation !!!smt160!!!!--- **دماسنجی** sorenaa 3 2,995 ۰۴-بهمن-۱۳۸۸, ۰۱:۳۴:۴۵
آخرین ارسال: t3r!p3000

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 3 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS