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

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

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

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

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.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 PID

Vớ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.1Thô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

Dòng ra tối đa (5V) 500 mADòng ra tối đa (3.3 V) 50 mA

Bộ nhớ flash 32Kb ( Atmega328) với 0.5KB dùng bởi bootloader

2.1.2Sơ đồ các chân

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 AdruinoUno 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.3Cá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.1Cả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 DHT11Số chân Tên chân Mô tả

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 DCDò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%RHPhạm vi cảm biến nhiệt độ: 0°C ~ 50°C, sai số ±2°CTầ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

Hình 2.7 Module I2C LCD 16×2Ưu điểm

Tiết kiệm chân cho vi điều khiển.Dễ dàng kết nối với LCD.Thông số kĩ thuật

Điện áp hoạt động: 2.5-6V DC.

Hỗ trợ màn hình: LCD16x2,16x4,20x4 (driver HD44780).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ác2.4.1Mạch MOC3020

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

MOC3020 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.2Cá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ỐNG3.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ỎNG4.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à050 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ẬN5.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 19

PHỤ LỤC

Code vi điều khiển:

#include "DHT.h"#include <Wire.h>

#include <LiquidCrystal_I2C.h>LiquidCrystal_I2C lcd(0x27,20,4);

/* i2c LCD Module ==> Arduino * SCL ==> A5 * SDA ==> A4 * Vcc ==> Vcc (5v) * Gnd ==> Gnd */

//Inputs and outputsint firing_pin = 3;int increase_pin = 11;int decrease_pin = 12;int zero_cross = 8;

const int DHTPIN = 2; //Đọc dữ liệu từ DHT11 ở chân 2 trên mạch Arduinoconst int DHTTYPE = DHT11; //Khai báo loại cảm biến, có 2 loại là DHT11 và DHT22

DHT dht(DHTPIN, DHTTYPE);

int last_CH1_state = 0;bool zero_cross_detected = false;

16

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;

//PID variablesfloat PID_error = 0;float previous_error = 0;

float elapsedTime, Time, timePrev;int PID_value = 0;

Trang 21

//Define the pins

pinMode (firing_pin,OUTPUT); pinMode (zero_cross,INPUT); pinMode (increase_pin,INPUT); pinMode (decrease_pin,INPUT);

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 if(PID_value < 0)

{ PID_value = 0; } if(PID_value > 7400) { PID_value = 7400; } //In cac gia tri len man hinh LCD lcd.clear();

lcd.setCursor(0,0); lcd.print("Set: "); lcd.setCursor(5,0); lcd.print(setpoint); lcd.setCursor(0,1); lcd.print("Real temp: "); lcd.setCursor(11,1); lcd.print(real_temperature);

previous_error = PID_error; //Nho gia tri truoc do }

19

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