Đồ án môn học bộ môn vi xử lý, chuyên ngành tự động hoá, đồ án môn học, khoa điều khiển tự động hoá
TỔNG QUAN CÁC PHƯƠNG PHÁP ĐO NHIỆT ĐỘ
Hệ thống đo lường
1.1 Giới thiệu chung Để thực hiện phép đo nào đó của một đại lượng nào đó thì tùy thuộc vào đặc tính của đại lượng cần đo, điều kiện đó, cũng như độ chính xác theo yêu cầu của một phép đo mà ta có thể thực hiện đo bằng nhiều cách khác nhau trên cơ sở của các hệ thống đo lường khác nhau
Hình 1.1: Sơ đồ khối của một hệ thống đo lường tổng quát
Khối chuyển đổi có nhiệm vụ nhận trực tiếp các đại lượng vật lý đặc trưng cho đối tượng cần đo, sau đó biến đổi các đại lượng này thành các đại lượng vật lý thống nhất như dòng điện hoặc điện áp, nhằm thuận lợi cho việc tính toán.
Mạch đo có nhiệm vụ tính toán và biến đổi tín hiệu nhận được từ bộ chuyển đổi, nhằm đảm bảo phù hợp với yêu cầu thể hiện kết quả đo của bộ chỉ thị.
- Khối chỉ thị: làm nhiệm vụ biến đổi tín hiệu điện nhận được từ mạch đo để thể hiện kết quả đo
1.2 Hệ thống đo lường số
Hình 1.2: Sơ đồ khối của hệ thống đo lường số
1.2.2 Nguyên lý hoạt động Đối tượng cần đo là đại lượng vật lí, dựa vào các đặc tính của đại lượng cần đo mà ta chọn một loại cảm biến phù hợp để biến đổi thong số đại lượng vật lí cần đo thành đại lượng điện, đưa vào mạch chế biến tín hiệu ( gồm: bộ cảm biến, hệ thống khuếch đại, xử lí tín hiệu)
Bộ chuyển đổi tín hiệu ADC ( Analog Digital Converter) làm nhiệm vụ chuyển đổi tín hiệu tương tự sang tín hiệu số và kết nối với vi xử lí
Bộ dồn kênh tương tự và bộ chuyển đổi ADC được sử dụng chung cho tất cả các kênh Dữ liệu đầu vào vào vi xử lý sẽ có tín hiệu chọn đúng kênh cần xử lý, từ đó đưa vào bộ chuyển đổi ADC để đọc giá trị đặc trưng qua tính toán, nhằm đạt được kết quả đại lượng cần đo.
Các phương pháp đo nhiệt độ và độ ẩm
2.1 Phương pháp đo nhiệt độ trong công nghiệp
Nhiệt độ đóng vai trò quan trọng trong việc ảnh hưởng đến chất lượng của hầu hết các quy trình công nghệ Do đó, thiết bị đo nhiệt độ được sử dụng rộng rãi trong đời sống hàng ngày cũng như trong các lĩnh vực kỹ thuật.
Nhiệt độ là đại lượng vật lý thể hiện mức độ nóng lạnh của vật thể và môi trường, phản ánh năng lượng động học trung bình của các phần tử vật chất Đây là một trong những thông số trạng thái của nhiệt Đo là quá trình xác định giá trị của một đại lượng thông qua việc so sánh với giá trị chuẩn, được gọi là đơn vị đo, nhằm xác định chỉ số đo theo công thức cụ thể.
Trong đó : Q - là giá trị cần đo q - là giá trị đơn vị đo n - là chỉ số đo
Chỉ số đo n không chỉ phụ thuộc vào giá trị cần đo Q mà còn phụ thuộc vào giá trị đơn vị đo q Hiện nay, hệ đơn vị đo chuẩn được sử dụng rộng rãi trên thế giới là hệ SI.
Quá trình đo lường nhằm xác định giá trị của một đại lượng, nhưng mọi kết quả đo đều chỉ mang tính tương đối Độ chính xác của phép đo được thể hiện qua sai số đo, là giá trị phản ánh sự sai lệch giữa giá trị đo được và giá trị chuẩn của đại lượng cần đo Sai số có hai dạng chính: sai số tương đối và sai số tuyệt đối.
Sai số tuyệt đối ∆n là hiệu số giữa giá trị thực N và giá trị đo được n của đại lượng cần đo được xác định theo công thức:
Sai số tương đối là tỷ số giữa giá trị sai số tuyệt đối ∆n so với giá trị thực N biểu diễn dưới dạng:
Giá trị sai số tương đối thường được biểu diễn dưới dạng tỉ số phần trăm: δ% = δn 100% (2.4)
Phương pháp đo được chia làm hai loại chính: phương pháp đo trực tiếp và phương pháp đo gián tiếp
Giá trị đại lượng cần đo được xác định thông qua việc so sánh trực tiếp với đơn vị đo, tuy nhiên phương pháp này có độ chính xác không cao Điều này là do nó bị giới hạn bởi đơn vị đo nhỏ nhất và khả năng nhận biết của người đo, đồng thời không có khả năng tự động hóa trong quá trình đo.
Trong công nghiệp, phương pháp đo gián tiếp thường được sử dụng để xác định các đại lượng cần đo Phương pháp này không so sánh trực tiếp giá trị đại lượng với đơn vị đo, mà chuyển đổi chúng thành tín hiệu khác Thiết bị thực hiện chức năng chuyển đổi này được gọi là cảm biến đo (CBD) Tín hiệu đầu ra từ cảm biến đo sẽ được truyền đến thiết bị thứ cấp để so sánh với tín hiệu đơn vị và xác định chỉ số đo n Thiết bị thứ cấp thực hiện công đoạn này được gọi là thiết bị chỉ thị đo (CTD).
Hình 2.1: Hệ thống đo công nghiệp
Trong đó: - CBD: là cảm biến đo
- CTD: là chỉ thị đo
Để nghiên cứu hệ thống đo công nghiệp, cần phân tích từng thành phần của nó Cảm biến đo có mối quan hệ giữa tín hiệu ra y và tín hiệu vào Q, được mô tả bằng công thức y=f(Q) Mối quan hệ này được đánh giá hoàn hảo nhất khi là tuyến tính: y=KQ với K là hệ số Đặc tính động học của cảm biến cũng là một yếu tố cơ bản, thể hiện dải tần số làm việc; nếu tần số tín hiệu đo nằm ngoài giới hạn, sẽ gây ra sai số động Tính già hóa và tuổi thọ làm việc của cảm biến đặc trưng cho khả năng duy trì độ tin cậy, và khi vượt quá giới hạn, sai số do già hóa sẽ xuất hiện Thiết bị chỉ thị đo thực hiện chức năng xử lý dữ liệu từ cảm biến để xác định và hiển thị giá trị chỉ số đo Hệ thống đo được phân loại thành đo liên tục và đo số, trong đó đo liên tục hiển thị giá trị bằng kim trên thang chia độ Đặc trưng cơ bản của thiết bị đo liên tục là tốc độ di chuyển của kim, giới hạn đo và độ chính xác của kết quả Tốc độ di chuyển này phản ánh tần số giới hạn làm việc của thiết bị Sai số của thiết bị đo được đặc trưng bởi cấp chính xác, tính bằng tỷ lệ phần trăm của sai số cực đại so với giá trị thang đo.
Trong đó: K - Cấp chính xác của thiết bị
𝛥𝑛 𝑚𝑎𝑥 - Giá trị sai số cực đại n max - Giới hạn trên của thang đo n min - Giới hạn dưới của thang đo
Cấp chính xác của thiết bị phụ thuộc vào khả năng chế tạo, do đó, thiết bị có cấp chính xác cao thường có giá thành đắt hơn Cấp chính xác cao nhất đạt được là 0,001 Các thiết bị CTD được chế tạo với các cấp chính xác lựa chọn trong dãy k = (1 ; 1,5 ; 2 ; 2,5 ; 3 ; 4 ; 5 ; 6).10n với n = 1 ; 0 ; -1 ; -2 ; -3 Độ chính xác tối đa Δn của thiết bị CTD không chỉ phụ thuộc vào cấp chính xác K mà còn vào giới hạn thang đo Do đó, để nâng cao độ chính xác của phép đo, việc chọn thang đo phù hợp là rất quan trọng.
Kết quả đo trong hệ thống đo số được hiển thị trên bảng số, có thể là các con số được tạo thành từ sợi đốt trong đèn chân không hoặc số bảy thanh bằng diode phát quang Các đặc trưng cơ bản của hệ thống đo số bao gồm chu kỳ lấy mẫu và số lượng chữ số hiển thị Chu kỳ lấy mẫu là khoảng thời gian cần thiết để thiết bị thực hiện các thao tác như rời rạc hóa tín hiệu, lượng tử hóa, mã hóa và hiển thị kết quả Đây là đại lượng biểu thị giới hạn tần số tín hiệu liên tục mà thiết bị có thể sử dụng để đảm bảo độ chính xác Số lượng chữ số hiển thị đặc trưng cho độ chính xác của kết quả Sai số tuyệt đối của hiển thị được tính bằng một nửa mức thay đổi của chữ số bậc thấp nhất trong dãy số.
Trong các hệ thống đo công nghiệp hiện đại, bên cạnh CBD và CTD, còn có thiết bị chuyển đổi đo (CDD) được kết nối giữa CBD và CTD Sơ đồ của hệ thống này được mô tả trong hình.
Hình 2.2 Sơ đồ hệ thống đo hiện đại
- CDD là chuyển đổi đo
- CTD là chỉ thị đo
- CBD là cảm biến đo
Chuyển đổi đo đóng vai trò quan trọng trong việc chuyển tín hiệu từ dạng này sang dạng khác, cần thiết cho các thao tác tiếp theo, chẳng hạn như chuyển đổi tín hiệu ra không điện của CBD sang tín hiệu điện, hoặc chuyển đổi tín hiệu điện áp sang dòng điện và ngược lại Mối liên hệ giữa tín hiệu ra và tín hiệu vào của các CDD được mô tả bằng hàm tuyến tính Đặc trưng cơ bản của chuyển đổi đo là độ nhạy và ngưỡng độ nhạy, trong khi giới hạn của chuyển đổi đo phải luôn đảm bảo yêu cầu cần thiết Sai số cơ bản của chuyển đổi đo được biểu diễn dưới dạng cấp chính xác tương tự như thiết bị CTD.
Hệ thống đo công nghiệp thường bao gồm nhiều phần tử kết nối với nhau như CBD, CDD và thiết bị CTD Một chỉ tiêu quan trọng là phải đánh giá sai số của kết quả đo Để xác định sai số đo của hệ thống, trước tiên cần xác định sai số của từng thiết bị, bao gồm sai số cơ bản và sai số phụ.
Sai số của hệ thống được xác định theo công thức:
Trong đó: Δn – Sai số của hệ thống Δi – Sai số của thiết bị thứ i k – Số lượng thiết bị trong hệ thống
Các thiết bị đo công nghiệp thường được trang bị cơ cấu ghi lại kết quả đo liên tục, với các kết quả này thường được lưu trữ trên đĩa.
2.1.3 Các loại cảm biến nhiệt độ
– Nhiệt điện trở (RTD-resitance temperature detector)
– Ngoài ra còn có loại đo nhiệt không tiếp xúc (hỏa kế- Pyrometer) Dùng hồng ngoại hay lazer
Cấu tạo: Gồm 2 chất liệu kim loại khác nhau, hàn dính một đầu
Nguyên lý: Nhiệt độ thay đổi cho ra sức điện động thay đổi (mV) Ưu điểm: Bền, đo nhiệt độ cao
Khuyết điểm: Nhiều yếu tố ảnh hưởng làm sai số Độ nhạy không cao
Thường dùng: Lò nhiệt, môi trường khắc nghiệt, đo nhiệt nhớt máy nén,…
Hình 2.3 Cấu tạo của Thermocouples
Thermocouples được cấu tạo từ hai dây kim loại khác nhau, được hàn dính tại một đầu gọi là đầu nóng (hay đầu đo), trong khi hai đầu còn lại được gọi là đầu lạnh (hay đầu chuẩn) Khi có sự chênh lệch nhiệt độ giữa đầu nóng và đầu lạnh, một sức điện động V sẽ phát sinh tại đầu lạnh Việc ổn định và đo đạc nhiệt độ ở đầu lạnh là rất quan trọng và phụ thuộc nhiều vào chất liệu của thermocouples.
Dây của cặp nhiệt điện không đủ dài để kết nối với bộ điều khiển, dẫn đến sự không chính xác trong quá trình đo lường Để khắc phục vấn đề này, chúng ta cần thực hiện việc bù trừ cho độ dài dây dẫn.
THIẾT KẾ PHẦN CỨNG
Sơ đồ khối hệ thống
Hình 3.1: Sơ đồ khối hệ thống
- Sử dụng Vi điều khiển At89S52 để xử lý dữ liệu từ cảm biến và truyền về trung tâm
- Sử dụng cảm biến DHT11 để đo nhiệt độ, độ ẩm
- LCD để hiển thị nhiệt độ, độ ẩm đo được
- Khối nguồn để cung cấp nguồn nuôi cho toàn bộ phần mạch xử lý, mạch đo và cơ cấu chấp hành
- Cơ cấu chấp hành khối relay dùng để tạo ra nhiệt độ theo yêu cầu và mục đích sử dụng
Vi điều khiển 89S52
Hình 3.1: sơ đồ chân của 89S52
3.2.2 Các chân và chức năng của từng chân trên AT89S52
AT89S52 là một vi điều khiển với 40 chân, trong đó có 24 chân có chức năng kép, cho phép mỗi chân hoạt động như đường xuất nhập hoặc điều khiển Các chân này cũng có thể là thành phần của bus dữ liệu và bus địa chỉ, mang lại tính linh hoạt cho các ứng dụng.
Port 0: là port có 2 chức năng ở các chân từ 32- 39 Trong các thiết kế cỡ nhỏ không dùng đến bộ nhớ mở rộng thì port 0 có chức năng là xuất/nhập dữ liệu Nếu trong các thiết kế cỡ lớn phải dùng đến bộ nhớ mở rộng thì port 0 được kết hợp giữa bus địa chỉ và bus dữ liệu
Port 1: là port có 1 chức năng từ chân 1- 8 Có thể dùng cho giao tiếp với thiết bị ngoài nếu cần Vì không có chức năng khác ngoài xuất/nhập nên nó chỉ được dùng giao tiếp với các thiết bị bên ngoài
Port 2: là 1 port có tác dụng kép trên các chân 21- 28 được dùng như các đường xuất nhập hoặc là byte cao của các bus địa chỉ đối với thiết bị dùng bộ nhớ mở rộng
Port 3: là port có tác dụng kép trên các chân 10- 17, port này có nhiều chức năng cụ thể như sau:
P3.0 RXT Ngõ vào dữ liệu nối tiếp
P3.1 TXD Ngõ xuất dữ liệu nối tiếp
P3.4 T0 Ngõ vào của timer/ couter 0
P3.5 T1 Ngõ vào của timer/ couter 1
P3.6 WR Tín hiệu ghi dữ liệu lên bộ nhớ ngoài
P3.7 RD Tín hiệu đọc dữ liệu bộ nhớ ngoài
3.2.2.2 Các ngõ tín hiệu điều khiển
PSEN là tín hiệu ngõ ra ở chân 29, có chức năng cho phép đọc bộ nhớ chương trình mở rộng, thường được kết nối với chân OE (output enable) của EPROM để đọc các byte mã lệnh Khi PSEN ở mức 0, vi điều khiển 89S52 lấy lệnh, các mã lệnh được đọc từ EPROM qua bus dữ liệu và được chốt vào thanh ghi lệnh để thực thi Ngược lại, khi PSEN ở mức 1, 89S52 thực hiện chương trình trong ROM nội.
ALE, tại chân số 30, được sử dụng làm tín hiệu điều khiển để giải đa hợp các đường địa chỉ và dữ liệu khi kết nối với IC chốt Khi 89S52 truy xuất bộ nhớ bên ngoài, port 0 đảm nhiệm vai trò là đường địa chỉ và dữ liệu, do đó cần phải tách riêng chúng.
Tín hiệu ở chân ALE là một xung trong khoảng thời gian port 0, đóng vai trò là địa chỉ thấp, giúp chốt địa chỉ hoàn toàn tự động.
EA: Ngõ tín hiệu vào EA ở chân 31 thường được mắc lên nguồn Nếu ở mức 1 thì
Vi điều khiển 89S52 thực hiện chương trình từ ROM nội với dung lượng khoảng 8KB Khi ở mức địa chỉ 0, 89S52 sẽ thực hiện chương trình từ bộ nhớ mở rộng.
RST: Ngõ tín hiệu RST (reset) ở chân số 9 Khi 89s52 thực hiện 2 chu kỳ máy hoặc khi cấp điện mạch tự động reset
X1, X2: Ngõ tín hiệu dao động X1, X2 ở chân 18, 19 Thường được nối với thạch anh để tạo dao động
Vcc: là chân số 40, thường được nối lên nguồn 5V.
LCD
Hình 3.2: sơ đồ chân của LCD
Hình 3.3: Khối hiển thị LCD
3.3.1 Cấu tạo và chức năng chân Ký hiệu I/O Mô tả
3 VEE - Cấp nguồn điều khiển tương phản
4 RS I RS = 0 chọn thanh ghi lệnh RS = 1 chọn thanh dữ liệu
7 DB0 I/O Các bit dữ liệu
8 DB1 I/O Các bit dữ liệu
9 DB2 I/O Các bit dữ liệu
10 DB3 I/O Các bit dữ liệu
11 DB4 I/O Các bit dữ liệu
12 DB5 I/O Các bit dữ liệu
13 DB6 I/O Các bit dữ liệu
14 DB7 I/O Các bit dữ liệu
Chân vcc, Vss,VEE: Cấp dương nguồn - 5v và đất tương ứng thì VEE được dùng để điều khiển độ tương phản của LCD
Chân chọn thanh ghi RS trong LCD có vai trò quan trọng, với RS = 0 cho phép người dùng gửi lệnh như xóa màn hình hoặc đưa con trỏ về đầu dòng, trong khi RS = 1 cho phép gửi dữ liệu cần hiển thị trên LCD.
Chân W/R: Đầu vào đọc/ ghi cho phép người dùng ghi thông tin lên LCD khi R/W
= 0 hoặc đọc thông tin từ nó khi R/W = 1
Chân cho phép E được sử dụng bởi LCD để chốt thông tin hiện hữu trên chân dữ liệu của nó Khi dữ liệu được cấp đến chân dữ liệu, một xung mức cao xuống thấp cần phải được áp đế chân này để LCD chốt dữ liệu Xung này phải có độ rộng tối thiểu là 450ns.
Chân D0-D7 là 8 chân dữ liệu 8 bit, được sử dụng để truyền thông tin lên màn hình LCD hoặc đọc nội dung từ các thanh ghi của LCD Để hiển thị chữ cái và số, chúng ta gửi mã ASCII tương ứng của các ký tự.
A đến z, a đến f và các con số từ 0 - 9 đến các chân này khi bật RS = 1
Có nhiều mã lệnh có thể gửi đến LCD để thực hiện các thao tác như xóa màn hình, đưa con trỏ về đầu dòng hoặc làm nhấp nháy con trỏ Dưới đây là bảng liệt kê các mã lệnh này.
Chúng ta sử dụng RS = 0 để kiểm tra bít cờ bận, xác định xem LCD đã sẵn sàng nhận thông tin hay chưa Cờ bận là D7 và có thể được đọc khi R/W = 1 và RS = 0.
Khi R/W = 1 và RS = 0 với D7 = 1, LCD sẽ ở trạng thái bận do các công việc nội bộ, không thể nhận thông tin mới Ngược lại, khi D7 = 0, LCD đã sẵn sàng để nhận dữ liệu mới Do đó, việc kiểm tra cờ bận trước khi ghi dữ liệu lên LCD là rất quan trọng.
Cảm biến DHT11
3.4.1 Các thông số kỹ thuật của DHT11
- Dòng sử dụng: 2.5mA max (khi truyền dữ liệu)
- Đo tốt ở độ ẩm 20 - 80%RH với sai số 5%
- Đo tốt ở nhiệt độ 0 0 C - 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 2.54 mm
Hình 3.4: Sơ đồ khối kết nối vi xử lý
28 Để 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 tín hiệu yêu cầu đo từ vi điều khiển đến cảm biến DHT11, sau đó DHT11 sẽ xác nhận lại Khi kết nối thành công, cảm biến sẽ gửi lại 5 byte dữ liệu cùng với nhiệt độ đo được.
Bước 1: Gửi tín hiệu Start
MCU (bộ vi xử lý) thiết lập chân DATA là Output và kéo chân DATA xuống 0 trong khoảng thời gian lớn hơn 18ms, trong khi trong mã code là 25ms Khi đó, DHT11 sẽ nhận biết rằng 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-40 micro giây, cảm biến DHT11 sẽ kéo chân DATA xuống mức thấp Nếu sau 40 micro giây mà chân DATA không bị kéo xuống thấp, điều đó có nghĩa là không thể thiết lập giao tiếp với cảm biến DHT11.
Chân DATA của cảm biến DHT11 sẽ ở mức thấp trong 80us và sau đó được kéo cao trong 80us Bằng cách giám sát chân DATA, MCU có thể xác định được sự giao tiếp với cảm biến DHT11.
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
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)
Byte 4 : Giá trị phần thập phân của nhiệt độ (TC)
Byte 5 : Kiểm tra tổng
Nếu Byte 5 = (8 bit).(Byte1 + Byte2 + Byte3 + Byte4), thì giá trị độ ẩm và nhiệt độ sẽ chính xác; nếu không, kết quả đo sẽ không có ý nghĩa.
Sau khi giao tiếp được với DHT11, DHT11 sẽ gửi liên tiếp 40 bit 0 hoặc 1 về MCU, tương ứng chia thành 5 byte kết quả của Nhiệt độ và độ ẩm
Sau khi tín hiệu được đưa về 0, chúng ta chờ chân DATA của MCU được DHT11 kéo lên 1 Nếu chân DATA giữ mức 1 trong khoảng 26-28 us thì giá trị là 0, còn nếu kéo lên 70 us thì giá trị là 1 Trong lập trình, ta bắt sườn lên của chân DATA và sau đó delay 50 us Nếu giá trị đo được là 0, ta ghi nhận bit 0; nếu giá trị đo được là 1, ta ghi nhận bit 1 Cứ tiếp tục như vậy để đọc các bit tiếp theo.
3.4.3 Sơ đồ kết nối với vi điều khiển
Chân DATA được nối với chân P3.0 của vi xử lý AT89S52
Relay
3.5.1 Chức năng các chân của relay
Số PIN Tên PIN Miêu tả
Cuộn dây kết thúc 1 được sử dụng để kích hoạt (bật/tắt) rơle, với một đầu được kết nối với nguồn 5V và đầu còn lại nối đất.
Hai cuộn dây kết thúc 2 được sử dụng để kích hoạt (bật/tắt) rơle, trong đó một đầu thường được kết nối với nguồn 5V và đầu còn lại nối đất.
3 Chân chung ( COM ) Được kết nối với kết thúc của một tải cần kiểm soát
4 Thường đóng ( NC ) Đầu kia của tải được kết nối với NO hoặc NC
Nếu được kết nối với NC, tải vẫn được kết nối trước khi kích hoạt
5 Thường mở ( NO ) Đầu kia của tải được kết nối với NO hoặc
NC Nếu được kết nối với NO, tải vẫn bị ngắt kết nối trước khi kích hoạt
3.5.2 Các thông số của Rơle 5V Điện áp kích hoạt (Điện áp trên cuộn dây): 5V DC
Dòng điện danh định: 70mA
Dòng tải AC tối đa: 10A 250 / 125V AC
Dòng tải DC tối đa: 10A 30 / 28V DC
Cấu hình 5 chân nhỏ gọn với khuôn nhựa
Thời gian hoạt động: 10msec Thời gian phát hành: 5msec
Chuyển đổi tối đa: 300 hoạt động / phút (cơ học)
Công tắc thường được sử dụng trong các mạch chuyển mạch, đặc biệt trong các dự án tự động hóa gia đình để chuyển đổi tải AC, cho phép kiểm soát (bật/tắt) tải nặng theo thời gian hoặc điều kiện xác định trước Nó cũng được áp dụng trong các mạch an toàn để ngắt kết nối tải khỏi nguồn cung cấp trong trường hợp hỏng hóc Ngoài ra, công tắc còn được sử dụng trong ô tô điện tử để điều khiển các chỉ số động cơ thủy tinh và nhiều ứng dụng khác.
3.5.4 Sơ đồ vi điều khiển kết nối relay
Chọn transistor loại PNP để điều khiển cấp điện cho cuộn dây relay
Diode D2 và D5 có tác dụng bảo vệ cho transistor
Khối cấp nguồn
IC LM 7805 có tác dụng ổn định điện áp đầu ra 5VDC cung cấp cho toàn mạch điện tử Jack DC cắm nguồn đầu vào từ 7-25 VDC
Các tụ C1, C2 để lọc điện áp đầu ra
Khối tạo dao động và khối vi điều khiển
Sử dụng thạch anh tần số 11.0592 Hz để tạo xung cho vi điều khiển
Chân P3.0 RXD là chân nhận tín hiệu từ cảm biến DHT11
Các chân P2.0- P2.5 kết nối với LCD 16x02
Sơ đồ nguyên lý tổng thể của hệ thống
THIẾT KẾ PHẦN MỀM
Lưu đồ thuật toán chương trình vi điều khiển
Hình 4.1 Lưu đồ thuật toán chương trình vi điều khiển
Khi vi điều khiển bắt đầu hoạt động, nó sẽ khởi tạo IO cho các PORT, Timer, Ngắt và LCD Sau khi hoàn tất quá trình khởi tạo, vi điều khiển sẽ đọc dữ liệu từ cảm biến DHT11 Nếu có dữ liệu hợp lệ, vi điều khiển sẽ hiển thị dữ liệu đó trên LCD; ngược lại, nếu không có dữ liệu hoặc dữ liệu sai, vi điều khiển sẽ bỏ qua và bắt đầu vòng lặp mới.
Khởi tạo cho VĐK và LCD
Dữ liệu từ cảm biến DHT11
Byte3 = Nhiệt độ + Độ ẩm;
Truyền dữ liệu (Byte1,Byte2,Byte3)
Hiển thị Nhiệt độ, Độ ẩm lên LCD
Lưu đồ thuật toán đọc dữ liệu cảm biến
Hình 4.2: Lưu đồ thuật toán đọc dữ liệu cảm biến
Cảm biến DHT11 bắt đầu quá trình đo bằng cách gửi 1 byte START và chờ nhận dữ liệu phản hồi Sau khi nhận đủ 5 byte dữ liệu, vi điều khiển sẽ kiểm tra tính hợp lệ của dữ liệu bằng công thức Byte5 = (8bit)(Byte1 + Byte2 + Byte3 + Byte4) Nếu công thức đúng, Byte1 sẽ đại diện cho phần nguyên độ ẩm, Byte2 cho phần thập phân độ ẩm, Byte3 cho phần nguyên nhiệt độ, và Byte4 cho phần thập phân nhiệt độ Trong trường hợp công thức sai hoặc không nhận được dữ liệu, vi điều khiển sẽ bỏ qua và chờ vòng quét tiếp theo để đọc lại.
GỬI BYTE START ĐỌC 5 BYTE DATA TRẢ VỀ
BYTE5 = (8BIT)BYTE(1+2+3+4) ĐỘ ẨM = BYTE 1 NHIỆT ĐỘ = BYTE3
Bản vẽ mạch in
Hình 4.3: Hình ảnh bản vẽ mạch in
Hình 4.4: Hình ảnh 3D bố trí linh kiện trên mạch:
Code vi điều khiển
LCD1602 giao tiep voi AT89s52
#include void delay_us(unsigned int t)
} void delay_ms(unsigned int t)
// Ham cho phep hien thi len LCD void CTR_LCD_Enable(void)
CTR_LCD_EN = 1; delay_us(3);
// Ham gui 4 bit void CTR_LCD_Send4Bit(unsigned char Data)
// Ham gui 1 Byte du lieu void CTR_LCD_Send1Byte(unsigned char byte)
CTR_LCD_Send4Bit(byte >>4);/* Gui 4 bit cao */
CTR_LCD_Send4Bit(byte); /* Gui 4 bit thap*/
// Ham xoa man hinh void CTR_LCD_Clear()
CTR_LCD_Send1Byte(0x01); delay_us(10);
// Ham khoi tao LCD void CTR_LCD_Init()
CTR_LCD_Send4Bit(0x00); delay_ms(20);
CTR_LCD_Send4Bit(0x03); // function setting
CTR_LCD_Enable(); delay_ms(5);
CTR_LCD_Enable(); delay_ms(100);
CTR_LCD_Send4Bit(0x02); // dua con tro ve dau man hinh
CTR_LCD_Send1Byte(0x28); // Function Setting(001D NF**) D=0(4bit),
CTR_LCD_Send1Byte(0x0C); // Bat hien thi, tat con tro
CTR_LCD_Clear(); delay_ms(20);
// Ham di chuyen con tro: row=0-1; col=0-15 (2 hang + 16 cot) void CTR_LCD_SetCursor(unsigned char row, unsigned char col)
{ unsigned char address; if (row == 0) address = (0x80 + col); // hang 1 else address = (0xC0 + col); // hang 2 delay_us(1000);
CTR_LCD_Send1Byte(address); delay_us(50);
// Ham chuoi ki tu void CTR_LCD_Print(char *s)
Chuong trinh giao tiep cam bien DHT11 voi AT89s52 hien thi len LCD1602
#include " \lib\CTR_LCD1602.h" // Thu vien LCD1602
#define CTR_DHT11 P3_0 // Chan Data cua DHT11
I_RH - integer humidity : Gia tri phan nguyen cua Do Am
D_RH - decimal humidity : Gia tri phan thap phan cua Do Am
I_Temp - integer temperature : Gia tri phan nguyen cua Nhiet Do
D_Temp - decimal temperature : Gia tri phan thap phan cua Nhiet Do
CheckSum : Tinh tong de kiem tra
-*/ sbit RL1 = P0^0; sbit RL2 = P0^1; int I_RH,D_RH,I_Temp,D_Temp,CheckSum; void delay20ms() /* Ham tre 20ms su dung Timer0, thach anh 11.0592MHz */ {
TH0 = 0xB8; /* Gia tri TH0 */
TR0 = 1; /* Bat dau timer0 */ while(TF0 == 0); /* Doi den khi TF0=1*/
TF0 = 0; /* Dat lai co tran TF0=0 */
} void delay30us() /* Ham tre 30us su dung Timer0, thach anh 11.0592MHz */ {
TH0 = 0xFF; /* Gia tri TH0 */
TL0 = 0xF1; /* Gia tri TL0 */
TR0 = 1; /* Bat dau timer0 */ while(TF0 == 0); /* Doi den khi TF0=1*/
TF0 = 0; /* Dat lai co tran TF0=0 */
} void CTR_Request() /* VDK gui lenh bat dau */
} void CTR_Response() /* Tin hieu phan hoi tu DHT11 */
{ while(CTR_DHT11==1); while(CTR_DHT11==0); while(CTR_DHT11==1);
} int CTR_Receive_data() /* Nhan du lieu la gia tri Do Am - Nhiet Do */
The code snippet waits for the CTR_DHT11 variable to become 1, indicating that the DHT11 sensor is ready After a 30-microsecond delay, it checks the status of the DHT11; if the sensor is at level 1, it reads a bit value of 1, while a level of 0 corresponds to a bit value of 0.
CTR_dat = (CTR_dat