PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   PIC - Thiết kế và Ứng dụng (http://www.picvietnam.com/forum/forumdisplay.php?f=23)
-   -   Đo nhiệt độ với MCP9700 (http://www.picvietnam.com/forum/showthread.php?t=144)

falleaf 22-09-2005 09:12 AM

Đo nhiệt độ với MCP9700
 
MCP9700 là một cảm biến nhiệt độ rẻ tiền, tiêu thụ ít năng lượng, nó biến đổi nhiệt độ sang điện áp analog. MCP9700 có thể đo chính xác trong miền từ -40C đến +125C. Ngõ ra của MCP9700 là một đường tuyến tính với 10mV/C với khoảng offset 500mV. Khoảng offset này cho phép đọc được nhiệt độ âm mà không cần cung cấp điện áp âm ngõ vào.

Không giống như các cảm biến điện trở nhiệt, điện áp ra của MCP9700 được nối trực tiếp vào chân ADC của PIC, và với ADC 8bit thông dụng của PIC, độ phân giải sẽ là 1C/bit, trong đó điện áp tham chiếu là 2.5V và 5V.

Thêm vào đó, việc thiết kế PCB sẽ rất đơn giản, bởi vì đường nối đơn giản, tụ tải không cần thiết lắm để ổn định hoạt động của cảm biến.

Sơ đồ nối chân của cảm biến như sau:

http://i3.photobucket.com/albums/y64...fd/MCP9700.gif

Những đặc tính của MCP9700:

Kích thước cảm biến nhỏ
Dải đo: -40C - +125C
Độ chính xác: 4C trong dải đo từ 0C -70C
MCP9700: 10mV/C
MCP9701: 19.5mV/C
MCP9700 hoạt động trong dải 2.3V đến 5.5V
MCP9701 hoạt động trong dải 3.1V đến 5.5V

Dòng thấp, khoảng 6uA
Không cần thêm bất kỳ thiết bị nào.

Một số thông tin như vậy cho các bạn làm về các đầu đo nhiệt độ. Chúc các bạn làm tốt các ứng dụng của mình.

Chúc vui.

falleaf 22-09-2005 12:20 PM

Đoạn code vắn tắt đọc ADC
 
Để thuận tiện, tôi post một đoạn code ngắn, đơn giản để phục vụ cho việc đọc ADC từ cảm biến đo nhiệt độ như sau:

Code:

...
REGAD1                RES                1; đặt biến
...
;----------------------
;Khoi tao cac ngo vao
;----------------------

ADC                        MOVWF        ADCON1                                                        ; chon Vref = VDD
                        BCF                STATUS,                RP0                                        ; chon bank 0
...

AD1_0                MOVLW        B'11000001'
                        CALL        ADSTART
                        MOVWF        REGAD1                                                        ; doc AD1
...

;-------------------------------
; Chuong trinh con de do ADC
;-------------------------------

ADSTART                MOVWF        ADCON0
                        MOVLW        D'5'
                        MOVWF        DLY
                                       
DELAY12                DECFSZ        DLY,                F                                        ; 3 x (DLY12-1) x 1 us + 1us + 2us
                        GOTO        DELAY12                                                        ; 3 x (5-1) x 1 + 1 + 2 = 15us
                        CLRF        ADRES
                        BSF                ADCON0,                2
GODONE                BTFSC        ADCON0,                2
                        GOTO        GODONE                                                        ; Cho den khi convert xong
                        MOVF        ADRES,                W                                        ; adcon0,2 = 0

                        RETURN

Thí dụ này khá sơ lược, nhưng các bạn có thể tham khảo để đọc ADC một cách khá chuẩn xác.

Chúc vui.

falleaf 22-09-2005 12:23 PM

Lưu ý các bạn rằng, vì tôi không có nhiều thời gian, nên tôi copy và paste những chương trình mà tôi đã viết và đã chạy từ lâu, cho nên đôi khi có những đoạn không chính xác mà tôi không thể nào kiểm tra được, các bạn dựa vào cái sườn này làm thử, nếu có sai sót gì, mong các bạn sửa chữa lại và thông báo cho những người đọc khác biết.

Ngoài ra, các bạn có thể đăng bài đã hoàn chỉnh của các bạn lên diễn đàn để chuẩn hóa các thư viện chung.

Chúc vui, và chân thành cảm ơn.


Múi giờ GMT. Hiện tại là 10:46 PM.

Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam