ساخت دماسنج
در این بخش دانلود پروژه ساخت دماسنج با سنسور دمای DS1820 و میکروکنترلر AVR, توسط تیم الکترونیک و برنامه نویسی الکترونیک ۹۸ برای شما علاقه مندان به پروژه های میکروکنترلر AVR آماده شده است. در این پروژه دمای محیط را با استفاده از سنسور دمای DS1820 اندازه گیری می کنیم و سپس توسط میکروکنترلر ATmega8515 از خانواده میکروکنترلرهای AVR, مقدار دمای اندازه گیری شده را بر روی صفحه نمایش ال سی دی کارکتری 2*16 نمایش می دهیم.
سنسور دمای DS1820
برای راه اندازی سنسور دمای DS1820 با میکروکنترلرها باید از پروتکل ارتباط 1-WIRE استفاده نمود. پروتکل ارتباطی WIRE-1 یکی از جدید ترین پروتکل های استفاده شده در میکروکنترلرهای AVR, که توسط شرکت Dallas طراحی شده است. برعکس بقیه پروتکل ها, محدودیت کابل استفاده شده آن تا 30 متر است. این پروتکل شبیه به پروتکل های شبکه طراحی شده است و قابلیت شناسایی سیستم های متصل به میکرو را دارد.
سرعت شناسایی 50 سیستم در ثانیه است. سیستم هایی که به این روش مجهز هستند دارای یک ID به طول 8 بایت بوده که شناسه سیستم مورد نظر است و همین ID توسط میکرو باید در اول برنامه, برای پیدا کردن سیستم مورد نظر, جستجو شود.
نقشه شماتیک پروژه ساخت دماسنج با سنسور دمای DS1820
برنامه نوشته شده در نرم افزار BASCOM-AVR به زبان بیسیک BASIC
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
$regfile = "m8515.dat" ' specify the used micro $crystal = 8000000 ' used crystal frequency Declare Sub Read1820 Config 1wire = Portd.7 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Porta.2 , Db5 = Porta.3 , Db6 = Porta.4 , Db7 = Porta.5 , E = Porta.1 , Rs = Porta.0 'Temp variables Dim Bd1 As Byte Dim Bd2 As Byte Dim Bd7 As Byte Dim Bd8 As Byte Dim I As Byte , Tmp As Byte Dim T As Integer , T1 As Integer Dim Bd(9) As Byte 'Scratchpad 0-8 72 bits incl CRC, explanations for DS1820 'Sc(1) 'Temperature LSB 'Sc(2) 'Temperature MSB 'Sc(3) 'TH/user byte 1 also SRAM 'Sc(4) 'TL/user byte 2 also SRAM 'Sc(5) 'config also SRAM x R1 R0 1 1 1 1 1 – the r1 r0 are config for resolution – write FF to byte for 12 bit – others dont care 'Sc(6) 'res 'Sc(7) 'res 'Sc(8) 'res 'Sc(9) ’8 CRC 'DALLAS DS1820 ROM and scratchpad commands”””””””””””””1wwrite…. '&H 33 read rom – single sensor '&H CC skip rom '&H BE read scratchpad '&H 44 convert T ' Main loop Cls Cursor Off Do 1wwrite &HCC : 1wwrite &H44 ' start measure Waitms 400 ' wait for end of conversion Read1820 Wait 1 Loop End 'end program 'Read the DS1820 by skipping the ROM checking, since we are using only 1 sensor Sub Read1820 ' reads sensor ans calculate ' T for 0.1 C 1wreset ' reset the bus 1wwrite &HCC ' read internal RAM 1wwrite &HBE ' read 9 data bytest Bd(1) = 1wread(9) Bd1 = Bd(1) Bd2 = Bd(2) Bd7 = Bd(7) Bd8 = Bd(8) ' read bytes in array 1wreset ' reset the bus Tmp = Bd1 And 1 If Tmp = 1 Then Decr Bd1 ' 0.1C precision T = Bd1 T = T * 50 T = T - 25 T1 = Bd8 - Bd7 T1 = T1 * 100 T1 = T1 / Bd8 T = T + T1 T1 = T / 100 'store tens T = T Mod 100 'store decimal number Cls Locate 1 , 3 Lcd "Temperature" Locate 2 , 7 Lcd T1 ; "." ; T End Sub End |
سلام من این مدار رو نصب کردم جواب نگرفتم میخواستم بدونم برنامه نوشته شده رو باید اپلود کنم؟ اگر چواب مثبته کجا اپلود کنم؟
سنسور داغ میکنه نمیدونم چرا
سلام دوست عزیز
بله – باید فایل Hex موجود در فایل پروژه را که مربوط به برنامه میکروکنترلر است را توسط یک پروگرامر بر روی میکروکنترلر پروگرام کنید.
همچنین در صورتیکه سنسور شما داغ می کند، به احتمال زیاد یا پایه های تغذیه سنسور را اشتباه متصل کرده اید و یا ولتاژ تغذیه متصل شده به سنسور بیشتر از 5 ولت است