THỬ NGHIỆM DÙNG CẢM BIÉN NHIỆT Độ BẰNG VI MẠCH BÁN DẢN Đăt vấn đề

Một phần của tài liệu Nghiên cứu thiết kế chế tạo thử lồng ấp trẻ sơ sinh (Trang 41)

PHÀN THỰC NGHIỆM VÀ CÁC KẾT QUẢ

2.2 THỬ NGHIỆM DÙNG CẢM BIÉN NHIỆT Độ BẰNG VI MẠCH BÁN DẢN Đăt vấn đề

Đăt vấn đề

Đo lường và điều khiển nhiệt độ là bài toán khá quen thuộc với những người làm về đo lường và điều khiển vì lĩnh vực ứng dụng tương đối rộng rãi, cả trong đời sống, trong sản xuất cũng như trong nghiên cứu khoa học. Các hệ thống được thiết kế gần đây đều dựa trên kỹ thuật vi xử lý nên việc sử dụng các cảm biến truyền thống như cặp nhiệt điện, cảm biến nhiệt điện trở, ... không khỏi có những phiền phức, đặc biệt là vấn đề số hoá tín hiệu lối vào và ổn định nhiệt (chống trôi vì nhiệt) cho hệ đo. Các cảm biến có lối ra số gần đây đã được giới thiệu với thị trường như DS1820, DS1821, DS1620, ... đã tỏ ra đặc biệt thuận tiện cho những ứng dụng dựa trên vi điều khiển vì tín hiệu lối ra có mức lôgic TTL và chứa những thông tin về nhiệt độ của cảm biến. Do vậy có thể nối trực tiếp cảm biến với một trong các cổng lối vào của vi điều khiển. Nhược điểm duy nhất khi sử dụng các cảm biến loại này là phải hiểu biết đôi chút về kỹ thuật vi điều khiển, về khuôn mẫu dừ liệu để có thể nhận dạng được các thông tin mà cảm biến gửi ra.

Với ý định xây dựng một hệ thống đo và cảnh báo nhiệt độ của lồng ấp khi nhiệt

độ quá cao (chẳng hạn qúa 38°C), chúng tôi đã lựa chọn loại cảm biên DS1620 đê thử nghiệm. Muốn giao tiếp với cảm biên có lôi ra sô DS1620 ta phai hieu rõ cac đặc tinh của cảm biển thông qua tài liệu mà công ty Dallas cung câp khá đây du.

Cảm biên nhiệt vói lôi ra sô DS1620

DS1620 là một vi mạch được thiết kế để sử dụng vào việc đo nhiệt độ hoặc điều khiển nhiệt độ (trong các máy điều chỉnh nhiệt độ hay thường gọi là thermostat); vì vậy đôi khi còn gọi là vi mạch nhiệt kế. Đặc điểm nổi bật của vi mạch này là tín hiệu ra (chân 1) là tín hiệu dưới dạng số, được xuất ra theo khuôn mẫu 9 bit nối tiếp, trong đó chứa các thông tin cho phép hiển thị ra nhiệt độ của vi mạch. Dạng đóng vỏ thường gặp là loại 8 chân theo hai hàng. Cách sắp xếp chân và tên gọi của các chân linh kiện được chỉ ra trên hình 22. VDD là chân nguồn, thường nối với nguồn điện áp +5 V. DQ là chân xuấư nhập dữ liệu. CLK là lối vào xung nhịp. RST là lối vào reset. DS1620 hoạt động như một bộ điều chỉnh nhiệt độ. THIGH được điều khiển ở mức HIGH nếu nhiệt độ của DS1620 lớn hơn hoặc bằng nhiệt độ TH do người dùng quy định. Tương tự, TLOW được điều khiển ở mức HIGH nếu nhiệt độ của DS1620 nhỏ hơn hoặc bàng nhiệt độ TL do người dùng quy định. TCOM được điểu khiển ở mức HIGH khi nhiệt độ vượt quá TH và vẫn giữ ở mức HIGH cho tới khi nhiệt độ DS1620 giảm xuống thấp hơn TL. Các giá trị nhiệt độ TH và TL được lưu trữ trong bộ nhớ không bay hơi (non volatile) trên linh kiện; vì vậy các dừ liệu này không bị mất đi, ngay cả khi đã tắt điện áp nguồn nuôi trong một thời gian dài.

d qC 1 8 □ VDD

clkC 2 7 □ THIGH

DS1620

rstC 3 6 □ tlovv gndC 4 5 □ TCOM

Hình 22: Tên chân và cách sắp xếp chăn trên vi mạch DS1620.

Dữ liệu được xuất ra nối tiếp theo khuôn mẫu 9 bit trong một khung truyền, trong đó bit có trọng số thấp nhất (LSB) được xuất ra trước. Nhiệt độ được đo trong khoảng

từ -5 5 ° c tới 125°c, mỗi bước là 0 ,5 ° c . Những thông sổ cơ bản của cảm biến nhiệt độ với lối ra số DS1620 cỏ thể kể ra là[2h

• Khi sử dụng không cần thêm linh kiện bên ngoài.

• N guồn nuôi có thể thay đổi trong dải rộng từ 2,7V đên 5,5V

• Vùng nhiệt độ đo từ -55°c đến +125°c theo từng bước 0,5°c.

• N hiệt độ được đọc dưới dạng dừ liệu 9 bit.

• Thời gian biến đổi lớn nhất từ nhiệt độ thành tín hiệu số là 750 ms (max). • Dữ liệu nhiệt độ có thể được đặt bởi người dùng và không tự bay hơi.

• D ữ liệu được đọc ra/ ghi vào qua giao điện nối tiếp 3 dây (CLK, DQ. RST)

• Được thiết kế để dùng cho các ứng dụng như điều chỉnh nhiệt độ, hệ thống côna nghiệp, các sản phâm gia dụng, nhiệt kế điện tử, hoặc các hệ thống nhay nhiệt khác

• Đóng vỏ dưới dạng 8 chân DIP hoặc SOIC.

Có thể nói đây là những đặc tính rất hấp dẫn đối với việc thiết kế một hệ thống số.

Xây dựng hệ thống: Hệ thống đo và điều khiển nhiệt độ nhàm khai thác hết các tính năng của cảm biến DS1620 và đáp ứng các yêu cầu do ứng dụng đặt ra, cụ thể là vừa đọc được dữ liệu nhiệt độ ở lối ra của cảm biến, vừa hiển thị kểt quả trên các LED, vừa đưa các thông tin điều khiển ra lối ra ghép với khối chấp hành. Sơ đồ khối của mạch điện dùng trong ứng dụng này được chỉ ra trên hình 23.

cảm biến nhlột

Hình 23 : S ơ đồ khối của hệ thống đo lường.

Việc nhập vào và xuất ra dữ liệu từ cảm biến được thực hiện qua chân DQ (chân 1). Khi lối vào RST ở mức cao, dữ liệu nổi tiếp có thể được ghi hoặc đọc theo nhịp xung ở lối vào clock. Dữ liệu được ghi hoặc đọc từ linh kiện theo 2 phần. Trước hết một giao thức được gửi, sau đó là dữ liệu được đọc hoặc ghi. Việc điều khiển đọc và ghi dữ liệu được tiến hành từ vi điều khiển; để đơn giản, ở đây vi điều khiển được lựa chọn là loại AT89C2051[1]. Vi điều khiển tách dừ liệu nhiệt độ từ DS1620 và sau đó hiển thị nhiệt độ, dưới dạng độ bách phân (°C), trên 3 LED hiển thị số chữ cái loại

TIL311. Nhiệt độ dương được hiển thị trong vùng từ 0°c đến 125°c. Nhiệt độ âm trong vùng từ -55°c đến 0°c được hiển thị thêm một chừ E đứng đầu. Dữ liệu nhiệt độ đọc được từ cảm biến DS1620 còn có thể được xử lý tiếp trong chương trình nạp vào vi điều khiển để tính ra:

• G iá trị cực đại hoặc cực tiểu trong số các giá trị đã đo được băng phép so sánh giá trị vừa đọc với các giá trị đã đọc và

• Thời điểm đạt giá trị ngưỡng mà người dùng đã đặt hoặc xuông thâp hn giá trị ngường để chuyển tín hiệu sang khối điều khiển.

Bit 2 của cồng 3 được nối với lối vào RST của DS1620, bit 1 được nối với lối vào clock, còn bit 0 trên cổng 3 được nối với chân DQ của DS1620. Ba LED hiển thị số chữ cái được nối với cồng 1 của vi điều khiến, số thứ nhất được điều khiển bởi bit 7 của cổng 1, số thứ hai bởi bit 6 của cổng 1, số thứ ba bởi bit 5 của cổng 1.

Việc chốt các sổ hiển thị và các đường điều khiển DS1620 được gán với các biến bit ở phần đầu của chương trình. N hư vậy, các giao thức sử dụng được định nghĩa và gán cho các biên toàn cục. Thí dụ read_temp được gán với số AA trong hệ đếm 16.

start conv được gán với sổ EE và V . V .. .

Chương trình điều khiển được viết bàng ngôn ngữ c và nạp vào vi điều khiển. Nội dung chương trình có thể mô tả ngắn gọn như sau:

Khi chương trình bắt đầu chạy, các biến chốt sổ digit latch 1, digitJa tch 2 ,

digit_latch3 đều được đặt bàng 1 để tránh bất kỳ lỗi nào đưa ra bộ hiển thị. Hàm

configure_ d s1620 sau đó được gọi để thiết lập thanh ghi configuration/status cho chế

độ hoạt động liên tục. Việc chuyển đổi nhiệt độ được bắt đầu bằng cách gọi hàm

start_temp_conversion. Hàm này gửi giao thức EE tới DS1620. Một vòng lặp vô tận

được thực hiện bằng lệnh fo r không kèm theo tham số. Trong vòng lặp này, hàm

read temperature đọc giá trị nhiệt độ 9 bit và trả lại giá trị cho biến TEMP. Hàm

displayJem perature hiển thị nhiệt độ trên 3 LED TIL 311. Vòng lặp này được lặp lại

với thời gian trễ là 1 giây giữa mồi lần xuất dữ liệu ra.

Hàm read temperature trả lại giá trị là số nguyên không dấu cho lời gọi chương

trình. Hàm này gọi hàm readJ ro m _ d sl6 2 0 với tham số AA (trong hệ thập lục phân) để nhận lấy giá trị nhiệt độ. Hàm rea d J ro m _ d sl6 2 0 là đoạn chương trình chung, thực hiện việc đọc dữ liệu từ DS1620. Hàm này gửi dữ liệu giao thức tới DS1620 và sau đó đọc các byte dữ liệu từ DS1620 tưng ứng với giao thức đã được gửi. Lối vào RST trước tiên được đặt lên 1. Sau đó, một vòng lặp fo r được tạo ra để "nhắc lại" 8 lần để gửi dữ liệu giao thức nối tiếp tới DS1620. Các bit có trọng số thấp nhất (LSB) được gửi ra trước. Biến cục bộ lưu trừ các bit này để gửi đi mỗi lần lặp lại. Một vòng lặp khác đọc dữ liệu từ DS1620 và lưu dữ liệu này trong biến dsỉ620_data. Khi kết thúc một chu kỳ đọc, lối vào RS được đặt trờ về 0 và dừ liệu trong dsl620_đata được trà lại cho hàm gọi.

Hàm write_to_ds 1620 là một hàm chung (tồng quát), nó gửi một giao thức và sau

đó là các bit dừ liệu tới DS1620. Lối vào RST trước hết được đặt lên 1. Sau đó, một vòng lặp fo r được tạo ra để lặp lại 8 lần và bit giao thức được gưi đi một cách tuần tự tới chân lối vào DQ của DS1620. Biến this bit lưu trừ bit cần gửi đi tại mỗi lần lặp.

Sau đó, một vòng lặp fo r khác gừi đi số các bit dữ liệu cần thiết tới DS1620. Khi kết thúc chu kỳ ghi, lối vào RST lại trở về 0.

Hàm display_temperature nhận dữ liệu như là các tham số của nó và hiển thị trên

3 LED hiển thị số chữ cái loại TIL311. Nếu nhiệt độ là âm, số thử nhất được đặt để hiển thị chữ ‘E \ Mỗi số được hiển thị sau khi đã chuyển đổi dừ liệu sang hệ thập phân.

Đe tận dụng tính năng của cảm biến, phần chấp hành có thể không cần nối vào vi điều khiển mà nổi vào chân THIGH hoặc TCOM của cảm biến. Khi đó nhiệm vụ chính của vi điều khiển là chứa chương trình chính và điều khiển hiển thị. Hai thiết bị đo sau đây đã được thử nghiệm

N hiệt kế số vói lối ra cảnh báo giói hạn cao

Trong ứng dụng này một máy phát con ve (buzzer) được nối với lối ra THIGH của cảm biến nhiệt DS1620 qua một tranzito trường. Khi nhiệt độ đo được vượt quá một giá trị cho trước “con ve” sẽ kêu và “con ve” tiếp tục kêu khi nhiệt độ đo được vẫn lớn hơn nhiệt độ này. Trong mạch điện thử nghiệm, âm thanh báo động phát ra khi nhiệt

độ lớn hơn hoặc bằng 25°c.

+■

Hĩnh 24: Sơ đồ mạch điện đo nhiệt độ có lối ra cảnh báo nhiệt độ cao.

Sơ đồ mạch điện: dùng trong ứng dụng này được chỉ ra trên hình 24. Càm biến nhiệt DS1620 và LED hiển thị T IL 3 11 được nối với vi điều khiển. Một máy phát con ve được nôi với lôi ra THIGH của DS1620 qua một tranzito trường (tranzito công suất). Bình thường THIGH ở mức lôgic thấp và lối ra này sẽ chuyển lên mức cao khi nhiệt độ vượt quá giá trị TH, được lưu trừ trong bộ nhớ không bay hơi cùa DS1620.

Chương trình điều khiển chỉ bổ sung thêm một đoạn sao cho khi nhiệt độ giới hạn TH được đặt ứng với 25°c thì lối ra THIGH chuyển lên mức cao khi nhiệt độ bằng hoặc vượt quá 25°c và nó câp điện cho máy phát con ve để phát ra âm thanh cảnh báo; ngoài ra có bổ sung thêm một hàm có tên là s e tjiig h để nhập giới hạn nhiệt độ cao TH. Hàm này gửi số 01 ứng với giao thức tới DS1620, sau đó gửi giá trị dừ liệu để đặt nhiệt độ TH.

Nhiệt kế số với các lối ra cảnh báo giói hạn cao và thấp

Do đặc tính của DS1620, một hệ thổng đo nhiệt độ có cảnh báo giới hạn thấp và cao có thể được thiết kế một cách đom giản hơn bàng cách sửa đổi chương trình và cách nối máy phát con ve không phải ở chân vi điều khiển hoặc chân THIGH mà được nối với lối ra TCOM của DS1620, "con ve" kêu mỗi khi nhiệt độ lớn hơn hoặc bàng TH và ngừng kêu khi nhiệt độ giảm xuống tới khi nhỏ hơn hoặc bằng TL. Trong thử

nghiệm này TL được đặt ứng với 25°c và TH được đặt ứng với 30°c. Đây là ứng dụng giám sát nhiệt độ sử dụng DS1620 làm cảm biến nhiệt độ để đo nhiệt độ môi trường xung quanh.

cảm biến nhiệt

Hình 25: S ơ đồ khối của mạch điện đo và giám sát nhiệt độ.

Sơ đồ mạch điện dùng trong ứng dụng này giống với sơ đồ trên hình 24, chỉ khác

tranzito trường được nối với chân 5 (TCOM ) của DS1620 thay vì nôi chân 7 (xem sơ đồ khối trên hình 25). Một máy phát con ve được nối với lối ra TCOM cùa DS1620 qua tranzito trường loại công suất. Bình thường lôi ra TCOM ờ mức lôgic thảp và lôi

ra này chuyển lên mức cao khi nhiệt độ vượt quá giá trị TH (được lưu trong bộ nhớ không bay hơi của DS1620) và quay trở lại mức lôgic 0 khi nhiệt độ thấp hơn TL.

về cơ bản chương trình này giống như trong thử nghiệm trên, ngoại trừ nhiệt độ giới hạn TH được đặt ứng với 30°c để lối ra THIGH chuyển lên mức cao khi nhiệt độ bằng hay vượt quá 30°c, TL được đặt ứng với 25°c để lối ra TCOM quay trờ lại 0 khi nhiệt độ xuống thấp hn hoặc bằng 25°c. Khi đó máy phát con ve sẽ kêu khi nhiệt độ

lên tới 30°c và sẽ tắt khi nhiệt độ xuống thấp hn 25°c. Thu hẹp khoảng cách ta sẽ nhận được một dải hẹp của nhiệt độ được điều chỉnh. Một hàm set J ỉo \v được bổ sung thêm để đặt nhiệt độ giới hạn TL của DS1620.

Kết quả và bàn luận: Vì phần mạch điện tưng đối đơn giản nên nếu phần mềm không mắc lối là hệ thống có thể hoạt động ngay. Để đánh giá độ chính xác của hệ thống đo, nhiệt độ đã được đo thử để so sánh giữa cảm biến DS1620 và nhiệt kế thuỷ ngân, có độ phân gii 0,1 ° c và giá trị đo lớn nhất là 100°c. Kết qu đã được biểu diễn trên đồ thị trong vùng từ 15°c đến 70,0°c với trục tung là nhiệt độ đọc từ hệ thống kể trên còn trục hoành là nhiệt độ đọc từ nhiệt kế thuỷ ngân. Các giá trị đo được đều nam sát đường phân giác của góc phần tư thứ nhất, Độ lệch nằm trong khoảng từ 0,0°c đến

0,3°c, nghĩa là không quá 0,5°c. Nếu tính ở 50°c thì sai số này cờ 1%. Độ chính xác này hoàn toàn thoả mãn một số ứng dụng đo và điều khiển nhiệt độ trong nghiên cứu sinh học, công nghệ sinh học, trong đó có lồng ấp trẻ sơ sinh.

Độ phân giải 0 ,5 ° c không phải là cao, nhưng cũng vì vậy mà những thay đổi nhỏ của nhiệt độ cảm biến (khoảng 0,2°C) hầu như không được phản ánh trên bộ hiển thị nhiệt độ.

Cũng từ đường thẳng so sánh với nhiệt kế thuỷ ngân chúng tôi nhận thấy độ lặp lại của phép đo khi tăng và giảm nhiệt độ rất tốt. Hai đường tăng và giảm nhiệt độ chỉ sai

lệnh (sai số hồi sai) khoảng 0,3°c.

Khoảng cách từ cảm biến nhiệt độ tới vi điều khiển cũng đã được thử nghiệm. Cho đến chiều dài bàng 2,5 mét, tính ổn định của kết qu hiển thị chưa hề bị nh hường. Vấn đề chống nhiễu không cân phi quan tâm đên như trong các hệ đo sử dụng cảm biển có tín hiệu ra dưới dạng analog.

Kết luận: Việc áp dụng các cảm biến với lối ra số loại DS1620 cho các hệ thống đo lường và điều khiển đơn giản thè hiện ưu điêm rõ rệt: mạch điẹn rat đơn gian, hẹ thống hoạt động ổn định, chi phí không cao. Khi đã viêt được một phản mẽm điêu khiển thích hợp thì việc "nhân bản các sản phẳm" cho nhiều ứng dụng trơ nên rất dơn

giản. Việc thay đổi các thông số cần điều khiển chỉ thực hiện đơn giản bàng việc gán các giá trị khác nhau trong phần mềm; nghĩa là có được những ưu điểm giống như trường hợp sử dụng PLC (Programmable Logic Controller).

Một phần của tài liệu Nghiên cứu thiết kế chế tạo thử lồng ấp trẻ sơ sinh (Trang 41)