Tải bản đầy đủ (.pdf) (24 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (5.86 MB, 24 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

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

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

<b>NGUỒN 220VAC</b>

<b>HOÀNG VIỆT LONG</b>

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

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

<b>HÀ NỘI, 03/2022</b>

<small> Chữ ký của GVHD</small>

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

<b>MỤC LỤC</b>

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

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

<b>CHƯƠNG 2. BỘ ĐIỀU KHIỂN NHIỆT ĐỘ...3</b>

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

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

<b>DANH MỤC HÌNH VẼ</b>

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à 30<small>0</small>C...14

Hình 4.2 Kết quả mơ phỏng khí giá trị đặt là 50<small>0</small>C...14

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

<b>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>

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

Ngồ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

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="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 tố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

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

<b>CHƯƠNG 2. BỘ ĐIỀU KHIỂN NHIỆT ĐỘ2.1 Tổng quan module kit ARDUINO</b>

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

<b>2.1.1Thông số của Arduino Uno R3</b>

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

<b>2.1.2Sơ đồ các chân </b>

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ó ln 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

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="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

<b>2.1.3Các cổng vào ra </b>

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). Ngồ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.

<b>2.2 Bộ phận cảm biến</b>

4

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

<b>2.2.1Cảm biến nhiệt độ độ ẩm DHT11</b>

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

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="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.

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="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ó q nhiều nhiều chân gây khó khăn trong q 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

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="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.

<b>2.4 Một số các thiết bị khác2.4.1Mạch MOC3020</b>

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

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="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.

<b>2.4.2Cách ly quang EL817</b>

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

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

<b>CHƯƠNG 3. THIẾT KẾ HỆ THỐNG3.1 Giao tiếp giữa Arduino với module cảm biến DHT11</b>

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ế

<b>3.2 Giao tiếp I2C LCD</b>

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="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

<b>3.3 Nguyên lí hoạt động</b>

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 số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

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="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

<b>3.4 Sơ đồ tổng thể</b>

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

12

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">

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

13

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">

<b>CHƯƠNG 4. KẾT QUẢ MÔ PHỎNG4.1 Kết quả</b>

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à<small>0</small>50 C.<small>0</small>

Hình 4.17 Kết quả mơ phỏng khí giá trị đặt là 30 C<small>0</small>

Hình 4.18 Kết quả mơ phỏng khí giá trị đặt là 50 C<small>0</small>

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

</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">

<b>CHƯƠNG 5. KẾT LUẬN5.1 Kết quả thu được</b>

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.

<b>5.2 Hướng phát triển</b>

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

</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">

<b>PHỤ LỤC</b>

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

</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="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;

</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="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

</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="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

</div>

×