Ổn định nhiệt độ lò sử dụng điều khiển tinh chỉnh bằng cặp nhiệt điện

Category: Arduino Published: 12 December 2013
Hits: 11558

Dự án hoàn toàn mới đầu tiên của tôi bắt đầu với một lớp khoa học vật liệu mà tôi dạy ở học viện Seattle. Nhiều bài giảng của tôi yêu cầu phải có sự điều khiển chính xác thời gian và nhiệt độ trong khoảng 300 – 700°C. Tôi được sử dụng một chiếc lò hộp nhỏ khá tốt, nhưng nó chỉ có bàn quay số chỉnh điện áp và bộ hiển thị ở phía trước cho biết nhiệt độ xấp xỉ trong khoảng giữa 0 và 1100°C. Dự án này giúp tôi có một cái nhìn sâu hơn về sự phức tạp trong việc hiệu chỉnh chuẩn nhiệt độ và cặp nhiệt điện

Đây là bộ điều khiển nhiệt độ. Lò nung được cắm vào một nguồn mà nguồn đó sẽ được bật hay tắt bởi một rơ-le dòng cao (hoặc điện áp cao). Rơ-le này được dẫn bởi tín hiệu số mạch TTL từ bộ xử lý Arduino. Bộ xử lý Arduino này quyết định bật hay tắt lò nung dựa trên dữ liệu nhận được từ cặp nhiệt điện.

Cặp nhiệt điện được bọc kín trong lớp vỏ bảo vệ làm bằng vật liệu gốm và được nhét trượt vào buồng lò từ trên đỉnh. 


Sơ đồ ở trên mô tả kết nối từ hộp điểu khiển nhiệt độ.

Rơ-le thể rắn hiệu Fotek SSR40 – DA (bảng dữ liệu) cho phép dòng điện rất cao (lên tới 40A) dẫn qua lò nung (tôi phải thừa nhận rằng tôi chưa bao giờ đo tải tối đa của lò!). Cặp nhiệt điện được nối với bộ Arduino qua một con chip chuyển đổi AD595, sẽ xuất ra 10mV cho mỗi độ C tăng thêm dựa trên cặp nhiệt điện loại K. Cặp nhiệt điện loại K khả dụng ở nhiệt độ lên tới 1250°C, do đó đây là cặp nhiệt lý tưởng với loại lò nung này.

Chip AD595 có thể chạy trực tiếp bằng nguồn 9V cung cấp cho Arduino, nhưng việc này sẽ giới hạn dải nhiệt độ nó xuất ra. Căn cứ vào bảng dữ liệu của chip, việc sử dụng nguồn cấp điện với giá trị +15V sẽ cho phép chip đọc được đầy đủ dải nhiệt độ xuất ra từ cặp nhiệt điện. Tôi mua một nguồn 18V. Tuy nhiên, dùng một nguồn 15V có vẻ tốt hơn vì sau đó bộ Arduino và AD595 có thể được cấp chung nguồn (đầu vào cho Arduino tốt nhất nên ở trong dải 6 – 16V).

Hình trên biểu thị sơ đồ cài đặt của một mạch PCB cho chip AD595. Bảng mạch được thiết kế bằng phần mềm Eagle. Nhấn vào đây để tải tệp PCB về. Một đèn LED nguồn thể hiện trạng thái, và một đèn LED báo lỗi sẽ tắt nếu chip hay cặp nhiệt gặp vấn đề. Đầu nối của cặp nhiệt điện được nối với chân 1 và 14 (cặp nhiệt điện được chia 2 cực bằng màu vàng = dương và đỏ = âm). Tín hiệu lấy ra từ chân 8 và 9. Tôi sử dụng 2 điểm nối đất vì nó cho phép tôi có một điểm tiếp đất chung giữa hai mạch điện Arduino và AD595.

Khi chạy thử lần đầu bộ điều khiển nhiệt độ, tôi nhận thấy rằng nó hoạt động ổn với các ứng dụng nhiệt độ thấp, nhưng không hoạt động với các ứng dụng ở nhiệt độ cao. Hình trên thể hiện bộ điều khiển đã làm việc rất tốt khi điều khiển một tấm nung đã được gắn vào bộ điều khiển. Một thiết bị LabPro với đầu dò nhiệt độ bằng thép không gỉ được sử dụng để hiển thị nhiệt độ thực của tấm nung. Hãy chú ý sự chênh lệch giữa dữ liệu của cặp nhiệt điện (đọc được tấm nung ~125°C) và LabPro (đọc được tấm nung ~113°C). Rõ ràng bộ điều khiển duy trì nhiệt độ tấm nung ở giá trị ban đầu (điểm đặt) của nó. Nhưng khi tôi thử chạy lò ở điểm đặt 700°C, lò nung nhanh chóng đạt tới nhiệt độ tối đa và giữ ở đó.

Sau một năm rời dự án này, tôi đã nghĩ cách để đo đầu ra của chip AD595 ở nhiều điểm nhiệt độ bằng cách dùng một đồng hồ vạn năng. Và so sánh nó với nhiệt độ mà Arduino đọc được. Tôi nhanh chong nhận rằng Arduino nhầm tưởng mọi giá trị trên 500°C vẫn là 500°C. Điều này giải thích tại sao điểm đặt trên 500 lại thất bại. Điều này hợp lý, đầu ra của AD595 xuất một tín hiệu tương tự (analog) sang Arduino. Arduino là thiết bị +5 V, nên mọi giá trị điện áp lớn hơn sẽ bị cắt xuống 5V. Mọi giá trị trên 500°C sẽ được xuất ra điện áp khoảng 5V nếu AD595 được sử dụng.

Để khắc phục vấn đề này, tôi lắp thêm vào một bộ chia áp. Điện áp tối đa từ AD595 sẽ là 12,5V nếu cặp nhiệt điện đo nhiệt độ giới hạn của nó ở 1250°C (đầu ra của AD595 là 40mV mỗi °C). Bộ chia áp sẽ giảm 12,5V xuống còn 5V để Arduino không tự cắt hết quả. Cần giảm 40% điện áp, nên tôi dùng một bộ chia áp có điện trở 220 Ohm và 330 Ohm với 60% điện áp (330/(220 + 330)) sẽ tự tiêu hao trên trở 330 Ohm.

Hình bên trên chụp một mạch AD595 cùng bộ chia áp. Cặp nhiệt điện gắn ở dưới.  

Nhiều hình ảnh của bộ điều nhiệt hoàn chỉnh được trình bày ở dưới. Cuối cùng tôi dùng một quạt và vài miếng tản nhiệt từ một bộ máy tính để làm mát rơ-le (nếu không rơ-le quá nóng sẽ làm nứt hộp nhựa trong acrylic). Tôi gắn bộ tản nhiệt lên mặt sau của rơle bằng đinh ốc và keo dẫn nhiệt.

 

Hộp này khá là đặc biệt và không trơn như trong dự án mới nhất của tôi. Nó được làm từ arcrylic cắt laser 1/8". Tôi đã cố đặc biệt chú ý tách mạch 120V AC cách ly khỏi mạch DC điện áp thấp. Tệp DXF sử dụng để tái tạo lại box được tải về ở dưới.

TẢI TỆP DXF THỨ 1

TẢI TỆP DXF THỨ 2

Lệnh (code) cho project này khá là dễ hiểu. Các bạn có thể tải lệnh ở định dạng của Arduino, hay xem qua đoạn lệnh trong tệp văn bản ở đây.

Khi bộ điều khiển làm việc có vẻ ổn định, tôi bắt đầu thử điều chỉnh nó. Đầu tiên tôi tìm cách để hiểu sự liên hệ giữa dữ liệu đọc từ cặp nhiệt điện của tôi với cặp nhiệt điện lắp sẵn của lò nung, và với các loại cặp nhiệt điện K nối với đồng hồ vạn năng khác.

Như bạn có thể thấy, cặp nhiệt điện Arduino luôn thu được dữ liệu nhiệt độ lớn hơn so với cặp nhiệt điện đồng hồ vạn năng hay cặp nhiệt điện lắp sẵn của lò. Thực tế, sự chênh lệch nhiệt độ khá lớn… gần tới 50oC giữa Arduino với loại lắp sẵn theo lò, và gần 90oC với loại cặp nhiệt điện K dùng đồng hồ vạn năng. Tôi thật sự không biết tại sao sự chênh lệch lại lớn như vậy. Tôi đã đặt tất cả các mỏm của cặp nhiệt điện ở cùng một khu vực trong lò. Đến lúc này tôi nhận thấy rất khó để điều khiển nhiệt độ chính xác và có thể tôi phải cần dùng một tới số loại đo kiểu nón nhiệt bức xạ. Dữ liệu hiệu chỉnh có thế được tải tại đây.

 

 

Cuối cùng, tôi chạy lò nung 2 lần để chứng minh bộ điều khiển sẽ hoạt động nếu tôi hiệu chỉnh trên toàn dải. Lần chạy đầu có điểm xác lập 500°C. Bộ hiển thị của lò hiện nhiệt độ “thật” là 450°C. Tệp excel của chương trình này có thể được tải ở đây. 

Lần chạy thứ 2, được biểu diễn ở dưới, được nâng nhiệt lên 300°C, giữ trong 1 giờ, rồi nâng lên 500°C, giữ trong 1 giờ nữa, rồi nâng tiếp lên 700°C, và giữ trong 1 tiếng rưỡi. Điểm đặt được dùng ở trong lệnh thật ra là 340, 560, và 760, dựa trên đường hiệu chỉnh ở trên, sẽ tương ứng với dữ liệu từ cặp nhiệt điện lắp sẵn theo lò ở 300, 500, và 700°C. Biểu đồ ở dưới biểu diễn dữ liệu của Arduino, và của loại lắp sẵn rất gần với 500 và 700 (tôi đã không kiểm tra cặp nhiệt điện lắp sẵn trong lò trong giờ đầu tiên). Tệp excel cho chương trình này có thể được tải ở đây.

 

Biên dịch từ: http://rampantrobots.blogspot.com/2012/12/thermocouple-controlled-furnace.html

Revision by Nguyễn Hoàng Việt, PhD

Tạ Quang Dũng
Author: Tạ Quang Dũng
About: Student, study Metallic Materials at School of Materials Science and Engineering, Hanoi UST

Donate

Donate using PayPal
Amount: