پاسخ : کمک در مورد سنسور lm35
با توجه به فرمول فکر کنم شما ADC رو روی 5 ولت کانفیگ کرده اید.
اما یک مشکل بزرگ دارد! همیشه موقع استفاده از ADC میکرو AVR از میانگین استفاده کن شما اومدی waitms 500 گذاشتی و فکر کردی در 500ms تغییرات رو به 0 رسوندی و اینکه ال سی دی کمتر چشمک بزنه اما باز هم هیچ فایده ای نداره باید از میانگین مثلا 10 بار اندازه گیری استفاده کنی مثل برنامه ای که در همین تاپیک گذاشتم.اگر این کار نکنی مثلا دما بین 20 تا 25 درجه تغییر میکنه!
شما اگر waitms 500 میخواهید یک کار کن:
دستور getkbd درون حلقه ای گذاشته اید که waitms 500 دراد!
یک پیشنهاد دارم:
صورت برنامه رو بگو تا یکبار تمیز بنویسمش.
نوشته اصلی توسط dr.data
اما یک مشکل بزرگ دارد! همیشه موقع استفاده از ADC میکرو AVR از میانگین استفاده کن شما اومدی waitms 500 گذاشتی و فکر کردی در 500ms تغییرات رو به 0 رسوندی و اینکه ال سی دی کمتر چشمک بزنه اما باز هم هیچ فایده ای نداره باید از میانگین مثلا 10 بار اندازه گیری استفاده کنی مثل برنامه ای که در همین تاپیک گذاشتم.اگر این کار نکنی مثلا دما بین 20 تا 25 درجه تغییر میکنه!
شما اگر waitms 500 میخواهید یک کار کن:
do
sum1=0
sum2=0
for i=0 to 9
Z = Getadc(0) : Z = Z / 2
W = Getadc(1)
sum1=sum1+z
sum2=sum2+w
waitms 50
next i
sum1=sum1/10
sum2=sum2/10
upperline
Lcd "temp is:" ; fusing(sum1,"###.#"
; "C"
lowerline
Lcd Time$
Loop Until sum2 > 300
cls
در ضمن شما یک اشتباه دیگر هم کرده اید!sum1=0
sum2=0
for i=0 to 9
Z = Getadc(0) : Z = Z / 2
W = Getadc(1)
sum1=sum1+z
sum2=sum2+w
waitms 50
next i
sum1=sum1/10
sum2=sum2/10
upperline
Lcd "temp is:" ; fusing(sum1,"###.#"
; "C"lowerline
Lcd Time$
Loop Until sum2 > 300
cls
دستور getkbd درون حلقه ای گذاشته اید که waitms 500 دراد!
یک پیشنهاد دارم:
صورت برنامه رو بگو تا یکبار تمیز بنویسمش.









دیدگاه