امروز می خواهیم در مورد سنسور دیجیتال اندازه گیری دما DS18B20 صحبت کنیم و از خصوصیات و ویژگی ها و راه اندازی آن در CodeVisionAVR V2.05.0 بپردازیم. از ویژگی های این سنسور این است که کاملا دیجیتال و به شکل یک ترانزیستور 3 پایه می باشد که پایه 1 آن به زمین و پایه 3 آن هم به VCC وصل می شود و از پایه 2 آن که با یک مقاومت pullup به اندازه 4.7 کیلو به VCC وصل می شود. آین سنسور از طریق همین یک پایه با استفاده ار پروتکل 1wire عمل ارسال و دریافت دیتا را انجام می دهد. محدوده اندازه گیری دمای آن بین منفی -55 تا مثبت +125 درجه سانتیگراد می باشد و از دقت بسیار بالایی در حدود 0.0625 درجه را دارد که نسبت به کوچکترین تغییرات دمای واکنش سریع نشان خواهد داد. در ادامه به نحوی برنامه نویسی آن به زبان سی خواهیم پرداخت.
1: #include <mega16.h> 2: #include <delay.h> 3: #include <lcd.h> 4: #include <1wire.h> 5: #include <ds18b20.h> 6: #include <stdio.h> 7: #define xtal 8000000 8: #asm 9: .equ __w1_port=0x18 ;PORTB 10: .equ __w1_bit=1 11: #endasm 12: #asm 13: .equ __lcd_port=0x15 ;PORTC 14: #endasm 15: char buffer[32]; 16: void main(void){ 17: unsigned char devices; 18: float temp; 19: lcd_init(16); 20: devices=w1_init(); 21: while(devices>0){ 22: temp=ds18b20_temperature(0); 23: sprintf(buffer,"T=%5.3fxdfC",temp); 24: lcd_clear(); 25: lcd_puts(buffer); 26: delay_ms(300); 27: } 28: }

حداقل اشتراک | محتویات | زمان ایجاد | حجم فایل | تعداد دانلودها |
رایگان ![]() |
برنامه+شماتیک | سه شنبه, 25 تیر 1392 14:46 | 30.19 KB | 0 |
تنها کاربران عضو یا دارای مجوز میتوانند دانلود نمایند |