توضیحات
سنسور دما و رطوبت دیجیتال SHTC3:
SHTC3 یک سنسور دما و رطوبت دیجیتال است که مخصوص کاربردهای الکترونیکی با مصرف پایین طراحی شده است. فناوری CMOSens® Sensirion یک حسگر کامل دما و رطوبت را در یک تراشه ارائه می دهد که شامل یک سنسور رطوبت خازنی ، یک سنسور دما ، مبدل سیگنال آنالوگ به دیجیتال ، حافظه ذخیره سازی داده های کالیبراسیون و یک رابط ارتباطی دیجیتال دو سیمه I2C که از حالت ارتباط سریع نیز پشتیبانی می کند. برای جزئیات بیشتر ، به دیتاشیت محصول مراجعه کنید.
مشخصات فنی:
ولتاژ تغذیه | ۳٫۳-۱٫۶۵ |
نوع ارتباط | I2C (SCL ، SDA) |
محدوده اندازه گیری رطوبت | ۰ تا ۱۰۰٪ RH |
دقت اندازه گیری رطوبت | ± ۲% |
محدوده اندازه گیری دما | -۴۰ تا ۱۲۵ درجه سانتی گراد |
دقت اندازه گیری دما | ±۰٫۲ درجه سانتی گراد |
توضیحات کتابخانه:
تابع
1 |
INIT_SHTC3(); |
قبل از استفاده از تابع ابتدا سنسور را بادستور INIT_SHTC3(); کانفیگ کنید
تابع
1 |
void READ_TEMP_HUMIDITY(unsigned int8 __decimal_,unsigned int8 __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 در برنامه استفاده کنید
تنظیم پایه های I2C:
کتابخانه SHTC3.C را باز کنید و از خط یازدهم پایه های I2C را می توانید تغییر دهید:
#use I2C(master, sda=PIN_C0, scl=PIN_C1)
تنظیمات فیوز بیت:
فیوز بیت Osilator را بر روی HS قرار داده و فیوز بیت Brown-out Reset را بر روی Disabled قرار دهید
کد نمونه مثال:
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 |
/******************************************************* Project : SHTC3 SENSORS WITH PIC16F876... Date : 7/9/2021 Author : REZA Company : WWW.MCULIBRARY.IR Chip type : PIC16F876 PIC Core Clock frequency : 8 MHz COMPILER : CCS-v5.049 *******************************************************/ #include <main.h> #define LCD_ENABLE_PIN PIN_B2 #define LCD_RS_PIN PIN_B0 #define LCD_RW_PIN PIN_B1 #define LCD_DATA4 PIN_B4 #define LCD_DATA5 PIN_B5 #define LCD_DATA6 PIN_B6 #define LCD_DATA7 PIN_B7 #include <lcd.c> #include <library\SHTC3.C> //////////////////////////////www.mculibrary.ir//////////////////////////////// //void lcd_clear... //////////////////////////////www.mculibrary.ir//////////////////////////////// void lcd_clear(){lcd_putc("\f");} //////////////////////////////www.mculibrary.ir//////////////////////////////// //void lcd_clear... //////////////////////////////www.mculibrary.ir//////////////////////////////// void lcd_puts(char *str){ int8 i=0; while(*(str+i)!=0){ lcd_putc(*(str+i)); i++; } } //////////////////////////////www.mculibrary.ir//////////////////////////////// void main() { char str[10]; SET_TRIS_B(0x00); SET_TRIS_C(0x00); SET_TRIS_A(0x00); ///////////////// ///////////////// // 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(); lcd_gotoxy(2,1); lcd_putc("MCULIBRARY.IR"); delay_ms(2000); lcd_clear(); ///////////////////////// // INIT_SHTC3(); // //////////////////////// while (true) { /////////// READ_TEMP_HUMIDITY(decimal_2,NORMAL_POWER_MEASURE); ////////// lcd_gotoxy(1,1); lcd_putc("H:"); lcd_puts(humidity_str); lcd_putC("%,Err:"); convert_to_str((float)ERR_H,&str,0); lcd_puts(str); lcd_putc(" "); // lcd_gotoxy(1,2); lcd_putc("T:"); lcd_puts(temp_str); lcd_putc("C,Err:"); convert_to_str((float)ERR_T,&str,0); lcd_puts(str); lcd_putc(" "); ////////////////////// //show id... ///////////////////// /*delay_ms(1000); lcd_gotoxy(1,2); lcd_putc(" "); GET_ID_SHTC3(); lcd_gotoxy(1,2); lcd_putc("ID:"); convert_to_str((float)ID_SHTC3,&str, 0); lcd_puts(str); lcd_putc(",IDerr:"); convert_to_str((float)ERR_ID,&str, 0); lcd_puts(str); lcd_putc(" "); delay_ms(500);*/ //////////////////// // delay_ms(500); // } } |
توجه:
شماتیک:
اعمال ولتاژ بیشتر از ۳٫۳ ولت به میکروکنترلر و سنسور بدون استفاده از مبدل های سطح باعث آسیب دیدن سنسور خواهد شد لذا اگر از مبدل سطح یا لاجیک کانورتر استفاده نمی کنید حتما تغذیه را مطابق با شکل زیر ببندید.
نقد و بررسیها
هیچ دیدگاهی برای این محصول نوشته نشده است.