نمایش دما و رطوبت با سون سگمنت
در این بخش تیم الکترونیک و برنامه نویسی الکترونیک ۹۸, اقدام به طراحی و انتشار پروژه ای کاربردی و حرفه ای با عنوان, اندازه گیری دما و رطوبت توسط سنسور SHT21 و نمایش آن بر روی سون سگمنت, برای شما علاقه مندان به پروژه های میکروکنترلر AVR کرده است. در بسیار از مکان های صنعتی و تولیدی لازم است که مدام میزان دما و رطوب هوا را اندازه گیری کنیم. اندازه گیری دقیق میزان رطوبت و دما بستگی زیادی به سنسور مورد استفاده در اندازه گیری دارد، به همین دلیل در این پروژه می خواهیم به معرفی سنسور دما و رطوبت SHT21 و نحوه راه اندازی آن با میکروکنترلر AVR بپردازیم.
نقشه شماتیک پروژه
در این پروژه توسط میکروکنترلر ATmega8 از خانواده میکروکنترلرهای AVR اقدام به اندازه گیری دما و رطوبت محیط توسط سنسور SHT21 می کنیم و سپس مقدار اندازه گیری شده را بر روی سون سگمنت نمایش می دهیم.
سنسور دما و رطوبت SHT21
حسگر SHT21 یک سنسور دما و رطوبت جهت ساخت دماسنج و رطوبت سنج می باشد که می توانید توسط آن به صورت همزمان دما و رطوبت محیط را با دقت بسیار بالا اندازه گیری کنید، از ویژگی های اصلی این سنسور ارسال بسته داده همزمان دما و رطوبت توسط پروتکل I2C می باشد. به همین دلیل می توان به سادگی توسط ارتباط I2C بین میکروکنترلر AVR و سنسور دما و رطوبت SHT21 ارتباط برقرار کرد.
برنامه میکروکنترلر به زبان بیسیک BASIC در نرم افزار Bascom-AVR
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 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 |
$regfile = “m8def.dat” $crystal = 8000000 ‘——————————————– $baud = 19200 $lib “mcsbyte.lbx” ‘——————————————– Config Portb = Output Config Portd.4 = Output , Portd.5 = Output , Portd.6 = Output , Portd.7 = Output A Alias Portd.6 : B Alias Portd.5 : C Alias Portb.3 : D Alias Portb.2 : E Alias Portb.1 F Alias Portb.0 : G Alias Portd.7 : Dp Alias Portb.4 Dig1 Alias Portb.6 : Dig2 Alias Portd.4 Dig3 Alias Portb.5 : Dig4 Alias Portb.7 ‘——————————————– Dim X As Byte , Cifri(4) As Integer , Perenoschikobsh_provodov As Byte Dim Perenoschiksegmentov As Byte ‘——————————————– Config Timer0 = Timer , Prescale = 64 : On Timer0 Pulse : Enable Timer0 : Enable Interrupts ‘——————————————– Dim Ledm As Byte Dim Data1 As Byte , Data2 As Byte , Crc As Byte , Dataw As Word , T As Single , H As Single Dim Cb As Byte Config Watchdog = 2048 X = 0 ‘——————————————– Config Sda = Portc.5 Config Scl = Portc.4 Print Print “_____________________________________” ‘——————————————– Cifri(1) = 18 : Cifri(2) = 24 : Cifri(3) = 23 : Cifri(4) = 10 Ledm = 255 Wait 2 ‘——————————————– Do I2cstart I2cwbyte &H80 I2cwbyte &HE3 Waitms 100 I2cstart I2cwbyte &H81 I2crbyte Data1 , Ack I2crbyte Data2 , Ack I2crbyte Crc , Nack I2cstop ‘——————————————– Dataw = Data1 Shift Dataw , Left , 8 Dataw = Dataw + Data2 T = Dataw * 175.72 T = T / 65536 T = T – 46.85 ‘——————————————– I2cstart I2cwbyte &H80 I2cwbyte &HE5 Waitms 100 I2cstart I2cwbyte &H81 I2crbyte Data1 , Ack I2crbyte Data2 , Ack I2crbyte Crc , Nack I2cstop ‘——————————————– Dataw = Data1 Shift Dataw , Left , 8 Dataw = Dataw + Data2 H = Dataw * 125 H = H / 65536 H = H – 6 ‘——————————————– Print ” T ” ; Fusing(t , “#.##”) ; ” H ” ; Fusing(h , “#.#”) Cb = Round(t) Cifri(2) = Cb Mod 10 Cifri(1) = Cb \ 10 Cb = Round(h) Cifri(4) = Cb Mod 10 Cifri(3) = Cb \ 10 Wait 1 Loop ‘——————————————– Pulse: Reset Watchdog Perenoschikobsh_provodov = &H00 Gosub Perenos Incr X : If X > 3 Then X = 0 Perenoschiksegmentov = Lookup(cifri(x + 1) , Dta) Perenoschiksegmentov.7 = Ledm.x Set Perenoschikobsh_provodov.x Gosub Perenos Perenoschiksegmentov = 0 Return ‘——————————————– Perenos: Dig1 = Perenoschikobsh_provodov.0 Dig2 = Perenoschikobsh_provodov.1 Dig3 = Perenoschikobsh_provodov.2 Dig4 = Perenoschikobsh_provodov.3 A = Perenoschiksegmentov.0 B = Perenoschiksegmentov.1 C = Perenoschiksegmentov.2 D = Perenoschiksegmentov.3 E = Perenoschiksegmentov.4 F = Perenoschiksegmentov.5 G = Perenoschiksegmentov.6 Dp = Perenoschiksegmentov.7 Return ‘——————————————– Dta: Data &B01000000 , &B01111001 , &B10100100 , &B00110000 , &B00011001 Data &B00010010 , &B10000010 , &B11111000 , &B10000000 , &B10010000 Data &B10001001 , &B10000110 , &B11000111 , &B11111111 , &B10111111 Data &B10100011 , &B11001110 , &B10001110 , &B10011100 , &B10100111 Data &B10101011 , &B10100001 , &B01000001 , &B10001100 , &B11000110 |
با عرض سلام و خسته نباشید لطفا کد نویسی sht20 با ال سی دی 2*16 همراه با نقشه مدار قرار دهید
متاسفانه هیچ سایتی این پروژه را نساخته است با تشکر