1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Báo cáo thực tập Điều khiển tự Động hóa hệ thống Điện công nghiệp tuần 3 dùng lm35 Đo nhiệt Độ môi trường và hiển thị trên màn hình lcd

12 7 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 đề Dùng LM35 Đo Nhiệt Độ Môi Trường Và Hiển Thị Trên Màn Hình LCD
Tác giả Đinh Đức Cường, Phùng Phú Đại, Bạch Ngọc Thành
Người hướng dẫn PGS.TS Trương Việt Anh
Trường học Trường Đại Học Sư Phạm Kỹ Thuật TP.HCM
Chuyên ngành Điện-Điện Tử
Thể loại báo cáo thực tập
Thành phố TP.HCM
Định dạng
Số trang 12
Dung lượng 726,92 KB

Nội dung

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM KHOA ĐIỆN- ĐIỆN TỬ BÁO CÁO THỰC TẬP ĐIỀU KHIỂN TỰ ĐỘNG HÓA HỆ THỐNG ĐIỆN CÔNG NGHIỆP Tuần 3: Dùng LM35 đo nhiệt độ môi trườn

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM

KHOA ĐIỆN- ĐIỆN TỬ

BÁO CÁO THỰC TẬP ĐIỀU KHIỂN TỰ ĐỘNG HÓA

HỆ THỐNG ĐIỆN CÔNG NGHIỆP Tuần 3: Dùng LM35 đo nhiệt độ môi trường và hiển thị trên màn 

hình LCD.

Giáo viên : PGS.TS Trương Việt Anh

Nhóm : 2 SVTH : Đinh Đức Cường 21142500 Phùng Phú Đại 21142511 Bạch Ngọc Thành 21142174 Thứ 7 tiết 7-12 nhóm 19 CLC

Trang 2

MỤC LỤC

Nhiệm vụ 1: Lập trình cho hệ thống dùng LM35 đo nhiệt độ môi trường và

hiển thị trên màn hình LCD, mô phỏng thí nghiệm trong Proteus 2

Các bước thực hiện 3

- Bước 1: Xây dựng mô hình phần cứng mô phỏng trong Protues 3

- Bước 2: Viết chương trình 3

Giải thích chương trình 4

- Bước 3: Kiểm tra code, nạp chương trình và mô phỏng 6

Nhiệm vụ 2: Trả lời các câu hỏi trắc nghiệm và tự luận 6

Câu hỏi tự luận 6

Câu 1: Phân tích cách xử lý và hiệu chỉnh tín hiệu đầu ra từ LM35 để hiển thị nhiệt độ chính xác trên màn hình LCD Hãy đề xuất phương pháp lập trình tối ưu để giảm thiểu sai số đo lường 6

Câu 2: Giải thích tại sao chúng ta cần sử dụng thư viện LCD cho Arduino? Hãy so sánh việc sử dụng thư viện LCD với việc viết trực tiếp các lệnh điều khiển màn hình LCD 7

Câu 3: Mô tả cách thực hiện và phân tích kết quả của việc hiệu chỉnh (calibration) hệ thống đo nhiệt độ bằng LM35 trong Proteus, đặc biệt khi mô phỏng trong các điều kiện nhiệt độ khác nhau Làm thế nào để đối chiếu kết quả mô phỏng với thực tế? 8

Câu 4: Xây dựng một hệ thống báo động trong mô phỏng Proteus sử dụng Arduino, LM35 và LCD, khi nhiệt độ vượt quá ngưỡng cho phép Giải thích chi tiết về cách tích hợp và lập trình để đảm bảo hệ thống hoạt động chính xác và nhanh chóng phát hiện nhiệt độ nguy hiểm 9

Câu hỏi trắc nghiệm 9

Trang 3

Nhóm 2 – Lớp chiều thứ 7

Nhiệm vụ 1: Lập trình cho hệ thống dùng LM35 đo nhiệt

độ môi trường và hiển thị trên màn hình LCD, mô phỏng thí nghiệm trong Proteus. 

Yêu cầu: Kết nối LCD vào các chân D2,3,4,5,11,12 của arduino Cảm biến LM35 được kết nối với chân A0 của arduino, một nút nhấn được kết nối với chân D8 để chuyển đơn vị của nhiệt độ Viết chương trình thực hiện các yêu cầu sau: 

- Hiển thị giá trị nhiệt độ đo được từ cảm biến LM35 lên màn hình LCD với quy ước:  dòng 1 hiển thị giá trị XXoC, dòng 2 hiển thị giá trị nhiệt độ cao, ví dụ nhiệt độ hiện tại là 26oC sau 1 khoảng thời gian nhiệt độ tăng đột ngột lên 30oC thì LCD sẽ hiển thị và lưu giá trị nhiệt độ cao nhất từng đo được ở dạng

H=XXoC, và tương tự với nhiệt độ thấp L=XXoC. 

- Nút nhấn kết nối với chân D8 thực hiện công việc chuyển đổi đơn vị từ độ C sang độ F khi được nhấn. 

Các bước thực hiện

- Bước 1: Xây dựng mô hình phần cứng mô phỏng trong Protues

Trang 4

- Bước 2: Viết chương trình

Trang 5

Giải thích chương trình

Chương trình được mô tả kiểm tra và hiển thị nhiệt độ từ cảm biến LM35 thông qua màn hình LCD và Serial Monitor trên Arduino Nhiệt độ có thể hiển thị bằng độ C hoặc độ F và người dùng có thể chuyển đổi giữa hai đơn vị bằng cách nhấn nút

Tổng quan chương trình:

Cảm biến LM35 đo nhiệt độ môi trường và đưa ra tín hiệu điện áp tuyến

tính với nhiệt độ, với tỉ lệ 10mV/°C

Arduino sử dụng bộ chuyển đổi ADC (Analog to Digital Converter) để

đọc giá trị điện áp từ LM35 và tính toán nhiệt độ dựa trên công thức chuyển đổi

Màn hình LCD hiển thị nhiệt độ, và Serial Monitor có thể được dùng để

theo dõi kết quả tương tự

 Người dùng có thể nhấn nút để thay đổi đơn vị đo từ độ C sang độ F hoặc ngược lại

Thư viện và chân kết nối:

 #include <LiquidCrystal.h>: Thư viện điều khiển màn hình LCD

 LiquidCrystal lcd(12, 11, 5, 4, 3, 2);: Thiết lập các chân kết nối LCD

 Các biến maxC, minC, maxF, minF được dùng để lưu giá trị nhiệt độ lớn nhất và nhỏ nhất cho cả hai đơn vị

 ButtonPin=8: Chân kết nối nút nhấn để chuyển đổi giữa độ C và độ F

Trang 6

Cài đặt trong hàm setup():

 analogReference(INTERNAL);: Đặt điện áp tham chiếu cho bộ chuyển đổi ADC bên trong Arduino là 1,1V Điều này giúp tăng độ chính xác khi

đo những điện áp thấp, như điện áp ngõ ra của LM35

Tính toán nhiệt độ:

LM35 cho tín hiệu 10mV tương ứng với 1°C.

 Bộ ADC của Arduino có độ phân giải 10 bit, nghĩa là giá trị đo sẽ nằm trong khoảng từ 0 đến 1023 tương ứng với điện áp từ 0 đến 1,1V (nếu tham chiếu nội được sử dụng)

 Công thức tính toán nhiệt độ từ giá trị ADC:

Với 1,1V điện áp tham chiếu và 1024 mức của ADC, mỗi đơn vị của ADC tương ứng với điện áp là 1.1 / 1024 = 0.00107421875 V

LM35 xuất ra điện áp 10mV/°C, do đó ta cần chia kết quả đọc từ ADC cho 0.01

để tính nhiệt độ Điều này dẫn đến hệ số chuyển đổi là 0.10742188 °C/ADC đơn vị

Trong chương trình, phép tính nhiệt độ được thực hiện bằng công thức:

int tempC = sensorValue * 0.10742188; // Tính độ C

Để chuyển từ độ C sang độ F, công thức chuyển đổi là:

float tempF = (tempC * 1.8) + 32; // Tính độ F

Điều khiển hiển thị:

 Nhiệt độ sẽ được hiển thị trên LCD và có thể được chuyển đổi giữa độ C

và độ F khi nhấn nút Việc kiểm tra trạng thái nút và chuyển đổi đơn vị đo được thực hiện trong hàm loop()

Tóm lại:

Chương trình này đọc giá trị từ cảm biến LM35, chuyển đổi thành nhiệt độ, và hiển thị trên màn hình LCD với khả năng chuyển đổi giữa độ C và độ F khi nhấn nút.

Trang 7

- Bước 3: Kiểm tra code, nạp chương trình và mô phỏng

Nhiệm vụ 2: Trả lời các câu hỏi trắc nghiệm và tự luận Câu hỏi tự luận

Câu 1: Phân tích cách xử lý và hiệu chỉnh tín hiệu đầu ra từ LM35 để hiển thị nhiệt độ chính xác trên màn hình LCD Hãy đề xuất phương pháp lập trình tối ưu để giảm thiểu sai số đo lường.

Trả Lời:

Để xử lý và hiệu chỉnh tín hiệu từ LM35, ta dùng bộ chuyển đổi ADC của vi điều khiển để đọc tín hiệu điện áp tương ứng với nhiệt độ Sau khi đọc giá trị ADC, ta tính toán nhiệt độ dựa trên công thức T= ADC value × Vref

1024 ×0.01 , với Vref là điện áp tham chiếu Để giảm thiểu sai số, có thể lấy trung bình nhiều lần đo, hiệu chỉnh điện áp tham chiếu để đảm bảo ổn định, và bù sai số nếu cần Cuối cùng, nhiệt độ tính toán được hiển thị lên màn hình LCD

Để giảm sai số, có thể:

- Lấy trung bình nhiều lần đọc để giảm nhiễu

Trang 8

- Hiệu chỉnh điện áp tham chiếu để đảm bảo độ chính xác.

- Bù sai số nếu có lệch cố định

- Tăng độ phân giải ADC để đo chính xác hơn

-Câu 2: Giải thích tại sao chúng ta cần sử dụng thư viện LCD cho Arduino? Hãy so sánh việc sử dụng thư viện LCD với việc viết trực tiếp các lệnh điều khiển màn hình LCD.

Trả lời:

Chúng ta cần sử dụng thư viện LCD cho Arduino để đơn giản hóa quá trình giao tiếp và điều khiển màn hình LCD Thư viện này cung cấp các hàm có sẵn như lcd.begin(), lcd.print() để dễ dàng khởi tạo và hiển thị dữ liệu mà không cần hiểu sâu về cách hoạt động của các chân và lệnh điều khiển phức tạp của LCD

So sánh:

Sử dụng thư viện LCD: Giúp việc lập trình nhanh chóng, dễ sử dụng, và giảm bớt lỗi do người dùng không cần viết mã điều khiển chi tiết cho các chân kết nối hay lệnh LCD Thư viện cũng hỗ trợ nhiều loại màn hình khác nhau mà không cần thay đổi nhiều trong mã

Viết trực tiếp lệnh điều khiển LCD: Đòi hỏi người lập trình phải hiểu rõ cấu trúc

dữ liệu, cách điều khiển từng chân (như RS, RW, E, và các chân dữ liệu), và các lệnh nội bộ của LCD Việc này tốn thời gian, dễ xảy ra lỗi và không tối ưu nếu chỉ thực hiện các tác vụ đơn giản như in văn bản

Tóm lại, thư viện LCD giúp đơn giản hóa và tiết kiệm thời gian trong khi vẫn đảm bảo tính linh hoạt và độ chính xác khi làm việc với màn hình LCD trên Arduino

Câu 3: Mô tả cách thực hiện và phân tích kết quả của việc hiệu chỉnh

(calibration) hệ thống đo nhiệt độ bằng LM35 trong Proteus, đặc biệt khi

mô phỏng trong các điều kiện nhiệt độ khác nhau Làm thế nào để đối chiếu kết quả mô phỏng với thực tế?

Trả lời:

Cách thực hiện hiệu chỉnh hệ thống đo nhiệt độ bằng LM35 trong Proteus:

- Thiết kế mạch mô phỏng:

Sử dụng phần mềm Proteus để tạo mạch với LM35, vi điều khiển (như Arduino), và màn hình LCD để hiển thị nhiệt độ Kết nối chân Vout của LM35

Trang 9

với chân đầu vào analog của vi điều khiển và kết nối LCD với các chân kỹ thuật số

- Cấu hình mô phỏng nhiệt độ:

Trong Proteus, có thể thay đổi giá trị nhiệt độ đầu vào của LM35 để mô phỏng các điều kiện nhiệt độ khác nhau Proteus cho phép bạn nhập các giá trị nhiệt độ

để thấy sự thay đổi của tín hiệu đầu ra từ LM35, và từ đó nhiệt độ sẽ hiển thị trên LCD

- Lập trình Arduino (hoặc vi điều khiển):

Viết chương trình đọc tín hiệu từ LM35 thông qua ADC, tính toán nhiệt độ từ giá trị ADC, và hiển thị kết quả trên LCD Để đảm bảo độ chính xác, có thể sử dụng kỹ thuật lấy trung bình nhiều lần đọc (filtering)

- Hiệu chỉnh (calibration):

So sánh giá trị nhiệt độ đọc được trên LCD với giá trị nhiệt độ đầu vào đã cấu hình trong Proteus Nếu có sự sai lệch, cần điều chỉnh công thức tính toán, điện

áp tham chiếu, hoặc thêm hệ số bù để đạt độ chính xác cao hơn

Phân tích kết quả:

Khi thay đổi nhiệt độ mô phỏng trong Proteus, quan sát sự thay đổi của giá trị nhiệt độ hiển thị trên màn hình LCD Nếu kết quả hiển thị không đúng với nhiệt

độ đã cấu hình, hệ thống có thể cần hiệu chỉnh lại bằng cách thay đổi các thông

số tính toán hoặc thêm bù nhiệt độ

Ví dụ, nếu bạn cấu hình nhiệt độ đầu vào là 25°C nhưng trên LCD hiển thị 24°C, có thể có sự sai lệch từ bộ chuyển đổi ADC, điện áp tham chiếu không chính xác, hoặc do các yếu tố mô phỏng Việc bù sai số có thể được thực hiện bằng cách điều chỉnh công thức trong mã lập trình, ví dụ thêm hệ số bù

Đối chiếu kết quả mô phỏng với thực tế:

- So sánh kết quả mô phỏng với cảm biến thật: Sau khi hoàn thành mô phỏng, bạn có thể đối chiếu kết quả bằng cách xây dựng hệ thống thực tế với các thành phần tương tự (LM35, Arduino, LCD) và thực hiện phép đo nhiệt độ trong các điều kiện khác nhau

- Kiểm tra sai số thực tế: Trong điều kiện thực tế, các yếu tố môi trường (như dao động điện áp, nhiệt độ không đều) có thể gây ra sai số lớn hơn

so với trong mô phỏng Vì Proteus không hoàn toàn mô phỏng được các yếu tố như nhiễu tín hiệu hoặc biến động điện áp, kết quả trong thực tế có thể khác biệt

Trang 10

- Hiệu chỉnh thực tế: Nếu sai số giữa mô phỏng và thực tế khác biệt lớn, cần điều chỉnh hệ số bù và các thông số tính toán theo các giá trị đo lường thực tế từ hệ thống thực

Tóm lại, mô phỏng trong Proteus giúp dự đoán được hiệu suất của hệ thống đo nhiệt độ, nhưng để đạt được kết quả chính xác nhất, cần đối chiếu và hiệu chỉnh thêm khi triển khai hệ thống thực tế

Câu 4: Xây dựng một hệ thống báo động trong mô phỏng Proteus sử dụng Arduino, LM35 và LCD, khi nhiệt độ vượt quá ngưỡng cho phép Giải thích chi tiết về cách tích hợp và lập trình để đảm bảo hệ thống hoạt động chính xác và nhanh chóng phát hiện nhiệt độ nguy hiểm.

Trả lời:

Để tạo hệ thống báo động nhiệt độ bằng LM35, Arduino và LCD trong Proteus,

ta thực hiện các bước sau:

- Thiết kế mạch: Kết nối LM35 với chân analog của Arduino để đo nhiệt

độ, LCD để hiển thị và buzzer để cảnh báo

- Lập trình: Đọc giá trị từ LM35, chuyển đổi sang nhiệt độ, hiển thị trên LCD và kiểm tra ngưỡng Nếu nhiệt độ vượt ngưỡng (ví dụ 30°C), bật buzzer và hiển thị cảnh báo trên LCD, nếu dưới ngưỡng thì tắt buzzer

- Mô phỏng: Thay đổi nhiệt độ trong Proteus để kiểm tra chức năng báo động và hiển thị trên LCD

- Đối chiếu thực tế: Hệ thống có thể được triển khai thực tế để đo nhiệt độ môi trường và phát hiện tình trạng nhiệt độ vượt ngưỡng

Câu hỏi trắc nghiệm

Câu hỏi 1: Cảm biến LM35 cung cấp tín hiệu ra dạng gì?

A Tín hiệu số

B Tín hiệu analog

C Tín hiệu PWM

D Tín hiệu I2C

Câu hỏi 2: Chân nào của Arduino thường được sử dụng để đọc giá trị analog từ cảm biến LM35?

A Các chân digital (2-13)

Trang 11

C Chân GND

D Chân 5V

Câu hỏi 3: Thư viện nào thường được sử dụng để điều khiển màn hình LCD 16x2 trên Arduino?

A LiquidCrystal

B Servo

C Wire

D SD

Câu hỏi 4: Làm thế nào để cải thiện độ chính xác của hệ thống đo nhiệt độ sử dụng LM35 và Arduino trong mô phỏng Proteus?

A Sử dụng điện trở cao hơn cho LM35

B Tăng tần số đọc dữ liệu từ LM35

C Sử dụng bộ lọc số để giảm nhiễu tín hiệu ADC

D Thay đổi tần số xung nhịp của Arduino

Câu hỏi 5: Trong phần mềm Proteus, thành phần nào được sử dụng để mô phỏng màn hình LCD 16x2?

A LCD

B Text

C LED

D 7-segment

Câu hỏi 6: Để tăng độ chính xác của phép đo nhiệt độ, ta có thể làm gì?

A Tăng điện áp cung cấp cho LM35

B Giảm điện áp cung cấp cho LM35

C Hiệu chỉnh cảm biến bằng cách đo một giá trị nhiệt độ chuẩn

D Thay đổi giá trị tham chiếu của ADC

Câu hỏi 7: Nếu muốn hiển thị nhiệt độ với độ phân giải cao hơn, ta nên làm gì?

A Tăng tần số làm việc của Arduino

B Sử dụng cảm biến nhiệt độ có độ phân giải cao hơn

C Tăng số lần đọc giá trị từ cảm biến

Trang 12

D Cả B và C

Câu hỏi 8: Để tạo ngưỡng cảnh báo khi nhiệt độ vượt quá một giá trị nhất định,

ta cần sử dụng cấu trúc điều khiển nào?

A if else

B for

C while

D switch case

Câu hỏi 9: Khi mô phỏng trên Proteus, tại sao giá trị nhiệt độ hiển thị trên LCD lại khác với giá trị đo được trong thực tế?

A Do sai số của cảm biến

B Do sai số của mạch điện

C Do sai số của phần mềm mô phỏng

D Tất cả các yếu tố trên

Câu hỏi 10: Để nâng cao tính ổn định của hệ thống, ta có thể thực hiện biện pháp nào?

A Lọc nhiễu cho tín hiệu analog

B Tăng tốc độ làm việc của Arduino

C Giảm tần số làm tươi màn hình LCD

D Cả A và C

Ngày đăng: 29/11/2024, 12:06

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w