1. Trang chủ
  2. » Luận Văn - Báo Cáo

báo cáo bài tập cuối kỳ điều khiển nhiệt độ với nguồn 220vac

24 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Điều khiển Nhiệt độ với Nguồn 220VAC
Tác giả Hoàng Việt Long
Người hướng dẫn PGS.TS Nguyễn Hồng Quang
Trường học Trường Đại học Bách Khoa Hà Nội
Chuyên ngành Kỹ thuật điều khiển- tự động hóa
Thể loại Báo cáo bài tập cuối kỳ
Năm xuất bản 2022
Thành phố Hà Nội
Định dạng
Số trang 24
Dung lượng 5,86 MB

Nội dung

GIỚI THIỆU VỀ BỘ ĐIỀU KHIỂN NHIỆT ĐỘ1.1 Tổng quan bộ điều khiển nhiệt độ Bộ điều khiển nhiệt độ được sử dụng rộng rãi trong công nghiệp, có thể kểđến một số ứng dụng cụ thể như: lò sấy,

Trang 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

BÁO CÁO BÀI TẬP CUỐI KỲ ĐIỀU KHIỂN NHIỆT ĐỘ VỚI

NGUỒN 220VAC

HOÀNG VIỆT LONG

Long.hv181596@sis.hust.edu.vn

Ngành Kỹ thuật điều khiển- tự động hóa

Giảng viên hướng dẫn: PGS.TS Nguyễn Hồng Quang

HÀ NỘI, 03/2022

Chữ ký của GVHD

Trang 2

MỤC LỤC

CHƯƠNG 1 GIỚI THIỆU VỀ BỘ ĐIỀU KHIỂN NHIỆT ĐỘ 1

1.1 Tổng quan bộ điều khiển nhiệt độ 1

CHƯƠNG 2 BỘ ĐIỀU KHIỂN NHIỆT ĐỘ 3

2.1 Tổng quan module kit ARDUINO 3

2.1.1 Thông số của Arduino Uno R3 3

2.1.2 Sơ đồ các chân 3

2.1.3 Các cổng vào ra 4

2.2 Bộ phận cảm biến 4

2.2.1 Cảm biến nhiệt độ độ ẩm DHT11 5

2.3 Màn hình LCD 16x2 6

2.4 Một số các thiết bị khác 8

2.4.1 Mạch MOC3020 8

2.4.2 Cách ly quang EL817 9

CHƯƠNG 3 THIẾT KẾ HỆ THỐNG 10

3.1 Giao tiếp giữa Arduino với module cảm biến DHT11 10

3.2 Giao tiếp I2C LCD 10

3.3 Nguyên lí hoạt động 11

3.4 Sơ đồ tổng thể 12

CHƯƠNG 4 KẾT QUẢ MÔ PHỎNG 14

4.1 Kết quả 14

CHƯƠNG 5 KẾT LUẬN 15

5.1 Kết quả thu được 15

5.2 Hướng phát triển 15

Trang 3

DANH MỤC HÌNH VẼ

Hình 1.1 Bộ điều khiển nhiệt độ thương mại 1

Hình 1.3 Sơ đồ điều khiển vòng kín PID 2

Hình 2.1 Hình ảnh thực tế Arduino Uno R3 4

Hình 2.2 Hình ảnh thưc tế của DHT11 5

Hình 2.3 Sơ đồ kết nối 6

Hình 2.4 Màn hình LCD 16x2 7

Hình 2.5 Module I2C LCD 16×2 8

Hình 2.6 Sơ đồ chân mạch MOC3020 8

Hình 2.7 Sơ đồ chân của cách ly quang EL817 9

Hình 3.1 Sơ đồ nối dây Arduino với DHT11 10

Hình 3.2 Sơ đồ nối dây Arduino với DHT11 thực tế 10

Hình 3.3 Sơ đồ nối dây Module I2C LCD 16x2 với Arduino Uno R3 11

Hình 3.4 Sơ đồ gép nối vi điều khiển với module I2C LCD 16x2 11

Hình 3.5 Sơ đồ mạch phát hiện điểm không điện áp 12

Hình 3.6 Sơ đồ mạch mô phỏng 12

Hình 3.7 Sơ đồ mạch thực tế 13

Hình 4.1 Kết quả mô phỏng khí giá trị đặt là 300C 14

Hình 4.2 Kết quả mô phỏng khí giá trị đặt là 500C 14

Trang 4

CHƯƠNG 1 GIỚI THIỆU VỀ BỘ ĐIỀU KHIỂN NHIỆT ĐỘ 1.1 Tổng quan bộ điều khiển nhiệt độ

Bộ điều khiển nhiệt độ được sử dụng rộng rãi trong công nghiệp, có thể kểđến một số ứng dụng cụ thể như: lò sấy, lò ấp trứng, lò nướng, nồi hơi, hệ thống tạo độ ẩm, hệ thống khí nén Các chế độ điều khiển mà bộ điều khiển sử dụng có thể kể đến như: điều khiển van on off, điều khiển van tuyến tính, điều khiển PID, điều khiển ON OFF

Hình 1.1 Bộ điều khiển nhiệt độ thương mại

Ngoài ra với chế độ điều khiển PID Bộ điều khiển nhiệt độ sẻ điều khiển làm sao cho nhiệt độ hệ thống bằng với nhiệt độ cài đặt một cách nhanh nhất và chính xác nhất

Bộ điều khiển còn có thể điều khiển độ ẩm, áp suất, lưu lượng thông qua ngõ vào là tín hiệu 4-20mA hoặc 0-10 VDC, 0-5 VDC Tích hợp thêm các chức năng như cảnh báo nhiệt độ, đặt giá trị trực tiếp thông qua màn hình hiển thị, chế

độ tự chỉnh, chế độ thích nghi

1

Trang 5

Hình 1.2 Sơ đồ điều khiển vòng kín PIDVới ứng dụng điều khiển nhiệt độ, ta có tín hiệu đặt và tín hiệu phản hồi lànhiệt độ mong muốn và nhiệt độ thực tế Tín hiệu điều khiển đối tượng là giá trị góc mở cho triac Vì đối tượng của bài toán khó mô hình hóa nên sử dụng phương pháp nhận dạng để xác định hàm truyền của đối tượng là khâu quán tính bậc nhất Từ đó thiết kế ra các thông số của bộ PID.

2

Trang 6

CHƯƠNG 2 BỘ ĐIỀU KHIỂN NHIỆT ĐỘ

2.1 Tổng quan module kit ARDUINO

Do dịch bệnh nên nhóm em phải đặt mua kit STM32 và Stlink online và gặp vấn đề về drive cũng như phiên bản nên nhóm em không thể debug bằng STM32 được Vì vậy nên trong bài báo cáo này nhóm em sẽ sử dụng kit ARDUINO UNO R3

2.1.1 Thông số của Arduino Uno R3

Vi điều khiển Atmega328 họ 8 bit

Điện áp hoạt động 5V DC (chỉ được caaso qua cổng USB)Tần số hoạt động 16MHz

Điện áp vào khuyên dùng 7-12V DC

Điện áp giới hạn 6-20V DC

Số chân Digital I/O 14 ( 6 chân hardware PWM)

Số chân Analog 6 ( độ phân giải 10bit)

Dòng tối đa trên mỗi chân I/O 30mA

Số chân Tên chân Mô tả

1 GND Cực âm của nguồn điện cấp cho Arduino UNO

Khi dùng các thiết bị sử dụng những nguồn điện riêng biệt thì những chân này phải được nối với nhau

2 5V Cấp điện áp 5V đầu ra Dòng tối đa cho phép ở

chân này là 500mA

3 3.3V Cấp điện áp 3.3V đầu ra Dòng tối đa cho phép ở

chân này là 50mA

4 Vin Để cấp nguồn ngoài cho Arduino Uno, nối cực

dương của nguồn với chân này và cực âm của nguồn với chân GND

5 AREF Điện áp hoạt động của vi điều khiển trên Adruino

Uno có thể được đo ở chân này Và dĩ nhiên nó luôn là 5V Mặc dù vậy bạn không được lấy nguồn 5V từ chân này để sử dụng bởi chức năng của nó không phải là cấp nguồn

3

Trang 7

6 Reset Việc nhấn nút Reset trên board để reset vi điều

khiển tương đương với việc chân RESET được nối với GND qua 1 điện trở 10K

2.1.3 Các cổng vào ra

Hình 2.3 Hình ảnh thực tế Arduino Uno R3

Arduino UNO có 14 chân digital dùng để đọc hoặc xuất tín hiệu Chúng chỉ có

2 mức điện áp là 0V và 5V với dòng vào/ra tối đa trên mỗi chân là 40mA Ở mỗi chân đều có các điện trở pull-up từ được cài đặt ngay trong vi điều khiển ATmega328 (mặc định thì các điện trở này không được kết nối)

Một số chân digital có các chức năng đặc biệt như sau:

2 chân Serial 0 (RX) và 1 (TX): dùng để gửi (transmit – TX) và nhận

(receive – RX) dữ liệu TTL Serial Arduino Uno có thể giao tiếp với thiết bị khác thông qua 2 chân này Kết nối bluetooth thường thấy nói nôm na chính là kết nối Serial không dây Nếu không cần giao tiếp Serial, bạn không nên sử dụng 2 chân này nếu không cần thiết

Chân PWM Các chân 3, 5, 6, 9, 10, và 11 cho phép bạn xuất ra xung PWM

với độ phân giải 8bit (giá trị từ 0 → 28-1 tương ứng với 0V → 5V) bằng hàm analogWrite() Nói một cách đơn giản, bạn có thể điều chỉnh được điện áp ra ở chân này từ mức 0V đến 5V thay vì chỉ cố định ở mức 0V và 5V như những chân khác.Chân giao

tiếp SPI

2 (MISO), 13 (SCK) Ngoài các chức năng thông thường, 4 chân này còn dùng để truyền phát dữ liệu bằng giao thức SPI với các thiết bị khác

LED Trên Arduino UNO có 1 đèn led màu cam (kí hiệu chữ L) Khi

bấm nút Reset, bạn sẽ thấy đèn này nhấp nháy để báo hiệu Nó được nối với chân số 13 Khi chân này được người dùng sử dụng, LED sẽ sáng

2.2 Bộ phận cảm biến

4

Trang 8

2.2.1 Cảm biến nhiệt độ độ ẩm DHT11

Cảm biến DHT11 bao gồm một phần tử cảm biến độ ẩm điện dung và một điện trở nhiệt để cảm nhận nhiệt độ Tụ điện cảm biến độ ẩm có hai điện cực với chất nền giữ ẩm làm chất điện môi giữa chúng Thay đổi giá trị điện dung xảy ra với sự thay đổi của các mức độ ẩm IC đo, xử lý các giá trị điện trở đã thay đổi này và chuyển chúng thành dạng kỹ thuật số

Để đo nhiệt độ, cảm biến này sử dụng một nhiệt điện trở có hệ số nhiệt độ

âm, làm giảm giá trị điện trở của nó khi nhiệt độ tăng Để có được giá trị điện trở lớn hơn ngay cả đối với sự thay đổi nhỏ nhất của nhiệt độ, cảm biến này thường được làm bằng gốm bán dẫn hoặc polymer

2.2.1.1 Sơ đồ chân DHT11

Số chân Tên chân Mô tả

2 Data Đầu ra cả nhiệt độ và độ ẩm thông qua dữ liệu nối tiếp

3 NC Không có kết nối và do đó không sử dụng

Hình 2.4 Hình ảnh thưc tế của DHT112.2.1.2 Tính năng

Cảm biến nhiệt độ và độ ẩm 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 bạn có được dữ liệu chính xác mà không phải qua bất kỳ tính toán nào So với cảm biến đời mới hơn là DHT22 thì DHT11 cho khoảng đo và độ chính xác kém hơn rất nhiều

2.2.1.3 Thông số kỹ thuật DHT11

Điện áp hoạt động: 3V - 5V DC

Dòng điện tiêu thụ: 2.5mA

5

Trang 9

Phạm vi cảm biến độ ẩm: 20% - 90% RH, sai số ±5%RH

Phạm vi cảm biến nhiệt độ: 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: 23 * 12 * 5 mm

Hình 2.5 Sơ đồ kết nối2.2.1.4 Cách sử dụng cảm biến DHT11

Cảm biến DHT11 được hiệu chuẩn tại nhà máy và xuất dữ liệu nối tiếp, do

đó rất dễ thiết lập

Như bạn có thể thấy, chân dữ liệu được kết nối với chân I / O của vi điều khiển và một điện trở kéo lên 5K được sử dụng Chân dữ liệu này xuất ra giá trị của cả nhiệt độ và độ ẩm dưới dạng dữ liệu nối tiếp Nếu bạn đang muốn giao tiếp DHT11 với Arduino thì có các thư viện được tạo sẵn cho nó sẽ giúp bạn bắt đầu nhanh chóng

Nếu bạn đang giao tiếp nó với một số vi điều khiển khác thì datasheet được cung cấp bên dưới sẽ rất hữu ích Đầu ra được đưa ra bởi chân dữ liệu sẽ theo thứ tự là dữ liệu số nguyên độ ẩm 8 bit + 8 bit dữ liệu thập phân độ ẩm + dữ liệu số nguyên nhiệt độ 8 bit + dữ liệu nhiệt độ phân đoạn 8 bit + bit chẵn lẻ 8 bit Để yêu cầu module DHT11 gửi những dữ liệu này, chân I / O phải được đặt ởmức thấp trong giây lát và sau đó được giữ ở mức cao như trong biểu đồ thời gian bên dưới

Thời lượng của mỗi tín hiệu host được giải thích trong datasheet DHT11, với các bước và sơ đồ thời gian minh họa

Trang 10

LCD 16×2 có 16 chân trong đó 8 chân dữ liệu (D0 – D7) và 3 chân điều khiển (RS, RW, EN).

5 chân còn lại dùng để cấp nguồn và đèn nền cho LCD 16×2

Các chân điều khiển giúp ta dễ dàng cấu hình LCD ở chế độ lệnh hoặc chế

độ dữ liệu

Chúng còn giúp ta cấu hình ở chế độ đọc hoặc ghi

LCD 16×2 có thể sử dụng ở chế độ 4 bit hoặc 8 bit tùy theo ứng dụng ta đang làm

Hình 2.6 Màn hình LCD 16x2Module I2C

LCD có quá nhiều nhiều chân gây khó khăn trong quá trình đấu nối và chiếm dụng nhiều chân trên vi điều khiển

Module I2C LCD ra đời và giải quyết vấn để này cho bạn

Thay vì phải mất 6 chân vi điều khiển để kết nối với LCD 16×2 (RS, EN, D7, D6, D5 và D4) thì với module I2C, bạn chỉ cần tốn 2 chân (SCL, SDA) để kết nối

Module I2C hỗ trợ các loại LCD sử dụng driver HD44780(LCD 16×2, LCD 20×4, …) và tương thích với hầu hết các vi điều khiển hiện nay

7

Trang 11

Giao tiếp: I2C.

Địa chỉ mặc định: 0X27 (có thể điều chỉnh bằng ngắn mạch chân A0/A1/A2)

Tích hợp Jump chốt để cung cấp đèn cho LCD hoặc ngắt

Tích hợp biến trở xoay điều chỉnh độ tương phản cho LCD

2.4 Một số các thiết bị khác

2.4.1 Mạch MOC3020

Hình 2.8 Sơ đồ chân mạch MOC3020MOC3020 là một opto-coupler được thiết kế để giao tiếp giữa các điều khiển điện tử và TRIAC công suất để điều khiển tải điện trở và cảm ứng cho các hoạt động điện áp xoay chiều AC Nguyên tắc được sử dụng trong opto-coupler

là, MOC có sẵn ở dạng mạch tích hợp và không yêu cầu mạch quá phức tạp để

8

Trang 12

làm cho nó hoạt động Chỉ cần cung cấp một xung nhỏ vào đúng thời điểm cho LED trong gói Ánh sáng do LED tạo ra sẽ kích hoạt các đặc tính nhạy sáng của DIAC và nguồn được bật Sự cách ly giữa các mạch công suất thấp và công suất cao trong các thiết bị được kết nối quang học này thường là vài nghìn vôn.

2.4.2 Cách ly quang EL817

Hình 2.9 Sơ đồ chân của cách ly quang EL817

Cách ly dùng trong mạch nhận dạng điểm không, có tác dụng bảo vệ vi điều khiển

9

Trang 13

CHƯƠNG 3 THIẾT KẾ HỆ THỐNG

3.1 Giao tiếp giữa Arduino với module cảm biến DHT11

Sơ đồ đấu nối:

Hình 3.10 Sơ đồ nối dây Arduino với DHT11

Hình 3.11 Sơ đồ nối dây Arduino với DHT11 thực tế

3.2 Giao tiếp I2C LCD

Trang 14

Hình 3.12 Sơ đồ nối dây Module I2C LCD 16x2 với Arduino Uno R3

Hình 3.13 Sơ đồ gép nối vi điều khiển với module I2C LCD 16x2

3.3 Nguyên lí hoạt động

Mạch thiết kế này là mạch dùng để điều khiển nhiệt độ cho bóng đèn sợi đốt (220V/60W) dử dụng bộ PID Mạch điều khiển điều khiển nhiệt độ thông quađiện áp đưa vào đèn bằng việc điều khiển đóng mở TRIAC

Mạch sẽ thực hiện các công việc: phát hiện điểm cắt 0 của điện áp xoay chiều, tạo bộ điều khiển PID và thay đổi góc bắn ở cổng TRIAC, từ đó điều khiển nhiệt độ của đèn sợi đốt

Phát hiện điểm chuyển mạch tự nhiên

Điện áp hình sin 220V có tần số 50Hz, sau mỗi nửa chu kì, điện áp sẽ chuyển từ giá trị âm sang dương hoặc ngược lại, vậy nên sẽ có những thời điểm điện áp bằng 0 Khi điện áp bằng 0, nếu gửi một xung kích hoạt tới TRIAC, có thể kiểm soát lượng sóng sẽ truyền đi và lượng công suất Vì vậy cần phát hiện các điểm chuyển mạch tự nhiên để được đồng bộ hóa

Vì vậy, với bộ vi điều khiển cần phát hiện điểm chuyển mạch, ta sử dụng hai thành phần và đó là một bộ chỉnh lưu mạch cầu H và một bộ transistor Điều

11

Trang 15

này là cần thiết vì bộ vi điều khiển không thể hoạt động với điện áp âm và trên 5V Bộ chỉnh lưu mạch cầu H sẽ chỉ cho sóng dương và bộ transistor sẽ hạ điện

áp xuống 5Vpp Bây giờ chúng ta có thể đọc tín hiệu đó bằng Arduino

Hình 3.14 Sơ đồ mạch phát hiện điểm không điện áp

3.4 Sơ đồ tổng thể

Hình 3.15 Sơ đồ mạch mô phỏng

12

Trang 16

Hình 3.16 Sơ đồ mạch thực tế

13

Trang 17

CHƯƠNG 4 KẾT QUẢ MÔ PHỎNG

4.1 Kết quả

Kịch bản mô phỏng:

Thay đổi giá trị đặt nhiệt độ bằng phím bấm Đặt giá trị lần lượt là 30 C và0

50 C.0

Hình 4.17 Kết quả mô phỏng khí giá trị đặt là 30 C0

Hình 4.18 Kết quả mô phỏng khí giá trị đặt là 50 C0

Kết quả mô phỏng:

Nhiệt độ đo về bám với giá trị nhiệt độ đặt Thời gian đáp ứng nhỏ

14

Trang 18

CHƯƠNG 5 KẾT LUẬN 5.1 Kết quả thu được

Hiểu được quá trình thiết kế bộ điều khiển nhiệt độ

Có thể ứng dụng vào thực tế một cách dễ dàng giúp đo chính xác các nguồn nhiệt nhiệt độ cao

Giao diện điều khiển và giám sát dễ sử dụng, thân thiện người dùng

Do sự hạn chế về thời gian thực hiện, nguồn tài liệu tham khảo chủ yếu thông qua internet nên đề tài không tránh khỏi sai sót và còn một số hạn chế:

- Nhóm mới mô phỏng được trên phần mềm Proteus

- Mô hình mạch thực tế bị lỗi không chạy được

5.2 Hướng phát triển

Khắc phục lỗi và tìm hiểu nguyên nhân thực tế không chạy đượcThiết kế hệ thống sử dụng nhiều cảm biến đo nhiệt độ ở các điểm khác nhau

15

Trang 20

int firing_delay = 7400;

//////////////////////////////////////////////////////

int maximum_firing_delay = 7400;

/*Chon do tre toi da sau khi phat hien diem 0 la 7400

* Vi chung ta biet dien ap xoay chieu 220V co tan so khoang 50-60 Hz vi vay khoang thoi gian la 16ms den 20 ms

* Chung ta kiem soat trong nua chu ky la 8ms den 10ms

* De chac chan khog vuot qua 10ms thi 7400 us la gia tri thich hop*/

//////////////////////////////////////////////////////

unsigned long previousMillis = 0;

unsigned long currentMillis = 0;

int temp_read_Delay = 500;

int real_temperature = 0;

int setpoint = 30;

bool pressed_1 = false;

bool pressed_2 = false;

int kp = 203; int ki= 7.2; int kd = 1.04;

int PID_p = 0; int PID_i = 0; int PID_d = 0;

void setup() {

17

Trang 21

//Define the pins

lcd.init(); //Khoi dong giao tiep LCD

lcd.backlight(); //Bat den nen LCD

}

void loop() {

currentMillis = millis(); //Luu gia tri cua thoi gian truoc vong lap /* Doc nhiet do va thay doi gia tri "temp_read_Delay" */

if(currentMillis - previousMillis >= temp_read_Delay){

previousMillis += temp_read_Delay; //Tang thoi gian cho vong lap tiep theo

real_temperature = 2*dht.readTemperature(); //Doc nhiet do tu cam bien nhiet DHT

PID_error = setpoint - real_temperature; //Tinh toan PID_error

18

Trang 22

if(PID_error > 30) //Hang so tich phan I chi anh huong den sai so duoi 30ºC

{PID_i = 0;}

PID_p = kp * PID_error; //Tinh toan gia tri P

PID_i = PID_i + (ki * PID_error); //Tinh toan gia tri I

timePrev = Time;

Time = millis(); // Doc thoi gian thuc te

elapsedTime = (Time - timePrev) / 1000;

PID_d = kd*((PID_error - previous_error)/elapsedTime); //Tinh toan gia tri D PID_value = PID_p + PID_i + PID_d; //Tinh toan bo PID

//Pham vi tre trong khoang 0 den 7400

Trang 23

//neu phat hien diem 0 tao xung kich hoat 100us

if(PINB & B00000001){ //Xac minh D8 có o muc cao ko

if(last_CH1_state == 0){ //Neu trang thai cuoi la 0 can thay doi trang thai zero_cross_detected = true;

Ngày đăng: 11/06/2024, 17:41

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w