Đồ án Thiết kế hệ thống đo nhiệt độ” này sử dụng cảm biến LM35 với mục đích nhằm nghiên cứu về các phương pháp đo nhiệt độ và thực hiện thiết kế một thiết bị đo và hiển thị nhiệt độ tự động, chính xác.
LỜI MỞ ĐẦU Nhiệt độ là tín hiệu vật lý mà ta thường xun gặp trong đời sống sinh hoạt hằng ngày cũng như trong kĩ thuật và cơng nghiêp. Việc đo đạc nhằm xác định chính xác giá trị của nhiệt độ theo các thang đo từ lâu đã trở thành một vấn đề mà cả những nhà khoa học hàng đầu thế giới cũng như những người dân thuộc nhiều lĩnh vực đều quan tâm; chính vì lẽ đó những phương xác đo đạc ngày một nhiều hơn và chính xác hơn. Hiện nay, việc sử dụng cảm biến nhiệt độ trong khối ngành cơng nghiệp và cả dân dụng ngày càng phỏ biến và mang lại hiệu quả cao Đồ án “Thiết kế hệ thống đo nhiệt độ” này nhóm em sử dụng cảm biến LM35 với mục đích nhằm nghiên cứu về các phương pháp đo nhiệt độ và thực hiện thiết kế một thiết bị đo và hiển thị nhiệt độ tự động, chính xác Đồ án gồm: Chương 1: Ngun lý hoạt động của hệ thống vi điều khiển 1.1 Xây dựng mục tiêu và sơ đồ khối của vi điều khiển Pic 1.2 Ngun lý hoạt động của hệ thống Chương 2: Tính chọn linh kiện sử dụng trong hệ thống 2.1 giới thiệu các linh kiện được sử dụng trong mạch 2.2 tính tốn inh kiện trong hệ thống Chương 3: Mô phỏng hệ thống 3.1 thiết kế mạch nguyên lý 3.2 chạy mô phỏng bằng phần mềm ứng dụng Proteus Chương 4: Chế tạo mạch thực tế 4.1 thiết kế mạch in 4.2 Lắp đặt thiết bị và hồn thiện mạch 4.2 chạy mạch và đánh giá kết quả Nhóm em xin chân thành cảm ơn thầy Lê Tiến Dũng đã dành thời gian hướng dẫn trong suốt q trình thực hiện đề tài này Vì là sinh viên nên những kết quả nghiên cứu được trong đồ án khơng tránh khỏi những sai sót, nhóm em mong nhận được sự góp ý của thầy cơ giáo để có thể hồn thiện kiến thức của mình Trang 1 CHƯƠNG I NGUN LÝ HOẠT ĐỘNG CỦA HỆ THỐNG ĐO NHIỆT ĐỘ 1.1 Mục tiêu và sơ đồ khối của hệ thống đo nhiệt độ dùng Pic 1.1.1 Một số loại cảm biến đơ nhiệt độ A Nhiệt điện trở kim loại Đối với nhiệt điện trở kim loại thì viêc chế tạo nó thích hợp hơn cả là sử dụng các kim loại ngun chất như : plantin, đồng, niken. Để tăng độ nhạy cảm nên sử dụng các kim loại có hệ số nhiệt điện trở càng lớn càng tốt. Tuy nhiên tùy thuộc vào khoảng nhiệt độ cần kiểm tra mà ta có thể sử dụng nhiệt điện trở loại này hay loại khác. Cụ thể nhiệt điện trở chế tạo từ dây dẫn bằng đồng làm việc trong khoảng nhiệt độ 500C ÷ 1500C. Nhiệt điện trở từ dây dẫn plantin làm việc trong khoảng nhiệt độ 1900C ÷ 6500C Cấu trúc của nhiệt điện trở kim loại bao gồm: dây dẫn mảnh kép đơi quấn trên khung cách điện tạo thành phần tử nhạy cảm, nó được đặt trong chiếc vỏ đặc biệt có các cực đưa ra. Giá trị của nhiệt điện trở từ 100C÷ 1000C Ưu điểm: + Việc sử dụng nhiệt điện trở kim loại để đo nhiệt độ cao rất tin cậy, đảm bảo độ chính xác đến 0.010C và sai số khơng q 0,5% đến 1% + Vật liệu chế tạo tương đối đơn giản Nhược điểm: + Kích thước của nhiệt điện trở kim loại lớn nên hạn chế việc sử dụng nó để đo nhiệt độ ở nơi hẹp Trang 2 + Do là kim loại nên sau 1 thời gian chúng sẽ dễ bị oxy hóa, gây ảnh hưởng đến độ nhạy của chúng B Nhiệt điện trở bán dẫn Nhiệt điện trở được chế tạo từ vật liệu bán dẫn, chúng được sử dụng trong hệ thống tự động kiểm tra và điều khiển. Nhiệt điện trở bán dẫn được chế tạo từ hợp kim của đồng – măng gan hoặc coban. Loại này hồn tồn trái ngược với nhiệt điện trở kim loại, khi nhiệt độ tăng thì điện trở của chúng lại giảm khoảng nhiệt độ đo của chúng thường dao động trong khoảng từ 600C ÷ 1800C Ưu điểm: + độ chính xác khá cao + kích thước nhỏ nhẹ, giúp nó làm việc ở những nơi chật hẹp Nhược điểm: + chế tạo phức tạp 1.1.2 Một số phương pháp đo nhiệt độ A Đo nhiệt độ bằng phương pháp cặp nhiệt điện Bộ cảm biến cặp nhiệt ngẫu là 1 mạch có 2 dây dẫn. chỗ nối giữa 2 dây dẫn này được hàn với nhau. Chiều của dòng điện phụ thuộc vào nhiệt độ tương ứng của mỗi hàn. Nếu để hở một đầu thì giữa 2 cực xuất hiện 1 suất điện động nhiệt. như vậy bằng cách đo sdd ta có thể tìm được nhiệt độ của đối tượng đó B Đo nhiệt độ bằng hỏa kế quang học Ngun lý làm việc của hỏa kế quang học là dựa trên các hiện tượng bức xa của các vật thể ở nhiệt độ cao, chúng dựa trên ánh sáng, bức xạ nhiệt của vật phát ra mà tính được nhiệt độ của vật C Đo nhiệt độ bằng IC Trang 3 Các IC này làm việc bằng cách tìm mỗi quan hệ giữa đại lượng nhiệt độ đầu vào và đại lượng ( điện áp, dòng điện) đầu ra. Các cảm biến này tạo ra các giá trị điện áp hay dòng điện tỷ lệ tuyến tính với nhiệt độ đầu vào,vì vậy đo tín hiệu điện đầu ra sẽ biết được nhiệt độ đầu vào. Nó có ưu điểm là vận hành đơn giản, tuy nhiên phạm vi đo nhiệt độ giới hạn từ 500C ÷ 1500C đặc tính của một số loại ic thơng dụng AD 590 + ngõ ra là dòng điện + độ nhạy 1A/10K + nguồn cung cấp 430V + phạm vi sử dụng 550C ÷ 1500C Họ LM35, LM135, LM235, LM335 + ngõ ra là điện áp + độ nhạy 10mV/0C + nguồn cung cấp 530V + phạm vi sư dụng: LM335: 100C ÷ 1250C LM235: 400C ÷ 1400C LM135: 550C ÷ 2000C LM35: 550C ÷ 1500C 1.1.3 Mục tiêu và sơ đồ khối của mạch đo nhiệt độ dùng Pic A Mục tiêu Ngày nay việc sử dụng các thiết bị điện tử phục vụ đời sống hằng ngày rất phổ biến. Trong đó ta có thế kể đến các thiết bị cảm ứng và hiển thị các thơng số mơi trường phục vụ nhiều mục đích khác nhau nhằm tạo sự tiện lợi trong sinh hoạt hằng ngày. Bắt nguồn từ mục đích đó, nhóm em đã thiết kế một mạch cảm ứng nhiệt độ và hiển thị ra LCD sử dụng vi điều khiển pic 16F877A và cảm biến nhiệt độ LM35 Trang 4 Mục tiêu của mạch giúp chúng ta biết được : Chức năng ADC của PIC ứng trong mạch Cách sử dụng LCD, giao tiếp giữa LCD và PIC Cách sử dụng cảm biến Tới việc đầy đủ các công cụ để làm mạch ( viết code, mô phỏng bằng proteus, vẽ layout, test mạch thử v…v ) Làm ra mạch thực tế B Sơ đồ khối của hệ thống đo nhiệt độ dùng Pic 16F877A Nút Bấm LED Báo Cảm biến siêu âm PIC 16F877A Rơ le Hiển thị LCD Nguồn Ni + Khối LM35: là bộ cảm biến nhiệt mạch tích hợp chính xác cao mà điện áp đầu ra của nó tỷ lệ tuyến tính với nhiệt độ theo thang độ Celsius Nhiệm vụ của khối này là nhận trực tiếp đại lượng vật lý (nhiệt độ) đặc trưng cho đối tượng cần đo biến đổi đại lương vật lý này sang đại lương vật lý khác (điện áp) để thuận tiện cho việc tính tốn Trang 5 + Khối chuyển đổi ADC: Có nhiệm vụ nhận tín hiệu điện từ khối LM35 sau đó chuyển thành tín hiệu số, để từ đó mã hóa ra LCD Khối LCD: có chức năng hiển thị nhiệt độ của đối tượng cần đo sau khi nó nhận tín hiệu từ khổi giải mã LCD + + Nút Bấm: có chức năng cho hệ thống hoạt động và dừng để xem nhiệt độ tạm thời 1.2 Ngun lý hoạt động của hệ thống đo nhiệt độ Khi cho cảm biến vào vật cần đo nhiệt độ, đầu ra của cảm biến LM35 cho ta 1 điện áp tuyến tính với nhiệt độ đầu vào, tín hiệu điện này được đươc vào trong PIC16F877A, trong PIC có bộ chuyển đổi ADC nó sẽ thực hiện viêc chuyển tín hiệu tương tự (điện áp) sang tín hiệu số, rồi từ đó qua bộ giải mã led LCD sẽ giải mã tín hiệu số thành tín hiệu điện đưa ra cho LCD hiển thị Trang 6 CHƯƠNG 2 TÍNH CHỌN LINH KIỆN TRONG HỆ THỐNG 2.1 Giới thiệu các linh kiện trong hệ thống 2.1.1 Giới thiệu Pic 16F877A A sơ đồ chân Pic 16F877A PIC là viết tắt của “Programable Intelligent Computer” có thể tạm dịch là máy tính thơng minh khả trình” do hãng Genenral Instrument đặt tên cho vi điều khiển đầu tiên họ PIC1650 được thiết kế để dùng làm các thiết bị ngoại vi cho vi điều khiển CP1600. Vi điều khiển này sau đó được nghiên cứu phát triển thêm và từ đó hình thành nên dòng vi điều khiển PIC ngày nay Pic 16F877A là dòng Pic phổ biến nhất hiện nay (đủ mạnh về tính năng, có 40 chân, bộ nhớ đủ cho hấu hết các ứng dụng thông thường) cấu trúc tổng quát của Pic16F877A: 8K plash Rom 368 byte Ram 256 byte EEPROM 5 port (A, B, C, D, E) vào ra với tín hiệu độc lập 2 bộ định thời 8 bit (timer0 và timer 2) 1 bộ định thời 16 bit (timer 1) có thể hoạt động trong chế độ tiết kiệm năng lượng (Sleep Mode) với xung clock bên ngoài 2 bộ CCP (Capture/Compare/PWM) 1 bộ biến đổi AD 10 bit với 8 ngõ vào 2 bộ so sánh tương tự (Compartor) Trang 7 1 bộ định thời giám sát (Watchdog Timer) 1 cổng song song 8 bit với các tín hiệu điều khiển 1 cổng nối tiếp 15 nguồn ngắt Nạp chương trình cổng nối tiếp ICSP (InCircuit Serial Programming) Được chế tạo bằng cơng nghệ CMOS 35 tập lệnh có độ dài 14bit Tầng số hoạt động tối đa 20MHz Để Pic hoạt động ta cần cấp nguồn cho Pic, ngồi ra có thể thêm vào bộ dao động thạch anh, và nút reset B Sơ đồ chân của pic 16F877A Trang 8 C Tổ chức bộ nhớ vi điều khiển Đây là vi điều khiển họ PIC16Fxxx với tập lệnh gồm 35 lệnh với độ dài 14bit. Mỗi lệnh đều được thực hiện trong 1 chù kỳ xung clock, tốc độ hoạt động tối đa cho phép là 20MHz vời 1 chu kỳ lệnh là 200ns. Bộ nhớ chương trình 8Kx 14 bit, bộ nhớ dữ liệu 368x8 byte RAM và bộ nhớ dữ liệu EEPROM với dung lượng 256x8 byte. Số PORT I/O là 5 vời 33 pin I/O D Các đặc tính ngoại vi của các khối chức năng Timer0: Bộ đếm 8 bit với bộ chia tầng 8 bit Trang 9 Timer1: Bộ đếm 16 bit với bộ chia tầng,có thể thực hiện chức năng đếm dựa vào xung clock ngoại vi ngay khi vi điều khiển hoạt động ở chế độ sleep Timer 2:Bộ đếm 8 bit với bộ chia tầng số,bộ postcaler Hai bộ capture,so sánh,điều chế độ rộng xung Các chuẩn giao tiếp nối tiếp SSP (Synchronous serial port),SPI và I2C Chuẩn giao tiếp nối tiếp USART với 9 bit địa chỉ Cổng giao tiếp song song PSP( Parallel Slave Port) với các chân điều khiển RD, WR, CS ở bên ngồi E Các đặc tính Analog 8 kênh chuyển đổi ADC 10 bit 2 bộ so sánh F Các cổng nhập/xuất của Pic 16F877A Cổng xuất nhập chính là phương tiện mà vi điều khiển dùng để tương tác với thế giới bên ngồi. Sự tương tác này rất đa dạng và thơng qua sự tương tác đó, chức năng của vi điều khiển được thể hiện rõ ràng Vi điều khiển PIC 16F877A có 5 cổng xuất nhập PORTA, PORTB, PORTC, PORTD và PORTE + PORT A (RPA) bao gồm 6 I/O đây là các chân 2 chiều có thể xuất và nhập, chức năng xuất nhập được điều khiển bởi thanh ghi TRISA (địa 85h). Muốn xác lập 1 chân trong thanh ghi TRISA là input ta “set” bit tương ứng ghi TRISA mún có chân output ta “clear”bit tương ứng trong thanh ghi. Thao tác này hồn tồn tương tự với PORT và các thanh ghi điều khiển tương ứng.Bên cạnh đó PORTA còn là ngõ ra của bộ ADC, bộ so sánh, ngõ vào Analog, ngõ vào xung clock Timer0 và ngõ vào của bộ giao tiếp MSSP.Các thanh ghi TRISA bao gồm: + PORTA (địa chỉ 05h): chứa giá trị các chân I/O trong PORTA + TRISA (địa chỉ 85h): điều khiển xuất nhập Trang 10 3.1.2 chương trình Trang 25 #INCLUDE P16F877A.INC CONFIG _HS_OSC & _WDT_OFF&_LVP_OFF #define LCD_D4 PORTB, 0 #define LCD_D5 PORTB, 1 #define LCD_D6 PORTB, 2 #define LCD_D7 PORTB, 3 #define LCD_RS tu tu vdk de hien thi #define LCD_E ; 4 data lines PORTD, 4 PORTD, 6 ; 0 = nhan lenh tu vdk, 1 = nhan ki ; 1 to send data ;khai bao bien cblock 0x20 vong1,vong2, thap, cao, a, hc, hangchuc, so, dv, counta,countb,count1,dem, LCD_tam, D0,D1,D2,LCDTmp, n1, n2,led,led1 endc ;chi dan bien dich org 0x00 goto main org 0x04 movwf n1 swapf status,w movwf n2 ;chuyen sang bank mot de lay so lieu thanh ghi adresl roi gan cho thanh ghi thap bsf status,5 movf adresl,w ;chuyen ve bank khong bcf status,5 movwf thap movf adresh,w Trang 26 movwf cao ;khoi tao ban dau so bang 0 clrf so ;kiem tra bit dau tien cau thanh ghi cao btfss cao,0 goto $+3 movlw d'64' movwf so ;vao chuong trinh chia bit tim nhiet do yeu cau call timdegree ;goi call chia so de ta tim duoc hang chuc(hc) va hang don vi(dv) call chiaso movf hc,w movwf hangchuc ;day la chuong trinh con chia so timdegree movlw d'4' subwf thap,f btfsc status,c goto $+2 goto $+3 incf so,f goto $5 return ;ket qua cua phep tinh uoc dua vao so chiaso clrf dv Trang 27 clrf hc movlw d'10' subwf so,f btfsc status,c goto $+2 goto $+3 incf hc,f goto $5 movlw d'10' addwf so,w movwf dv return bcf pir1,adif swapf n2,w movwf status swapf n1,w retfie ; chuong trinh chinh main ;chuyen sang bank1 bsf status,5 movlw b'00000100' movwf option_reg clrf trisd clrf trisb bsf pie1,adie Trang 28 ;cai dat thanh ghi adcon1 movlw b'10000001' movwf adcon1 bcf status,5 bsf intcon,gie bsf intcon,peie bcf pir1,adif clrf portd ;da chuyen sang bank0 ;cai dat adcon0 movlw b'10000001' movwf adcon0 ;bat dau ghi du lieu batdau call lcdinit ; khoi tao lcd start bsf adcon0,2 ; hien thi lcd hienthi movlw call 0x01 LCDADD_line1 movlw call 'D' LCDSEND Trang 29 movlw 'O' call LCDSEND movlw ' ' call LCDSEND movlw 'A' call LCDSEND movlw 'N' call LCDSEND movlw ' ' call LCDSEND movlw 'V' call LCDSEND movlw 'D' call LCDSEND movlw 'K' call LCDSEND movlw 0x02 call LCDADD_line2 ; nhay den dia chia 0x05 movlw 'n' call LCDSEND movlw 'h' call LCDSEND movlw 'i' call LCDSEND movlw 'e' call LCDSEND Trang 30 movlw 't' call LCDSEND movlw ' ' call LCDSEND movlw 'd' call LCDSEND movlw 'o' call LCDSEND movlw ':' call LCDSEND movlw ' ' call LCDSEND movf hangchuc,w addlw d'48' call LCDSEND ; viet ki tu "a" movf dv,w addlw d'48' call LCDSEND movlw d'223' call LCDSEND movlw 'C' call LCDSEND GOTO start ; khoi tao chuc nang lcd lcdinit Trang 31 bsf STATUS, 5 bcf LCD_RS bcf LCD_E bcf LCD_D4 bcf LCD_D5 bcf LCD_D6 bcf LCD_D7 bcf STATUS, RP0 call delay_1ms bcf LCD_RS bcf LCD_E bsf LCD_D4 bsf LCD_D5 bcf LCD_D6 bcf LCD_D7 call PULSE call delay_1ms call PULSE call DELAY_40us call DELAY_40us call PULSE ;Bank 1 ;Bank 0 ; Set command mode ; gui lenh de chon che do 4 bit dau tien bcf LCD_D4 Trang 32 call PULSE ; Function set ; Format: xxxDNFxx D: 1= 8bit, 0= 4bit (use 4bit!) movlw ; N: 1= 2 lines, 0= 1 line call b'00101000' LCDSEND ; F: 1= 5x10 font, 0= 5x8 font ; Display control ; Format: xxxxxDCB D: Display on(1)/0ff(0) movlw ; C: Cursor on(1)/0ff(0) call b'00001100' LCDSEND ; B: Blink on(1)/0ff(0) ; Entry mode set ; Format: xxxxxxIS counter movlw call b'00000110' I: 1= Increment counter, 0= Decrement ; S: 1= "Accompanies display shift" LCDSEND ; Cursor or display shift ; Format: xxxxSRxx S: 1= Display shift, 0= Cursor move movlw ; R: 1= Shift right, 0= Shift left call b'00010000' LCDSEND movlw b'00000001' call LCDSEND bsf LCD_RS ; Clear screen ; Set data mode RETURN Trang 33 ;************************************************************* ; Moves "cursor" ;************************************************************* LCDADD_line1 bcf LCD_RS iorlw 0x80 ; Command mode ; Goto DDRAM adress call LCDSEND bsf LCD_RS call delay_1ms ; Data mode ; Takes a couple of ms RETURN LCDADD_line2 bcf LCD_RS iorlw 0xC0 ; Command mode ; Goto DDRAM adress call LCDSEND bsf LCD_RS call delay_1ms ; Data mode ; Takes a couple of ms RETURN ;************************************************************* ; Sends contens of W to display ;************************************************************* LCDSEND ; Sends character in W to lcd. Does not alter RS line! movwf LCDTmp bcf LCD_D4 bcf LCD_D5 bcf LCD_D6 Trang 34 bcf LCD_D7 btfsc LCDTmp, 7 bsf LCD_D7 btfsc LCDTmp, 6 bsf LCD_D6 btfsc LCDTmp, 5 bsf LCD_D5 btfsc LCDTmp, 4 bsf LCD_D4 call PULSE bcf LCD_D4 bcf LCD_D5 bcf LCD_D6 bcf LCD_D7 btfsc LCDTmp, 3 bsf LCD_D7 btfsc LCDTmp, 2 bsf LCD_D6 btfsc LCDTmp, 1 bsf LCD_D5 btfsc LCDTmp, 0 bsf call LCD_D4 PULSE Trang 35 return ;************************************************************* ; Pulse enable line ;************************************************************* PULSE ; Pulse Enable bsf LCD_E nop ; Increase the delay here if you get nop ; problems with high clock speed nop ; Probably not needed since nop ; 1 instruction @10MHz = 400ns bcf LCD_E call delay_1ms call delay_1ms return ;************************************************************* ; Clears display ;************************************************************* LCDCLR ; clears the entire display bcf LCD_RS movlw b'00000001' call LCDSEND bsf LCD_RS ; Set command mode ; Clear screen ; Set data mode Trang 36 return ;************************************************************* ; 1ms delay ; Modify this to match your processor speed ; http://www.piclist.org/techref/piclist/codegen/delay.htm ;************************************************************* delay_1ms movlw d'100' movwf tmr0 bcf intcon,tmr0if btfss intcon,tmr0if goto $1 return ;************************************************************* ; 40us delay ; Modify this to match your processor speed ; http://www.piclist.org/techref/piclist/codegen/delay.htm ;************************************************************* DELAY_40us ;Thoi gian 1 CK lenh=0,2us movlw d'250' movwf tmr0 bcf intcon,tmr0if btfss intcon,tmr0if goto $1 RETURN Trang 37 End 3.2 chạy mô phỏng bằng phần mềm proteus Trang 38 Chương 4 Trang 39 ... NGUN LÝ HOẠT ĐỘNG CỦA HỆ THỐNG ĐO NHIỆT ĐỘ 1.1 Mục tiêu và sơ đồ khối của hệ thống đo nhiệt độ dùng Pic 1.1.1 Một số loại cảm biến đơ nhiệt độ A Nhiệt điện trở kim loại Đối với nhiệt điện trở kim loại thì viêc chế tạo nó thích hợp hơn cả là ... nhiệt độ của đối tượng cần đo sau khi nó nhận tín hiệu từ khổi giải mã LCD + + Nút Bấm: có chức năng cho hệ thống hoạt động và dừng để xem nhiệt độ tạm thời 1.2 Ngun lý hoạt động của hệ thống đo nhiệt độ ... xuất hiện 1 suất điện động nhiệt. như vậy bằng cách đo sdd ta có thể tìm được nhiệt độ của đối tượng đó B Đo nhiệt độ bằng hỏa kế quang học Nguyên lý làm việc của hỏa kế quang học là dựa trên các hiện tượng