đồ án thiết kế mạch đo nhiệt độ độ ẩm dùng cảm biến đht 11 và pic 16f77a là một trong những đồ án của môn học các hệ thống đo cơ điện tử đây là một môn quan trọng của bộ môn cơ điện tử. ứng dụng mạch điện tử sử dụng các vi điều khiển để đo và giám sát các đại lượng vật lý như nhiệt độ, độ ẩm, lực tốc độ.... trên đây là đồ án thiết kế mạch đo nhiệt độ độ ẩm sử dụng pic 16f877a hiển thị trên lcd cho các bạn thâm khảo. hi vọng sẽ giúp ích được cho các bạn
Trang 1LỜI CAM ĐOAN
Chúng em xin cam đoan rằng đồ án này hoàn toàn do chúng em tự tìm hiểu,
tự làm theo sự hướng dẫn nhiệt tình của thầy giáo NGÔ VĂN AN Các nội dung,
kết quả trong đồ án này là trung thực và hoàn toàn chưa được công bố dưới bất kì hình thức nào
Trong đồ án có sử dụng kiến thức, các nhận xét, đánh giá cũng như các thông số của các tác giả, cơ quan tổ chức mà chúng em tham khảo từ nhiều nguồn khác nhau, được ghi rõ trong phần tài liệu tham khảo
Trường Đại học Kỹ thuật Công nghiệp Thái Nguyên không liên quan đến những vi phạm bản quyền, quyền tác giả do chúng em gây ra trong quá trình thực hiện đồ án (nếu có)
Trang 2LỜI NÓI ĐẦU
- Trong cuộc sống hiện nay có rất nhiều yếu tố ảnh hưởng đến quá trình sản xuất và con người.Trong đó nhiệt độ và độ ẩm cũng là yếu tố được đề cập tới rất nhiều, vì thế mạch đo nhiệt độ và độ ẩm ra đời là sự tất yếu Với sự phát triển của công nghệ hiện nay việc sản xuất mạch đo nhiệt độ và độ ẩm đơn giản mà độ chính xác cao là điều khá đơn giản Việc áp dụng trong thực tế càng phổ biến hơn khi nhiệt độ độ ẩm đóng vai trò lớn ảnh hưởng đến con người, hàng hoá, máy móc, độ bền … Vì vậy nhiệt độ được sử dụng hầu hết các nhà máy sản xuất, kho chứa hàng hoá, bảo quản máy móc cũng như điều kiện vận hành Trong y tế nó được sử dụng rộng rãi trong các phòng cách ly, phòng điều trị cho bệnh nhân cũng như áp dụng hầu hết trong các dây chuyềncũng như các công nghệ sản xuất tuỳ theo nhu cầu mà chúng ta có thể tuỳ biến thêm ngoài chức năng của đề tài này để phù hợp với đúng nhu cầu trong quá trình hoạt động ngoài chức năng chính là hiển thị nhiệt độ độ ẩm của các khu vực cần khảo sát nhiệt độ và độ ẩm Với đề tài này 1 bộ mạch “Đo nhiệt
độ và độ ẩm” ta có thể đo cùng lúc nhiệt độ và độ ẩm có thể phát triển hiệu quả hơn, nhưng đề tài chỉ trong phạm vi là Đồ án 1 nên tính hiệu quả thực tế cũng như tính chính xác của mạch không
Trang 3CHƯƠNG 1 : Tổng quan về hệ thống Thiết kế đồng hồ điện tử sử dụng PIC16F877a hiển thị trên LCD có báo nhiệt
độ và độ ẩm môi trường
1.1 vai trò và tầm quan trọng của hệ thống đo nhiệt độ và độ ẩm.
- Nhiệt độ và độ ẩm là tín hiệu vật lý mà ta thường xuyên 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 độ và độ ẩm 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 độ,
độ ẩm 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
- 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à độ ẩm hiển thị ra LED 7 thanh sử dụng vi điều khiển pic 16F877A và cảm biến DHT11
1.1.1 Nhiệt độ.
a Định nghĩa nhiệt độ
- Nhiệt độ là tính chất vật lý của vật chất hiểu nôm na là thang đo độ "nóng" và
"lạnh" Vật chất có nhiệt độ cao hơn thì nóng hơn
- Định nghĩa chính xác của nhiệt độ trong nhiệt động lực học dựa vào các định luật nhiệt động lực học, miêu tả bên dưới đây
Nhiệt độ được đo bằng nhiệt kế Nhiệt độ được đo bằng các đơn vị khác nhau và cóthể biến đổi bằng các công thức Trong hệ đo lường quốc tế, nhiệt độ được đo bằng
Trang 4đơn vị Kelvin, ký hiệu là K Trong đời sống ở Việt Nam và nhiều nước, nó được
đo bằng độ C (1 độ C trùng 274,15 K)(Chú thích: 1 độ C bằng 1 K,, hai thang đo này cùng mức chia, chỉ có vạch xuất phát cách nhau 273.15 Trong đời sống
ở nước Anh, Mỹ và một số nước, nó được đo bằng độ F (1 độ F trùng 255,927778 K)(xin chú thích: ⁰F = (1,8 x ⁰C) + 32, hay 1 độ C bằng 1.8 độ F,
nhưng mức xuất phát thang đo khác nhau, tính ra nhiệt độ cơ thể người khoảng hơn
98 ⁰F)
b Các thang đo nhiệt độ
- Để đo nhiệt độ của một vật thể trong vật lý phải xây dựng một thang đo chuẩn chung gọi là các thang nhiệt giai Các thang nhiệt giai hay dùng :
+ thang nhiệt giai celsius
+ thang nhiệt giai fahrelheit
+ thang nhiệt giai kelvin
1.1.2 Độ ẩm
Độ ẩm là đại lượng vật lí xác định khối lượng hơi nước tính ra gam có trong một đơn vị thể tích xác định
1.1.3 Phuơng pháp đo nhiệt độ và độ ẩm trong hệ thống
- Có rất nhiều cách đo nhiệt độ và độ ẩm, trong phạm vi ta tìm hiểu thì em xin giới thiệu phương pháp đo nhiệt độ và độ ẩm thông qua cảm biến DHT11
Trang 5- Bộ mạch được điều khiển bởi vi điều khiển PIC16F628A đóng vai trò
điều khiển và nhập xuất dữ liệu từ các thiết bị giao tiếp với nó, điển hình nhưcảm biến nhiệt độ và độ ẩm DHT11 được giao tiếp với vi điều khiển pic16f628a
và xuất nhập dữ liệu đọc nhiệt độ và độ ẩm từ cảm biến sau đó giao tiếp với thiết
bị LCD mã hoá dữ liệu để hiện thị kết quả ra màn hình với dữ liệu của cảm biến
có dãi nhiệt độ từ 0- 50oC và độ ẩm từ 20%- 95%.
Phần cứng sau khi thi công hoàn thành thì vi điều khiển được nạp
chương trình qua các lệnh được thiết kế bằng ngôn ngữ C như những
tập lệnh điều khiển vi điều khiển để mạch hoạt động một cách trơn tru
Trang 6Chương 2 : Cấu trúc của hệ thống
2.1 Sơ đồ cấu trúc hệ thống đo nhiệt độ độ ẩm
Hình 2.1.1 sơ đồ cấu trúc hệ thống đo nhiệt độ, độ ẩm sử dụng Pic 16F877A.
- Muốn cảm biến gửi tín hiệu đầu tiên Vi điều khiển PIC sẽ gửi tín hiệu
muốn đo đến cảm biến DHT11 sau khi xác nhận được
Khối cảm biến sẽ nhận nhiệt độ và độ ẩm từ môi trường bên ngoài để gửi
tín hiệu dạng sóng 5byte dữ liệu và nhiệt độ đo được đến vi điều khiển PIC.Sau đó Vi điều khiển PIC sẽ đọc dữ liệu và gửi trực tiếp đến bộ màn hình
LCD, qua bộ giải mã được tích hợp trong LCD thì nhiệt độ và độ ẩm được hiểnthị trên màn hình
Nguồn được dùng để cung cấp áp cho hoạt động của Vi điều khiển, Cảm
biến, Màn hình LCD hoạt động ổn định
2.2 Giới thiệu các khối trong hệ thống và chức năng của các khối.
Trang 7+ PIC 16F877A
+ Cảm biến DHT11
+ Màn hình LCD
+ Nguồn
2.2.1 Giới thiệu Pic 16F877A
A Giới thiệu về Pic 16A877A
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 của họ là 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)
- 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
- Tầng số hoạt động tối đa 20MHz
- Để Pic hoạt động ta cần cấp nguồn cho Pic, ngoài ra có thể thêm vào bộ dao động thạch anh, và nút reset
Trang 8B Sơ đồ chân pic 16F877A.
Hình 1.2.1
Trang 9Hình 1.2.2
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
- 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 ngoài
Trang 10E 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 ngoà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 chỉ 85h) Muốn xác lập 1 chân trong thanh ghi TRISA là input ta “set” bit tương ứng trong thanh ghi TRISA và mún có 1 chân output ta “clear”bit tương ứng trong thanh ghi Thao tác này hoàn toà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ộ sosá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
+ CMCON (địa chỉ 9Ch): thanh ghi điều khiển bộ so sánh
+ CVRCON (địa chỉ 9Dh): thanh ghi điều khiển bộ so sánh điện áp
+ ADCON1 (địa chỉ 9Fh): thanh ghi điều khiển ADC
+ PORTB (RPB) bao gồm 8 chân I/O, thanh ghi điều khiển xuất nhập tương
ứng là TRISB Bên cạnh đó có 1 số chân của PORTB dùng để nạp chương trình cho vi điều khiển với các chế độ nạp khác nhau PORTB còn liên quan đến ngắt ngoại vi và Timer0 PORTB còn được tích hợp chức năng điện trở kéo lên được điều khiển bởi chương trình.Các thanh ghi PORTB bao gồm:+ PORTB (địa chỉ 06h,106h): chứa giá trị các chân trong PORTB
+ TRISB (địa chỉ 86h,186h): điểu khiển xuất nhập
+ OPTION_REG (địa chỉ 81h,181h): điểu khiển ngắt ngoại vi toàn bộ Timer0
+ PORTC (RPC) gồm 8 chân I/O,thanh ghi điều khiển xuất nhập tương ứng là
TRISC, bên cạnh đó PORTC còn chứa các chân chức năng của bộ so sánh,
Timer1, bộ PWM, và các chuẩn giao tiếp nối tiếp I2C, SPI, SSP, USART
Các thanh ghi điều khiển:
+ PORTC (địa chỉ 07h):chứa giá trị các chân trong PORTC
+ TRISC (địa chỉ 87h):điều khiển xuất nhập
Trang 11+ PORTD (RPD) gồm 8 chân I/O,thanh ghi điều khiển xuất nhập tương ứng
là TRISD, PORTD còn là cổng xuất dữ liệu của chuận giao tiếp PSP Các thanh ghi:
+ Thanh ghi PORTD (địa chỉ 08h): chứa giá trị các chân trong PORTD
+ TRISD (địa chỉ 88h) điều khiển xuất nhập
+ PORTE (RPE) gồm 3 chân I/0,thanh ghi điều khiển xuất nhập tương ứng là
TRISE Các chân PORTE có ngõ vào analog, bên cạnh đó PORTE còn là các chân điều khiển của chuẩn giao tiếp PSP
Các thanh ghi:
+ PORT (địa chi 09h) chứa giá trị các chân trong PORTE
+ TRISE (địa chỉ 89h) điều khiển xuất nhập và xác lập các thông số cho chuẩn PSP
+ ADCON1 thanh ghi điều khiển khối ADC
+ Timer1 là bộ định thời 16 bit, giá trị của 2 timer 1 sẽ lưu vào 2 thanh ghi
(TMR1h và TML1R), cờ ngắt timer 1 là bit TMR 1IF, bit điều khiển của
Timer1 là TMR1IE Tương tự như Timer0,Timer1 cũng có 2 chế độ hoạt
động: chế độ định thời (timer) với xung kích là xung clock của
oscillator( tầng số bằng ¼ tầng số của oscillator) và chế độ đếm (counter)
với xung kích là xung phản ánh các sự kiện cần đếm lấy từ bên ngoài Các
thanh ghi liên quan đến timer1 bao gồm:
+ INTCON(0BH, 8BH, 10BH, 18Bh) cho phép ngắt hoạt động( GIE và PEIE)+ IR1( địa chỉ 0CH) chứa cờ ngắt timer1(TMR1IF)
+ PIE1( địa chỉ 8CH) cho phép ngắt timer1(TMR1IE)
+ TMR1L( địa chỉ 0Eh) chứa giá trị 8 bit thấp của bộ đếm timer1
+ TMR1H( địa chỉ 0Eh) chứa giá trị 8 bit cao của bộ đếm timer1
+ T1CON( địa chỉ 10H) xác lập các thông số cho Timer1
G Bộ chuyển đổi ADC (Analog to Digital Converter) là bộ chuyển đổi tín
hiệu giữa 2 dạng tương tự và số PIC16F877A có 8 ngõ vào analog gồm RA4, RA3, RA2, RA1, RA0, RE2, RE1, RE0
Hiệu điện thế chuẩn VREF có thể được lựa chọn là VDD, VSS hay hiệu điện thếchuẩn được xác lập trên 2 chân RA2 và RA3 Kết quả chuyển đổi từ tín hiệutương tự sang tín hiệu số 10 bit số tương ứng và lưu trên 2 thanh ghi
ADRESH:ADRESL Khi không sử dụng bộ chuyển đổi ADC, các thanh ghinày có thể sử dụng như các thanh ghi thông thường khác Cần chú ý là có 2 cách lưu kết quả chuyển đổi AD, việc lựa chọn cách lưu được điều khiển bởi ADFM và được minh họa cụ thể trong hình sau:
Trang 12Hình 1.2.3
2.2.2 khối cảm biến.
Hiện nay trên thị trường có rất nhiều cảm biến đo nhiệt độ và độ ẩm như:
LM35, LM355, PT100… cảm biến đo nhiệt độ
Trang 13 Độ chính xác thực tế: 1/4°C
ở nhiệt độphòng và 3/4°C ngoài khoảng -55°C tới 150°CLM35 có hiệu năng cao, công suất tiêu thụ
Hình 2.3 cảm biến hs1101.
- DHT11, DHT21,SHT11 : tích hợp của cả cảm biến nhiệt độ và độ ẩm
Trang 14 SHT11 có độ sai số nhỏ, phù hợp với khảo sát
ở những nơi cần độ chính xác cao như nhà máy, phòng thí nghiệm
Hình 2.2.4 cảm biến SHT11
- Nhưng ở trong phạm vi Đồ Án 1 , để phù hợp và tiện dụng hơn thì ta sửdụng cảm biến tích hợp nhiệt độ và độ ẩm là DHT11, cũng như giá thành rẻ hơn nhưng thiết bị khác nhưng có khuyết điểm là tính chính xác tương đối,
mà ở Đồ Án 1 chỉ là minh hoạ qua thiết bị và tìm hiểu chức năng cũng như ýnghĩa của đề tài, không sử dụng vào mục đích thực tiễn nên không cần độ chính xác cao Vì vậy chọn DHT11 là một lựa chọn có thể đảm bảo hai chứcnăng mà giá thành tương đối
+ Giới thiệu về cảm biến DHT11.
- Cảm biến độ ẩm và nhiệt độ DHT11 là cảm biến rất thông dụng hiện nay vì chi phí rẻ và rất dễ lấy dữ liệu thông qua giao tiếp 1 wire (giao tiếp digital 1 dây truyền
dữ liệu duy nhất) Bộ tiền xử lý tín hiệu tích hợp trong cảm biến giúp ta có được dữliệu chính xác mà không phải qua bất kỳ tính toán nào
Trang 15- Đo tốt ở nhiệt độ 0 to 50°C sai số ±2°C.
- Tần số lấy mẫu tối đa 1Hz (1 giây 1 lần)
Kích thước 15mm x 12mm x 5.5mm
4 chân, khoảng cách chân 0.1''
Nguyên lý hoạt động Để có thể giao tiếp với DHT11 theo chuẩn 1 chân vi xử lý thực hiện theo 2 bước: Gửi tin hiệu muốn đo (Start) tới DHT11, sau đó DHT11 xácnhận lại Khi đã giao tiếp được với DHT11, Cảm biến sẽ gửi lại 5 byte dữ liệu và nhiệt độ đo được
- Bước 1: gửi tín hiệu Start
Trang 16Hình 1.2.2 dạng tín hiệu giao tiếp với cảm biến
MCU thiết lập chân DATA là Output, kéo chân DATA xuống 0 trong khoảng thời gian >18ms Trong Code mình để 25ms Khi đó DHT11 sẽ hiểu MCU muốn đo giátrị nhiệt độ và độ ẩm MCU đưa chân DATA lên 1, sau đó thiết lập lại là chân đầu vào Sau khoảng 20-40us, DHT11 sẽ kéo chân DATA xuống thấp Nếu >40us mà chân DATA ko được kéo xuống thấp nghĩa là ko giao tiếp được với DHT11 Chân DATA sẽ ở mức thấp 80us sau đó nó được DHT11 kéo nên cao trong 80us Bằng việc giám sát chân DATA, MCU có thể biết được có giao tiếp
được với DHT11 không Nếu tín hiệu đo được DHT11 lên cao, khi đó hoàn thiện quá trình giao tiếp của MCU với DHT
- Bước 2: đọc giá trị trên DHT11 DHT11 sẽ trả giá trị nhiệt độ và độ ẩm về dưới dạng 5 byte Tr ng đó:
Byte 1: giá trị phần nguyên của độ ẩm (RH%)
Byte 2: giá trị phần thập phân của độ ẩm (RH%)
Byte 3: giá trị phần nguyên của nhiệt độ (TC)