با سلام خدمت همه اعضای محترم.با توجه به اینکه من در هیچ کتابی نحوه برنامه نویسی LM35 رو با بسکام ندیدم و خودم در پایان نامه بهش نیاز دارم لازم دونستم که تایپیکی ایجاد کرده و از همه در جهت کمک به کسانی که در آینده بهش نیاز دارن دعوت کنم.پس خواهش میکنم که اطلاعات خوذتون رو اینجا قرار بدین تا این تایپیک مفید واقع بشه.پیشاپیش از همه سپاسگذارم.
اطلاعیه
Collapse
No announcement yet.
برنامه نویسی LM35در بسکام و نمایش دما در LCD
Collapse
X
-
پاسخ : برنامه نویسی LM35در بسکام و نمایش دما در LCD
برای شروع فرض میکنیم دو سنسورLM35 داریم که اولی به ADC0 و دومی بهADC1 میکرو AVR ATMEGA16 وصل هستن و ما میخواهیم اطلاعات دو سنسور را خوانده و دمای درست را با برنامه نویسی بیسیک محاسبه و در LCD نمایش دهیم.خواهشن قطعه های برنامه را با توضیحات لازم درباره کریستال و مقدار نمونه برداری و Prescaler و نحوه استفاده از تایمر بیان کنید که ملموس تر و قابل فهم تر باشه.
ممنون از همه بسم الله.....جانم به فدای ائمه اطهار
می دونستم تحمل مرگ اعضای خانواده خیلی سخته ولی نه تا این حد،ایکاش پدرم بیشتر می موند.روحش شاد.
-
پاسخ : برنامه نویسی LM35در بسکام و نمایش دما در LCD
سلام بنده هم برای یکی از پروژه هام به این سنسور نیاز دارم خوشحال میشم دوستان هم نکاتی رو در مورد استفاده از این سنسور بیان کنند
برنامه رو هم انشالله به زودی میزارم البته چیز سختی به نظر نمیاد باشه و فقط adc هست
بنده چند تا تاپیک در این مورد خوندم و چیزای متناقضی دیدم
بعضی ها میگفتن خوبه دقت بالایی داره بعضی ها هم شاکی بودن
این میتونه نشون دهنده این باشه که جنس های مختلفی با کیفیت های مختلف الان تو بازار هست البته ممکنه اینطور هم نباشه
-----------------------------------------------------------------
این قابلیت هاش هست به گفته شرکت سازنده # Features Calibrated directly in ° Celsius (Centigrade)
# Linear + 10.0 mV/°C scale factor
# 0.5°C accuracy guaranteeable (at +25°C)
# Rated for full -55° to +150°C range
# Suitable for remote applications
# Low cost due to wafer-level trimming
# Operates from 4 to 30 volts
# Less than 60 µA current drain
# Low self-heating, 0.08°C in still air
# Nonlinearity only ±¼°C typical
# Low impedance output, 0.1 Ohm for 1 mA load
--------------------------------------------------------------------
این سنسور در ازای هر درجه سانتیگراد 10 میلی ولت خروجیش افزایش پیدا میکنه
یعنی در 150 که سقف دمای کاریش هست 1.5 ولت میده
دقت adc میکرو برای این کار کافی هست و نیاز نیست در گیر کاری جانبی بشید
-----------------------------------------------------------------
برای راه اندازی ابن سنسور برای اندازی گیری دمای مثبت کافیه تغذیه 4 تا 20 ولت رو بهش بدید و خروجیش رو با adc بخونید و ...
----------------------------------------------------------------
برای راه اندازی این سنسور به صورتی که دمای منفی رو هم اندازه گیری کنه باید علاوه بر اینا خروجیش رو با ولتاژ منفی پول دون کنید
مثلا اگه تغذیه رو 5 ولت انتخاب میکنید باید با استفاده از یک مقاومت 100 کیلو خروجیش رو وصل کنید به ولتاژ -5
-----------------------------------------------------------
اینا کلا چیزایی بود که از دیتا شیتش فهمیدم
ولی در عمل باید دید جواب میده یانه
دیدگاه
-
پاسخ : برنامه نویسی LM35در بسکام و نمایش دما در LCD
میدونی چرا هیشکی جواب نمیده :mrgreen: چون اسونه
اولین کار با میکرو کنترلر ها راه اندازی انالوگ به دیجی تال هستش
من با lm35 دمای + و منفی رو سنجیدمالان یکم سرم شلوغه برنمه و توضیحات رو میزارم تو این تاپیک
[move][img width=133 height=100]http://bargiri.persiangig.com/aks/0.306310001356499787_taknaz_ir.gif[/img][/move]
دیدگاه
-
پاسخ : برنامه نویسی LM35در بسکام و نمایش دما در LCD
نوشته اصلی توسط حامد رحیمیمیدونی چرا هیشکی جواب نمیده :mrgreen: چون اسونه
اولین کار با میکرو کنترلر ها راه اندازی انالوگ به دیجی تال هستش
من با lm35 دمای + و منفی رو سنجیدمالان یکم سرم شلوغه برنمه و توضیحات رو میزارم تو این تاپیک
جانم به فدای ائمه اطهار
می دونستم تحمل مرگ اعضای خانواده خیلی سخته ولی نه تا این حد،ایکاش پدرم بیشتر می موند.روحش شاد.
دیدگاه
-
پاسخ : برنامه نویسی LM35در بسکام و نمایش دما در LCD
تایمر نیاز نیست اخه خیلی هم زمان مهم نیست شما هر 300 میلی ثانیه(با ویت) نمونه برداری کنید خوبه فکر کنم
برای فرمول هم کافیه مقدار خونده شده از adc رو تقسیم بر 2 کنید تا دما بر حسب درجه سانتیگراد بدست بیاد
خطای این روش در زیر 50 درجه کمتر از 1 درجه هست و بالای 100 درجه بیشتر از 2 درجه(خطای ناشی از adc)
که فکر کنم قابل قبول باشه
-----------------------------------------
اینا برای دمای مثبت بود
برای دمای منفی دوستان چه باید کرد؟
دیدگاه
-
پاسخ : برنامه نویسی LM35در بسکام و نمایش دما در LCD
$regfile = "m8def.dat"
$crystal = 12000000
$baud = 9600
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portb.2 , Db5 = Portb.3 , Db6 = Portb.4 , Db7 = Portb.5 , E = Portb.1 , Rs = Portb.0
Cls
Cursor Off
Config Adc = Single , Prescaler = Auto , Reference = Internal
Deflcdchar 0 , 12 , 18 , 18 , 12 , 32 , 32 , 32 , 32
Deflcdchar 1 , 32 , 4 , 12 , 28 , 28 , 32 , 32 , 32
Deflcdchar 2 , 32 , 4 , 14 , 31 , 31 , 32 , 32 , 32
Deflcdchar 3 , 32 , 4 , 14 , 31 , 31 , 7 , 6 , 4
Deflcdchar 4 , 32 , 4 , 14 , 31 , 31 , 31 , 14 , 4
Deflcdchar 5 , 32 , 32 , 32 , 32 , 32 , 32 , 32 , 32
Dim A As Word
Dim B As Word
Dim C As Single
Dim D As Byte
D = 1
Start Adc
Cursor Off
Cls
Do
A = Getadc(3)
B = Getadc(4)
C = A - B
C = C / 4
Locate 1 , 1
Lcd "temp =" ; C ; Chr(0) ; "c "
Locate 1 , 16
Lcd Chr(d)
Waitms 500
Incr D
If D > 6 Then D = 1
Print "temp: " ; C
Loop
End[move][img width=133 height=100]http://bargiri.persiangig.com/aks/0.306310001356499787_taknaz_ir.gif[/img][/move]
دیدگاه
-
پاسخ : برنامه نویسی LM35در بسکام و نمایش دما در LCD
این برنامه نمونه برداری میکنه و به پورت کام هم میفرسته پس دستور $baud = 9600
و دستور Print "temp: " ; C
نیازی نیست
کریستال $crystal = 12000000
هست ولی شما میتونید از $crystal = 1000000
هم استفاده کنید نمایش دمای +و منفی رو هم نشون میده خودمم هم میدونم جملم درست نیست :mrgreen:
یعنی این که هم مثبت نشون میده هم منفی اگه سنسورو بزاری تو فریزر میره منفی
ببین طریقه وصل کردن پایه هارو به adc میکرو از دیتا شیت lm35 بردار اون قسمت که دو تا دیود و یدونه مقاومت 10 کیلو داره ها شماتیک کشیده تو فایل دیتاشیت lm35 بخونی متوجه می شی چه خبره :agree:[move][img width=133 height=100]http://bargiri.persiangig.com/aks/0.306310001356499787_taknaz_ir.gif[/img][/move]
دیدگاه
-
پاسخ : برنامه نویسی LM35در بسکام و نمایش دما در LCD
بیا اینم عکسش
توضیحات اینکه ولتاژ رو سعی کن بیشتر از 5 ولت بدی
بعدش سعی کن که تو دوتا چایه خروجی خازن بزاری با زمین لا اقل 104 واسه اینکه عدد رو ال سی دی زیاد جابه جا نشه
(نویز نیفته رو مدارت )
بعدش تشکر یادت نره :mrgreen:
بعدش اون مقاومت 1 کیلو ابتکار خودم بود تو دمای منفی 2 تا مثبت 2 درجه قاطی میکرد درستش کردم :agree:
خروجی ها یکی به ای دی سی 3 ئ یکی به 4 میره
adc 3 به مثبت خروجی
adc 4 به منفی خروجی
اگه عددت قاطی پاتی بود جای دو تا + و منفی رو عوض کن من همین مدارو 100 جا تست کردم درسته ولی الان دقیقا این دوتا پایه یادم نیست چی به چیه :agree:[move][img width=133 height=100]http://bargiri.persiangig.com/aks/0.306310001356499787_taknaz_ir.gif[/img][/move]
دیدگاه
-
پاسخ : برنامه نویسی LM35در بسکام و نمایش دما در LCD
باور نکردنیه اره ؟
ولی من که بچه اردبیلم پارسا ل زمستون این مدار منفی 22 درجه ثبت کرد :wow:
در ضمن 2 سالی میشه کار میکنه :icon_razz:
یه چیز دیگه
برای دماسنجی + یک ای دی سی کافی بود ولی واسه دوبل دمایی یعنی دمای مثبت و منفی باید از 2 تا ای دی سی استفاده کرد (همون انالوگ به دیجیتال خودمون adc )()[move][img width=133 height=100]http://bargiri.persiangig.com/aks/0.306310001356499787_taknaz_ir.gif[/img][/move]
دیدگاه
-
پاسخ : برنامه نویسی LM35در بسکام و نمایش دما در LCD
بازم میگم اون دقتی که تو ولتاژ 12 ولت هست تو 5 ولت نمیبینی
یعنی 12 خوبه
دیود ها هم 1n4148 بزار :mrgreen: دیگه من برم زیاد حرف زدم :bye[move][img width=133 height=100]http://bargiri.persiangig.com/aks/0.306310001356499787_taknaz_ir.gif[/img][/move]
دیدگاه
-
پاسخ : برنامه نویسی LM35در بسکام و نمایش دما در LCD
نوشته اصلی توسط حامد رحیمیبیا اینم عکسش
توضیحات اینکه ولتاژ رو سعی کن بیشتر از 5 ولت بدی
بعدش سعی کن که تو دوتا چایه خروجی خازن بزاری با زمین لا اقل 104 واسه اینکه عدد رو ال سی دی زیاد جابه جا نشه
(نویز نیفته رو مدارت )
بعدش تشکر یادت نره :mrgreen:
بعدش اون مقاومت 1 کیلو ابتکار خودم بود تو دمای منفی 2 تا مثبت 2 درجه قاطی میکرد درستش کردم :agree:
خروجی ها یکی به ای دی سی 3 ئ یکی به 4 میره
adc 3 به مثبت خروجی
adc 4 به منفی خروجی
اگه عددت قاطی پاتی بود جای دو تا + و منفی رو عوض کن من همین مدارو 100 جا تست کردم درسته ولی الان دقیقا این دوتا پایه یادم نیست چی به چیه :agree:
[move][img width=133 height=100]http://bargiri.persiangig.com/aks/0.306310001356499787_taknaz_ir.gif[/img][/move]
دیدگاه
-
پاسخ : برنامه نویسی LM35در بسکام و نمایش دما در LCD
سلام حامد جون واقعا رگ اردبیلیت گل کرد :applause:ترکوندیممنون واسه برنامه و توضیحاتت.و 2تا تشکرم کردم حال کنی اما من واسه پایان نامه میخوام و باید دقیق اونی باشه که میخوام نه دما + و -. :cry2:اما نکات خوبی داشت که فهمیدم نیاز به تایمر نیست.ولی نمونه برداری رو با یک حلقه for-next انجام بدم و در یک do-loop بزارم تا دایم فیدبک بگیره و نمونه برداری متوقف نشه.دیگه اینکه فرمولشم:
sample as word
t as word
temp s word
do
start adc
for i=1 to 100
sample=getadc(0
t=t+sample
next
t=t/100
temp=t/2
lcd temp
loop
درسته؟جانم به فدای ائمه اطهار
می دونستم تحمل مرگ اعضای خانواده خیلی سخته ولی نه تا این حد،ایکاش پدرم بیشتر می موند.روحش شاد.
دیدگاه
دیدگاه