راه اندازی سنسور SHT20 و SHT21 و SHT25 با بسکام

مقدمه:

برای اندازه‌گیری دما و رطوبت سنسورهای مختلفی در بازار وجود دارد. سنسورهای پک شده دما و رطوبت شرکت سوئیسی سنسیریون SENSIRION یکی از دقیق‌ترین و در عین حال ارزان‌ترین سنسورهای موجود در بازار است. این سنسورها در چند خانواده تولید می‌شود. اولین خانواده آنها سری SHT1x بود مثل SHT10 و SHT11 که این سنسورها هم اکنون منسوخ شده‌اند. سری بعدی SHT2x می‌باشد. این سری شامل SHT20 و SHT21 و SHT25 بوده که در حال حاضر سنسور SHT20 پرکاربرد ترین سنسور بشمار می‌رود. سنسورهای دیگر این شرکت خانواده SHT3x شامل SHT30 و SHT31 و SHT35 بوده که نسل سوم بوده و دقیق‌تر هستند و سنسور نسل 4 یعنی SHT40 نیز به تازگی وارد بازار شده است. ما در این آموزش قصد داریم به نحوه راه‌اندازی پرکاربردترین سنسور این شرکت یعنی SHT20 بپردازیم. این کد و شماتیک روی SHT21  و SHT25 نیز قابل استفاده است.

 

سنسور SHT20

سنسور دما و رطوبت SHT20 یک سنسور دقیق با ولتاژ کاری 3.3 ولت و پروتکل ارتباطی I2C می‌باشد. این پروتکل در بسکام به دلیل مسائل مربوط به نام تجاری فیلیپس به TWI تغییر نام پیدا کرده ولی در عمل همان I2C است. نکته مهم سنسور SHT20 ولتاژ تغذیه و ولتاژ پایه‌های SCL و SDA  می‌باشد که نباید از 3.3 ولت بیشتر شود. به همین دلیل میکروکنترلر ATmega8A را با ولتاژ 3.3 ولت راه اندازی می‌کنیم. چون از LCD 2×16 در این پروژه استفاده شده، ولتاژ LCD را 5 ولت می‌دهیم. دقت دمای این سنسور حدود 0.3 درجه سانتیگراد و دقت رطوبت آن در حدود 3% می‌باشد.

 

شماتیک

برای راه اندازی سنسور SHT2x از شماتیک زیر استفاده می‌کنیم. در این شماتیک از میکروکنترلر ATmega8a از خانواده AVR استفاده شده است.

شماتیک راه اندازی سنسور SHT20
شماتیک راه اندازی سنسور SHT20 , SHT21 , SHT25

 

سورس بسکام BASCOM

در این قسمت سورس راه اندازی سنسور SHT20 یا SHT21 یا SHT25 با زبان بیسیک و کامپایلر بسکام (BASCOM) آورده شده است. ما در این برنامه دو تابع به نام  Sht2x_temp برای دریافت دما و Sht2x_hygro برای دریافت رطوبت نوشته‌ایم. خروجی این توابع از نوع Single اعشاری با دقت 2 رقم اعشار می‌باشد. با دستور Config Single = Scientific , Digits = 2 می‌توان دقت ارقام اعشاری را محدود کرد تا ارقام اضافه دست و پاگیر نباشد. با توجه به این که دقت دمای این سنسور 14 بیتی است می‌تواند دما را تا صدم اعشار نشان دهد و رقم صدم به طور دقیق یک رقم یک رقم تغییر می‌کند. در بخش رطوبت نیز دقت 12 بیتی بوده و می‌توان صدم را نمایش داد اما رقم صدم چند واحد چند واحد جابجا می‌شود و بهتر است رطوبت با یک رقم اعشار نمایش داده شود.

ما این کد را با Config Submode = New نوشته‌ایم که در این حالت نیازی به Declare کردن توابع نیست اما محتوای توابع باید در ابتدای کد نوشته شود. در داخل توابع نیز از دستورات I2C برای ارتباط گیری با سنسور و صدور فرمان تبدیل و دریافت آن بهره گرفته‌ایم. توجه داشته باشید که در بین دستورات I2C نیازی به نوشتن تاخیر نبوده و خود سنسور بعد از دستور I2cwbyte  در حدود 20 میلی ثانیه خط SCL را پایین (Low) نگه می‌دارد و عملیات تبدیل را انجام داده سپس محتوا را برای میکرو می‌فرستد:

سیگنالینگ SHT20

ما در این کد از I2C نرم افزاری استفاده کرده‌ایم که روی هر پایه دلخواه میکرو قابل اجرا است، با این حال کد را به گونه‌ای ایجاد کرده‌ایم که براحتی می‌توانید با مقداردهی I2c_select = 1 از I2C سخت افزاری استفاده نمایید. در پایان مقادیر دما و رطوبت خوانده شده و بر روی LCD نمایش داده شده است.

نتیجه گیری

سنسور SHT20 یکی سنسور خوب و صنعتی برای اندازه گیری دما و رطوبت می‌باشد، ما سالهاست که از این سنسور در طراحی بردهای کنترلر دما و رطوبت خود با برند نوین کیت استفاده می‌کنیم. در این آموزش یادگرفتید که چگونه سنسور دما و رطوبت SHT20 یا SHT21 یا SHT25 را راه اندازی و در پروژه‌های خود استفاده نمایید.

بازدیدها: 4