توضیحات
سنسور دما و رطوبت دیجیتال SHTC3:
SHTC3 یک سنسور دما و رطوبت دیجیتال است که مخصوص کاربردهای الکترونیکی با مصرف پایین طراحی شده است. فناوری CMOSens® Sensirion یک حسگر کامل دما و رطوبت را در یک تراشه ارائه می دهد که شامل یک سنسور رطوبت خازنی ، یک سنسور دما ، مبدل سیگنال آنالوگ به دیجیتال ، حافظه ذخیره سازی داده های کالیبراسیون و یک رابط ارتباطی دیجیتال دو سیمه I2C که از حالت ارتباط سریع نیز پشتیبانی می کند. برای جزئیات بیشتر ، به دیتاشیت محصول مراجعه کنید.
مشخصات فنی:
ولتاژ تغذیه | ۳٫۳-۱٫۶۵ |
نوع ارتباط | I2C (SCL ، SDA) |
محدوده اندازه گیری رطوبت | ۰ تا ۱۰۰٪ RH |
دقت اندازه گیری رطوبت | ± ۲% |
محدوده اندازه گیری دما | -۴۰ تا ۱۲۵ درجه سانتی گراد |
دقت اندازه گیری دما | ±۰٫۲ درجه سانتی گراد |
توضیحات کتابخانه:
تابع
1 |
INIT_SHTC3(); |
قبل از استفاده از تابع ابتدا سنسور را بادستور INIT_SHTC3(); کانفیگ کنید
تابع
1 |
void READ_TEMP_HUMIDITY(unsigned char __decimal_,unsigned char __value_M__); |
برای خواندن مقدار دما و رطوبت از این تابع استفاده کنید
تابع دو پارامتر می گیرد پارامتر اول مربوط به تعداد رقم اعشار مقدار دما و رطوبت خوانده شده از سنسور می باشد
پارامتر دوم زمانی اهمیت پیدا می کند که برای تغذیه سنسور از باتری استفاده می شود در صورت استفاده از باتری برای حفظ توان باتری نیاز است ک سنسور را در مد توان پایین بخوانید بنابراین برای این پارامتر دو مقدار زیر مجاز هستند:
NORMAL_POWER_MEASURE
و
LOW_POWER_MEASURE
در صورتی که از باتری استفاده می کنید پارامتر دوم را برابر با LOW_POWER_MEASURE قرار دهید در غیر این صورت برای این پارامتر از مقدار NORMAL_POWER_MEASURE استفاده کنید.
بعد از صدا زدن دو تابع متغیر های زیر در دسترس خواهند بود:
متغیر humidity_str متغیری از نوع رشته بوده که مقدار رطوبت را ذخیره می کند که می توانید آن را مستقیما بر روی LCD نمایش دهید
متغیر temp_str متغیری از نوع رشته بوده که مقدار دما را ذخیره می کند که می توانید آن را مستقیما بر روی LCD نمایش دهید
تابع
1 |
void GET_ID_SHTC3(); |
هر سنسور برای شناسایی ، مقدار ID مخصوص خود را دارد برای خواندن مقدار ID سنسور می توانید از این تابع استفاده کنید
بعد از صدا زدن این تابع دو متغیر سراسری مقدار دهی می شوند که:
مقدار ID در متغیر سراسری ۱۶ بیتی با نام ID_SHTC3 ذخیره می گردد
اگر عملیات خواندن موفقیت آمیز باشد و مشکلی در دریافت اطلاعات وجود نداشته باشد و اطلاعات خوانده شده از سنسور با checksum مطابقت داشته باشد مقدار متغیر دوم با نام ERR_ID برابر با صفر خواهد بود
بنابراین بعد از صدا زدن تابع قبل از استفاده از متغیر ID_SHTC3 ابتدا باید متغیر ERR_ID را بررسی کنید سپس در صورت صفر بودن مقدار این متغیر می توانید از متغیر ID_SHTC3 در برنامه استفاده کنید
تنظیمات فیوز بیت:
فرکانس کاری را بر روی هشت مگ داخلی قرار دهید.
brown-out detection را بر روی ۲٫۷ ولت قرار دهید.
watchdog alwase on را غیر فعال کنید.
کد نمونه مثال:
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 |
#include <mega8.h> #include <i2c.h> #include <alcd.h> #include <delay.h> #include <stdlib.h> #include <..\library\SHTC3.C> void main(void) { // Declare your local variables here char str[10]; DDRB=0xFF; PORTB=0x00; DDRC=0xFF; PORTC=0x00; DDRD=0xFF; PORTD=0x00; ///////////////// i2c_init(); ///////////////// // Alphanumeric LCD initialization // Connections are specified in the // Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu: // RS - PORTB Bit 0 // RD - PORTB Bit 1 // EN - PORTB Bit 2 // D4 - PORTB Bit 4 // D5 - PORTB Bit 5 // D6 - PORTB Bit 6 // D7 - PORTB Bit 7 // Characters/line: 16 /////////////////////////////// lcd_init(16); lcd_gotoxy(1,0); lcd_putsf("MCULIBRARY.IR"); delay_ms(2000); lcd_clear(); i2c_init(); ///////////////////////// // INIT_SHTC3(); // //////////////////////// while (1) { /////////// READ_TEMP_HUMIDITY(decimal_1,NORMAL_POWER_MEASURE); ////////// lcd_gotoxy(0,0); lcd_putsf("H:"); lcd_puts(humidity_str); lcd_putsf("%,Err:"); itoa(ERR_H,str); lcd_puts(str); lcd_putsf(" "); // lcd_gotoxy(0,1); lcd_putsf("T:"); lcd_puts(temp_str); lcd_putsf("C,Err:"); itoa(ERR_T,str); lcd_puts(str); lcd_putsf(" "); ////////////////////// //show id... ///////////////////// /*delay_ms(1000); GET_ID_SHTC3(); lcd_gotoxy(0,1); lcd_putsf("ID:"); itoa(ID_SHTC3,str); lcd_puts(str); lcd_putsf(",IDerr:"); itoa(ERR_ID,str); lcd_puts(str); lcd_putsf(" "); delay_ms(500);*/ //////////////////// // delay_ms(500); // } } |
شماتیک:
اعمال ولتاژ بیشتر از ۳٫۳ ولت به میکروکنترلر و سنسور بدون استفاده از مبدل های سطح باعث آسیب دیدن سنسور خواهد شد لذا اگر از مبدل سطح یا لاجیک کانورتر استفاده نمی کنید حتما تغذیه را مطابق با شکل زیر ببندید.
نقد و بررسیها
هیچ دیدگاهی برای این محصول نوشته نشده است.