Tải bản đầy đủ (.doc) (35 trang)

Thiết kế hệ thống điều chỉnh cường độ ánh sáng trong nhà sử dụng thuật toán PID

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 (3.13 MB, 35 trang )

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG
KHOA CÔNG NGHỆ TỰ ĐỘNG HÓA

BÁO CÁO
MÔN: THIẾT KẾ HỆ THỐNG ĐIỆN - ĐIỆN TỬ
Đề tài: Thiết kế hệ thống điều chỉnh cường độ ánh sáng trong nhà
sử dụng thuật toán PID
Sinh viên thực hiện : Dương Văn Trình
Lớp

: KTĐ – ĐT K13A

Giáo viên hướng dẫn: Th.S Đặng Văn Ngọc

Thái Nguyên, năm 2018

1


LỜI NÓI ĐẦU
Trong thời đại công nghệ 4.0, nước ta có nhu cầu rất lớn về năng lượng để thúc
đẩy sự phát triển kinh tế, xã hội. Nguồn năng lượng có sẵn hiện nay không phải là
vô tận, hơn thế nữa Việt Nam còn nhiều hạn chế trong việc khai thác, chế biến và
phát triển các nguồn năng lượng mới thay cho nguồn năng lượng cũ( than, dầu mỏ).
Chúng ta đã, đang và sẽ tiếp tục phải bỏ ra một khoản chi phí lớn để nhập khẩu
năng lượng.
Những năm gần đây, chúng ta đã có nhiều giải pháp tiết kiệm năng lượng cho
các thiết bị, một trong số nhiều giải pháp đó là hệ thống tự động chiếu sáng được
ứng dụng, Trong đó, một vấn đề rất được quan tâm là làm sao để sử dụng hợp lý
công suất chiếu sáng phù hợp với từng nhu cầu chiếu sáng. Đặc biệt đối với chiếu
sáng ở các phòng học, phòng họp, gia đình, khác sạn.v.v. Nhưng ánh sáng còn chưa


được sử dụng hiệu quả dẫn tới thừa hoặc thiếu ánh sáng để sử dụng gây ra lãng phí
điện, có thể mắc một số bệnh về mắt do thiếu ánh sáng.
Lý do chọn đề tài : dựa vào quá trình khỏa sát việc sử dụng ánh sáng tại các
phòng học và các hộ gia đình chưa hợp lý và hiệu quả, thừa hoặc thiếu ánh sáng để
sử dụng gây ra lãng phí năng lượng nên em đã quyết định chọn đề tài “Thiết kế hệ
thống điều chỉnh cường độ ánh sáng trong phòng sử dụng thuật toán PID”.
Mục đích, yêu cầu của đề tài :
-

Xây dựng hệ thống tự động điều chỉnh ánh sáng trong phòng học để
đảm bảo độ sáng luôn đạt được độ rọi trong phòng là 500lux phù
hợp với chiếu sáng cho phòng học (theo tiêu chuẩn TCVN

-

7114:2002) .
Thiết kế mạch gọn nhẹ, đơn giản.
Đảm bảo độ tin cậy, chính xác thuận tiện cho người sử dụng.
Sử dụng thuật toán PID để ổn định cường độ ánh sáng.

Báo cáo này được trình bày thành 3 chương:
Chương 1: Cơ sở lý thuyết
Chương 2: Phân tích thiết kế hệ thống
Chương 3: Kết quả

2


LỜI CẢM ƠN
Đầu tiên em xin cảm ơn các ơn các thầy, cô giáo trong trường Đại học Công

nghệ thông tin và truyền thông nói chung, các thầy cô trong khoa Công nghệ tự
động hóa nói riêng đã tận tình hướng dẫn em trong quá trình làm thực tập,
Em xin gửi lời cảm ơn chân thành đến thầy Đặng Văn Ngọc, giảng viên khoa
Công Nghệ Tự Động Hóa, người đã tận tình hướng dẫn, chỉ bảo em trong suốt quá
trình em thực hiện đề tài thực tập chuyên ngành.
Do kiến thức của em còn chưa thực sự xuất sắc nên trong đề tài, em còn một
số sai sót và hạn chế, vậy nên em rất mong các thầy cô giúp đỡ, góp ý cho em để bài
báo cáo được hoàn thiện hơn. Một lần nữa em xin chân thành cảm ơn!
Sinh viên thực hiện

Dương Văn Trình

3


CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
1.1 Tổng quan về Arduino
1.1.1 Khái niệm
Arduino là một board mạch vi xử lý, nhằm xây dựng các ứng dụng tương tác
với nhau hoặc với môi trường được thuận lợi hơn. Phần cứng bao gồm một board
mạch nguồn mở được thiết kế trên nền tảng vi xử lý AVR Atmel 8bit, hoặc ARM
Atmel 32-bit. Những Model hiện tại được trang bị gồm 1 cổng giao tiếp USB, 6
chân đầu vào analog, 14 chân I/O kỹ thuật số tương thích với nhiều board mở rộng
khác nhau. Được giới thiệu vào năm 2005, Những nhà thiết kế của Arduino cố gắng
mang đến một phương thức dễ dàng, không tốn kém cho những người yêu thích,
sinh viên và giới chuyên nghiệp để tạo ra những nhiết bị có khả năng tương tác với
môi trường thông qua các cảm biến và các cơ cấu chấp hành. Những ví dụ phổ biến
cho những người yêu thích mới bắt đầu bao gồm các robot đơn giản, điều khiển
nhiệt độ và phát hiện chuyển động. Đi cùng với nó là một môi trường phát triển tích
hợp (IDE) chạy trên các máy tính cá nhân thông thường và cho phép người dùng

viết các chương trình cho Aduino bằng ngôn ngữ C hoặc C++.Các board Arduino có
thể được đặt hàng ở dạng được lắp sẵn hoặc dưới dạng các kit tự-làm-lấy. Thông tin
thiết kế phần cứng được cung cấp công khai để những ai muốn tự làm một mạch
Arduino bằng tay có thể tự mình thực hiện được (mã nguồn mở). Người ta ước tính
khoảng giữa năm 2011 có trên 300 ngàn mạch Arduino chính thức đã được sản xuất
thương mại, và vào năm 2013 có khoảng 700 ngàn mạch chính thức đã được đưa tới
tay người dùng.
1.1.2 Lịch sử phát triển
Arduino được khởi động vào năm 2005 như là một dự án dành cho sinh viên
trại Interaction Design Institute Ivrea (Viện thiết kế tương tác Ivrea) tại Ivrea, Italy.
Vào thời điểm đó các sinh viên sử dụng một "BASIC Stamp" (con tem Cơ Bản) có
giá khoảng $100. Massimo Banzi, một trong những người sáng lập, giảng dạy tại
Ivrea. Cái tên "Arduino" đến từ một quán bar tại Ivrea, nơi một vài nhà sáng lập của
dự án này thường xuyên gặp mặt. Bản thân quán bar này có được lấy tên là
Arduino, Bá tước của Ivrea, và là vua của Italy từ năm 1002 đến 1014.]

4


Lý thuyết phần cứng được đóng góp bởi một sinh viên người Colombia tên là
Hernando Barragan. Sau khi nền tảng Wiring hoàn thành, các nhà nghiên cứu đã
làm việc với nhau để giúp nó nhẹ hơn, rẻ hơn, và khả dụng đối với cộng đồng mã
nguồn mở. Trường này cuối cùng bị đóng cửa, vì vậy các nhà nghiên cứu, một trong
số đó là David Cuarlielles, đã phổ biến ý tưởng này.
1.1.3 Các dòng Arduino đã ra đời
Dựa vào mục đích sử dụng mà các dòng Arduino được chia ra với nhiều thiết
kế khác nhau với kết cấu phần cứng khác nhau để thực hiện tốt mục tiêu sử dụng
hướng tới. Ở đây chúng tôi sẽ liệt kê các dòng Arduino hiện hành mà không đi vào
chi tiết của từng dòng board Arduino , chỉ tập trung vào phân tích phần cứng của
Arduino Promini vì đây là board mà em hướng tới sử dụng.

Một số loại Arduino:
+Arduino Diecimila

+Arduino Duemilanove
+Arduino UNO
+Arduino Leonardo
+Arduino Mega
+Arduino Nano
+Arduino Due
+ Arduino Promini

Hinhh 1.1: Arduino Mega 2560 R3

5


Hình1.2: Arduino Nano
Đây là 2 dòng Arduino khá phổ biến sau Arduino promini vì độ ứng dụng
cao của chúng.
1.1.4 Phần mềm lập trình(Arduino IDE)
Môi trường phát triển tích hợp (IDE) của Arduino là một ứng dụng crossplatform (nền tảng) được viết bằng Java, và từ IDE này sẽ được sử dụng cho Ngôn
ngữ lập trình xử lý (Processing programming language) và project Wiring. Nó được
thiết kế để dành cho các nghệ sĩ và những người mới tập tành làm quen với lĩnh vực
phát triển phần mềm. Nó bao gồm một chương trình code editor với các chức năng
như đánh dấu cú pháp, tự động brace matching, và tự động canh lề, cũng như
compile(biên dịch) và upload chương trình lên board chỉ với 1 cú click chuột. Một
chương trình hoặc code viết cho Arduino được gọi là một Sketch.
Các chương trình Arduino được viết bằng C hoặc C++. Arduino IDE đi kèm
với một thư viện phần mềm được gọi là "Wiring", từ project Wiring gốc, có thể giúp
các thao tác input/output được dễ dàng hơn. Người dùng chỉ cần định nghĩa 2 hàm

để tạo ra một chương trình vòng thực thi (cyclic executive) có thể chạy được:
Setup(): hàm này chạy mỗi khi khởi động một chương trình, dùng để thiết lập các
cài đặt.
Loop(): hàm này được gọi lặp lại cho đến khi tắt nguồn board mạch.

6


Hình 1.3: Phần mềm Arduino IDE

Hình 1.4: Giao diện phần mềm Arduino IDE
Arduino IDE này sử dụng GNU toolchain và AVR Libc để biên dịch chương
trình, và sử dụng avrdude để upload chương trình lên board.
Để tạo một chương trình mới. Chọn File > New.
7


Trước khi bắt đầu thực hiện lập trình , nên thực hiện bước Save as lưu lại
chương trình tại thư mục mong muốn. Chương trình được lưu dưới dạng đuôi .ino
Sau khi thực hiện viết code cho chương trình , thực hiện bước Verify để
Arduino tạo ra một file .hex , file này giúp chúng ta nạp cho các vi điều khiển lúc
mô phỏng hoặc làm mạch ngoài thực tế. Ngoài ra chức năng Upload cũng giúp thực
hiện việc nạp chương trình vào Arduino nhanh chóng mà không cần phải tìm đến vị
trí của file .hex , bằng cách kết nối board Arduino theo cổng USB vào máy tính.
1.2 Tổng quan về cảm biến
1.2.1 Định nghĩa
Cảm biến là thiết bị điện tử cảm nhận những trạng thái hay quá trình vật
lý hay hóa học ở môi trường cần khảo sát, và biến đổi thành tín hiệu điện để thu
thập thông tin về trạng thái hay quá trình đó.
Có nhiều loại cảm biến khác nhau và có thể chia ra hai nhóm chính:

-

Cảm biến vật lý: sóng điện từ, ánh sáng, tử ngoại, hồng ngoại, tia X, tia
gamma, hạt bức xạ, nhiệt độ, áp suất, âm thanh, rung động, khoảng

cách, chuyển động, gia tốc, từ trường, trọng trường,...
- Cảm biến hóa học: độ ẩm, độ PH, các ion, hợp chất đặc hiệu, khói,...
1.2.2 Vai trò của cảm biến
Cảm biến có vai trò quan trọng trong các bài toán điều khiển quá trình nói
riêng và trong các hệ thống điều khiển tự động nói chung.
-

Là thiết bị có khả năng cảm nhận các tín hiệu điều khiển vào, ra.
Có vai trò đo đạc các giá trị.
Giới hạn cảm nhận với đại lượng vật lý cần đo.

1.2.3 Các đặc trưng của cảm biến
-

Độ nhạy: Gia số nhỏ nhất có thể phát hiện.
Mức tuyến tính: Khoảng giá trị được biến đổi có hệ số biến đổi cố định.
Dải biến đổi: Khoảng giá trị biến đổi sử dụng được.
Mức nhiễu ồn: Tiếng ồn riêng và ảnh hưởng của tác nhân khác lên kết

-

quả.
Sai số xác định: Phụ thuộc độ nhạy và mức nhiễu.
Độ trôi: Sự thay đổi tham số theo thời gian phục vụ hoặc thời gian tồn tại.
Độ trễ: Mức độ đáp ứng với thay đổi của quá trình.

Độ tin cậy: Khả năng làm việc ổn định, chịu những biến động lớn của

-

môi trường.
Điều kiện môi trường: Dải nhiệt độ, độ ẩm, áp suất,... làm việc được.
8


1.3 Tổng quan về một số link kiện khác
1.3.1 Biến trở
Biến trở là các thiết bị có điện trở thuần có thể biến đổi được theo ý muốn.
Chúng có thể được sử dụng trong các mạch điện để điều chỉnh hoạt động của mạch
điện. Điện trở của thiết bị có thể được thay đổi bằng cách thay đổi chiều dài của dây
dẫn điện trong thiết bị, hoặc bằng các tác động khác như nhiệt độ thay đổi, ánh sáng
hoặc bức xạ điện từ.

Hình1.5 Biến trở
1.3.2 Cách ly quang
Photocoupler hay phần tử cách ly quang (Opto- Isolator), hay Optocoupler, là
một phần tử bán dẫn thực hiện truyền tín hiệu giữa hai phần mạch bị cách ly với
nhau về điện bằng cách sử dụng ánh sáng. Cách ly bằng ghép quang học cho phép
tránh được sự xâm nhập điện áp cao tới hệ thống thu nhận tín hiệu.

Hình 1.6 Một số loại cách ly quang
1.3.3 Điện trở
Điện trở là một linh kiện điện tử thụ động gồm 2 tiếp điểm kết nối, thường
được dùng để hạn chế cường độ dòng điện chảy trong mạch, điều chỉnh mức độ tín
hiệu, dùng để chia điện áp, kích hoạt các linh kiện điện tử chủ động như transistor,
9



tiếp điểm cuối trong đường truyền điện và có trong rất nhiều ứng dụng khác. Điện
trở là loại linh kiện phổ biến trong mạng lưới điện, các mạch điện tử, Điện trở thực
tế có thể được cấu tạo từ nhiều thành phần riêng rẽ và có nhiều hình dạng khác
nhau, ngoài ra điện trở còn có thể tích hợp trong các vi mạch IC.

Hình 1.7 Điện trở

10


CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ HỆ THỐNG
2.1 Đặc tả yêu cầu
Quá trình khảo sát ánh sáng tại phòng học của mình em thu được kết quả như sau:
+ Nếu bật hết đèn đóng cửa lại: 430lux ± 20lux
+ Nếu mở hết cửa, đèn tắt hết, trời nắng: 550lux ± 10 lux
+ Nếu mở hết cửa, đèn tắt hết, trời không nắng: 350lux ± 30 lux
+ Nếu mở hết cửa, đèn bật hết, trời nắng: 600lux ± 15 lux
+ Nếu mở hết cửa, đèn bật hết, trời không nắng: 500lux ±10 lux
Một số yêu cầu từ người sử dụng:
+ Độ sáng phù hợp mắt người sử dụng.
+ Ánh sáng luôn được ổn định không nhấp nháy gây khó chịu cho mắt.
+ Khi ánh sáng ngoài trời đủ với yêu cầu thì đèn tắt.
Vấn đề mà hệ thống đèn phòng học chưa đáp ứng được không tự điều chỉnh
được ánh sáng theo yêu cầu.
Một số yêu cầu từ thiết bị:
+ Điều khiển tắt đèn khi ánh sáng ngoài trời đủ với yêu cầu (500lux).
+ Thiết bị gọn nhẹ dễ sử dụng.
+ Đảm bảo độ tin cậy với người sử dụng.

2.2 Sơ đồ khối

Hình 2.1 Sơ đồ khối

11


Chức năng của các khối:
• Khối cảm biến: Khối cảm biến có nhiệm vụ thu thập dữ liệu tín hiệu và
đưa điều khiển xuống cho khối xử lý trung tâm
• Khối xử lý trung tâm: khối xử lý trung tâm làm nhiệm vụ nhận tín hiệu từ
khối cảm biến, xử lý tín hiệu điều khiển khối cơ cấu chấp hành.
• Khối cơ cấu chấp hành: khối này có nhiệm vụ thực hiện lệnh điều khiển
từ vi điều khiển để điều khiển thiết bị.
• Khối nguồn: Khối nguồn có nhiệm vụ cung cấp nguồn cho toàn bộ hệ
thống
• Khối hiển thị: Khối này có chức năng hiển thị thông số của đối tượng đo
giúp tăng khả năng giao tiếp giữa người với hệ thống.
2.3 Phân tích và thiết kế hệ thống
2.3.1 Khối xử lý trung tâm
Khối xử lý trung tâm làm nhiệm vụ nhận tín hiệu từ khối cảm biến, xử lý tín
hiệu điều khiển khối cơ cấu chấp hành. Hiện nay trên thị trường có các loại vi điều
khiển phổ biến sau:
 Arduino nano
• Ưu điểm:
- Arduino bao gồm một vi điều khiển AVR với nhiều linh kiện bổ
-

sung giúp dễ dàng lập trình.
Dễ tiếp cận với người sử dụng, có sẵn các lỗ cắm, tích hợp sẵn


-

mạch nạp, các cổng giao tiếp .
Có tích hợp ADC và các tính năng cao cấp khác.
Arduino hỗ trợ một hệ thống thư viện cực kì mở, cực kỳ phong
phú và mạnh mẽ, gần như bạn sẽ không bao giờ cần phải tự viết

-

thư viện cho arduino.
Thiết kế nhỏ gọn.

 8051
• Ưu điểm
- Giá thành rẻ.
- Nhỏ gọn, mã lệnh ASM đơn giản trực quan dễ hiểu dễ học, chạy
-

ổn định.
Vi điều khiển họ 8051 mang cấu trúc CSIC nên sẽ tiết kiệm năng

lượng.
• Nhược điểm:
12


-

Ít các chức năng bên trong như các dòng chip mới.

Tính năng ADC rất quan trong, có mặt trong hầu hết các ứng dụng
cũng không được tích hợp vào 8051, Do vậy nếu dùng 8051 phải
dùng thêm ADC ngoài nếu ứng dụng của bạn dùng đến ADC =>
thiết kế board phức tạp, tốn công hơn, lập trình dài dòng hơn.

 PIC
• Ưu điểm:
- Nhiều ngoại vi hơn, có tích hợp ADC 10 bit, PWM 10 bit và các
-

tính năng cao cấp khác, có nhiều loại để lựa chọn.
Tích hợp chuẩn công nghiệp PI thích hợp sử dụng trong công

-

nghiệp.
Ngôn ngữ lập trình đa dạng ngoài Asembly còn hỗ trợ sử dụng
ngôn ngữ C (CCSC, HTPIC), sử dụng Basic thì có MirkoBasic,

MPLAB IDE.
- Chế độ sleep tiết kiệm năg lượng.
• Nhược điểm:
- Mạch nạp chính hãng giá thành cao.
 Do ưu điểm của Arduno vượt trội hơn hẳn nên ta sử dụng Arduino Nano
2.3.2 Khối cảm biến
Khối cảm biến có nhiệm vụ thu thập dữ liệu tín hiệu ánh sáng và đưa điều
khiển xuống cho khối xử lý trung tâm. Hiện nay trên thị trường có các loại cảm biến
cường độ ánh sáng phổ biến sau:
 TSL2561
• Ưu điểm:

- Là một cảm biến ánh sáng cực kì nhạy.
- Cảm biến có thể bắt được cả hồng ngoại và ánh sáng, độ nhạy xấp
-

xỉ mắt của con người.
TSL2561 có khả năng giao tiếp I2C trực tiếp.
Độ ổn định và độ chính xác cao.
Cảm biến có ADC nội và bộ tiền xử lý nên giá trị được trả ra là giá
trị trực tiếp cường độ ánh sáng lux mà không phải qua bất kỳ xử

lý hay tính toán nào thông qua giao tiếp I2C .
• Giá thành khá đắt.
 BH1750
• Ưu điểm:
- Chuyển từ tín hiệu ánh sáng sang kỹ thuật số.
- Nhận tín hiệu trong phạm vi rộng với độ phân giải cao: từ 165535lx.
13


- Tiêu thụ điện năng rất thấp nhờ tính năng tự ngắt.
- Tính năng giảm nhiễu ánh sáng 50Hz/60Hz.
- Giao diện I2C.
- Không yêu cầu phụ kiện bổ sung ngoài.
- Có thể lựa chọn 2 kiểu I2C slave-address.
 Quang Trở
• Ưu điểm
- Độ nhạy có thể tùy chỉnh.
- Thiết kế đơn giản.
- Độ nhiễu thấp do được thiết kế mạch lọc tín hiệu trước khi so sánh
với ngưỡng.

 Do ưu điểm vượt trội của BH1750 nên ta sử dụng BH1750

2.3.3 Sơ đồ nguyên lý
2.3.3.1 Sơ đồ tổng quát hệ thống

Hình 2.2 Sơ đồ tổng quát hệ thống
2.3.3.2 Arduino Nano
Arduino Nano nhỏ gọn, đầy đủ và tiện dụng khi sử dụng. Arduino Nano sử
dụng chip Atmega328-AU nên còn có thêm 2 chân Analog A6 và A7 mà các Board
sử dụng Chip cắm không hề có. Trên Board tích hợp Opamp tự động chuyển nguồn
14


khi có điện áp cao hơn vào Board nên Board không cần sử dụng công tắc chọn
nguồn. Trên board Arduino Nano sử dụng chíp chuyển COM To UART là Chip
FTDI FT232RL chứ không dùng chip giả lập COM như các Board Arduino khác, vì
vậy việc truyền UART sẽ đơn giản hơn so với các Board dùng Chip giả lập COM.
Arduino Nano thiếu Jack nguồn ngoài, việc cấp nguồn ngoài có thể được thực hiện
thông qua chân Vin và chân GND (nếu nguồn từ 6 đến 20V) hoặc chân GND và
chân 5V (nếu nguồn cấp là 5V chuẩn). Chân 5V trong Arduino Nano vừa là chân
5V lấy nguồn ra, vừa có thể là chân 5V cấp nguồn vào.

Hình 2.3 Arduino Nano
Thông số kỹ thuật :
+ IC chính: Atmega328P-AU.
+ IC nạp và giao tiếp UART: CH340.
+ Điện áp hoạt động: 5V.
+ Điện áp đầu vào (khuyên dùng): 7-12V.
+ Điện áp đầu vào (giới hạn): 6-20V.
+ Mức điện áp GPIO: TTL 5VDC.

+ Dòng GPIO: 40mA.
+ Số chân Digital: 14 chân, trong đó 6 châ PWM.
+ Số chân Analog: 8 chân.
+ Flash Memory: 32 KB (ATmega328) với 2KB dùng cho bootloader.
+ SRAM: 2 KB (ATmega328).
+ EEPROM: 1 KB (ATmega328).
+ Clock Speed: 16 MHz.
Các chân input và output:

15


+ Arduino nano: 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.
+ Chân nối tiếp bao gồm 2 chân: 0(RX) và 1 ( TX) được sử dụng để nhận và
truyền dữ liệu nối tiếp (TX) TTL.
+ Chân ngắt ngoài: chân 2 và chân 3 cả hai chân có thể được sử dụng để cho
phép ngắt. Sử dụng hàm attachInterrupt ().
+ Chân PWM (~): 3, 5, 6, 9, 10, và 11: cho phép xuất ra xung PWM.
+ Chân giao tiếp SPI: 10 (SS), 11 (MOSI), 12 (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.
+ Arduino Nano: có 8 chân analog (A0 → A7) cung cấp độ phân giải tín hiệu
10bit ( 1024 giá trị khác nhau).
+ I2C: chân A4 (SDA) và A5 (SCL) hỗ trợ giao tiếp I2C/TWI với các thiết bị
khác.

2.3.3.3 BH1750
Khái niệm
Cảm biến cường độ ánh sáng BH1750 được sử dụng để đo cường độ ánh sáng

theo đơn vị lux, cảm biến có ADC nội và bộ tiền xử lý nên giá trị được trả ra là giá
trị trực tiếp cường độ ánh sáng lux mà không phải qua bất kỳ xử lý hay tính toán
nào thông qua giao tiếp I2C.

Hình 2.4 BH1750
Thông số:
+ Nguồn: 3~5VDC.
16


+ Giao tiếp: I2C.
+ Khoảng đo: 1 -> 65535 lux.
+ Kích cỡ: 21*16*3.3mm.
+ Độ phân giải: 16bit.
BH1750 có các ưu điểm sau:
+ Chuyển từ tín hiệu ánh sáng sang kỹ thuật số.
+ Nhận tín hiệu trong phạm vi rộng với độ phân giải cao: từ 1-65535lx.
+ Tiêu thụ điện năng rất thấp nhờ tính năng tự ngắt.
+ Tính năng giảm nhiễu ánh sáng 50Hz/60Hz.
+ Giao diện I2C.
+ Không yêu cầu phụ kiện bổ sung ngoài.
+ Có thể lựa chọn 2 kiểu I2C slave-address.

Hình 2.5 Sơ đồ khối của BH1750
Trong đó:
PD : photo diode.
AMP: Intergration-OPAMP(chuyển đổi từ dòng PD sang điện áp).
Logic+I2C Interface.
OSC : Internal Oscillator ( thông thường 320kHz).
2.3.3.4 PC817

Khái niệm
Opto PC817 là cách ly quang (hay còn gọi là OPTO) là một linh kiện bán dẫn
cấu tạo gồm 1 bộ phát quang và một cảm biến quang tích hợp trong 1 khối bán dẫn.
17


Bộ phát quang là 1 Doide phát quang dùng để phát ra ánh sáng kích cho các cảm
biến quang dẫn, còn cảm biến quang là Photo Transistor.

Hình 2.6 PC817

Nguyên lý hoạt động :
Khi có dòng nhỏ di qua 2 đầu của led có trong opto làm cho led phát sáng.
Khi led phát sáng làm thông 2 cực của photo diot, mở cho dòng điện chạy qua.
Cấu tạo:
+ Chân 1: Anode
+ Chân 2: Cathode
+ Chân 3: Emitter-Phát
+ Chân 4: Collector -Thu
Opto PC817 có hai thành phần bao gồm đèn LED (chân 1 , 2) và photo
transistor ( chân 3,4).
Tính năng:
Opto PC817 được dùng để cách ly giữa các khối chênh lệch nhau về điện hay
công suất như khối có công suất nhỏ với khối điện áp lớn. Hoặc có thể dùng để
chống nhiễu cho các mạch cầu H, ngõ ra PLC, chống nhiễu cho các thiết bị đo
lường.
Thông số kỹ thuật :
+ Điện áp hoạt động: 5V.
+ Dòng : 5mA.
2.3.3.5 MOC3021

18


Khái niệm:
MOC3021 là cách ly quang (hay còn gọi là OPTO) là một linh kiện bán dẫn
cấu tạo gồm 1 bộ phát quang và một cảm biến quang tích hợp trong 1 khối bán dẫn.
bộ phát quang là 1 doide phát quang dùng để phát ra ánh sáng kích cho các cảm
biến quang dẫn, còn cảm biến quang là triac.

Hình 2.7 MOC3021
Cấu tạo:

Hình 2.8: cấu tạo MOC3021
Chức năng:
Nhận tín hiệu của vi điều khiển cách ly cao áp kích mở vào chân g của triac.
Thông số kỹ thuật :
-

Điện áp ngược max VRRM (V): 3V.

-

Dòng vào IF (mA): 60mA.

-

Điện áp ngõ ra ở trạng thái ngắt VDRM (V): 400V.

-


Dòng ngõ ra Io (A): 1A.

2.3.3.6 Triac BTA16
Khái niệm:
Triac BTA16 - 600B là một linh kiện bán dẫn có ba cực năm lớp, làm việc
như 2 Thyristor mắc song song ngược chiều, có thể dẫn điện theo hai chiều. Triac
19


BTA16 có thể chịu được điện áp cực đại đạt lên đến 600V cho cả chiều thuận và
chiều nghịch. Dải nhiệt độ làm việc rộng từ -40oC cho tới 125oC. Triac BTA16
thích hợp sử dụng trong các mạch chuyển đổi AC. Chúng có thể được sử dụng cảm
ứng khởi động động cơ mạch, bộ điều khiển tốc độ động cơ.

Hình 2.9 Triac BTA16
Cấu tạo:

Hình 2.10: Cấu tạo triac BTA16
Triac là một linh kiện bán dẫn có ba cực năm lớp, làm việc như 2 Thyristor
mắc song song ngược chiều, có thể dẫn điện theo hai chiều.
Thông số kỹ thuật:
+ Điện áp cực đại: 600V.
+ Dòng điện thuận cực đại: 16A.
+ Điện áp điều khiển mở van: 1.5V.
+ Dòng điều khiển mở van: 100mA.
+ Nhiệt độ làm việc: -40oC ~ 125oC.
2.3.3.7 Biến trở

20



Biến trở là các thiết bị có điện trở thuần có thể biến đổi được theo ý muốn.
Chúng có thể được sử dụng trong các mạch điện để điều chỉnh hoạt động của mạch
điện. Điện trở của thiết bị có thể được thay đổi bằng cách thay đổi chiều dài của dây
dẫn điện trong thiết bị, hoặc bằng các tác động khác như nhiệt độ thay đổi, ánh sáng
hoặc bức xạ điện từ.

Hình 2.11 Biến trở
2.3.3.8 LCD 16x2
Là loại màn hình tinh thể lỏng dùng để hiển thị các dòng chữ hoặc số trong
bản mã ASCII. LCD được chia thành từng ô và ứng với mỗi ô chỉ có thể hiển thị
một ký tự.

Hình 2.12 LCD16x2
Thông số kỹ thuật:
+ Điện áp MAX : 7V.
+ Điện áp MIN : -0,3V.
+ Hoạt động ổn định : 2.7-5.5V.
+ Điện áp ra mức cao : > 2.4V.
21


+ Điện áp ra mức thấp : <0.4V.
+ Dòng điện cấp nguồn : 350uA - 600uA.
+ Nhiệt độ hoạt động : -30 - 75 độ C.
Chức năng của từng chân như sau :
+ Chân số 1 - VSS : Chân nối đất cho LCD, khi thiết kế mạch ta nối chân này
với GND của mạch điều khiển
+ Chân số 2 - VDD : Chân cấp nguồn cho LCD, khi thiết kế mạch ta nối chân
này với VCC=5V của mạch điều khiển

+ Chân số 3 - VE : Điều chỉnh độ tương phản của LCD.
+ Chân số 4 - RS : Chân chọn thanh ghi . Nối chân RS với logic "0" hoặc logic
"1" để chọn thanh ghi
+ Logic “0”: Bus DB0-DB7 sẽ nối với thanh ghi lệnh IR của LCD (ở chế độ
“ghi” - write) hoặc nối với bộ đếm địa chỉ của LCD (ở chế độ “đọc” - read)
+ Logic “1”: Bus DB0-DB7 sẽ nối với thanh ghi dữ liệu DR bên trong LCD.
+ Chân số 5 - R/W : Chân chọn chế độ đọc/ghi (Read/Write). Nối chân R/W
với logic “0” để LCD hoạt động ở chế độ ghi, hoặc nối với logic “1” để LCD ở chế
độ đọc.
+ Chân số 6 - E : Chân cho phép (Enable). Sau khi các tín hiệu được đặt lên
bus DB0-DB7, các lệnh chỉ được chấp nhận khi có 1 xung cho phép của chân E.
+ Ở chế độ ghi: Dữ liệu ở bus sẽ được LCD chuyển vào(chấp nhận) thanh ghi
bên trong nó khi phát hiện một xung (high-to-low transition) của tín hiệu chân E.
+ Ở chế độ đọc: Dữ liệu sẽ được LCD xuất ra DB0-DB7 khi phát hiện cạnh
lên (low-to-high transition) ở chân E và được LCD giữ ở bus đến khi nào chân E
xuống mức thấp.
+ Chân số 7 đến Chân sô 14 - D0 đến D7 : Tám đường của bus dữ liệu dùng
để trao đổi thông tin với MPU.
+ Chân số 15 - A : Nguồn dương cho đèn nền .
22


+ Chân số 16 - K : Nguồn âm cho đèn nền.
2.3.4 Tổng quan về PID
Một bộ điều khiển vi tích phân tỉ lệ (bộ điều khiển PID- Proportional Integral
Derivative) là một cơ chế phản hồi vòng điều khiển (bộ điều khiển) tổng quát được
sử dụng rộng rãi trong các hệ thống điều khiển công nghiệp – bộ điều khiển PID là
bộ điều khiển được sử dụng nhiều nhất trong các bộ điều khiển phản hồi. Bộ điều
khiển PID sẽ tính toán giá trị "sai số" là hiệu số giữa giá trị đo thông số biến đổi
và giá trị đặt mong muốn. Bộ điều khiển sẽ thực hiện giảm tối đa sai số bằng cách

điều chỉnh giá trị điều khiển đầu vào. Trong trường hợp không có kiến thức cơ bản
(mô hình toán học) về hệ thống điều khiển thì bộ điều khiển PID là sẽ bộ điều khiển
tốt nhất. Tuy nhiên, để đạt được kết quả tốt nhất, các thông số PID sử dụng trong
tính toán phải điều chỉnh theo tính chất của hệ thống- trong khi kiểu điều khiển là
giống nhau, các thông số phải phụ thuộc vào đặc thù của hệ thống.

Hình 2.13: Sơ đồ khối của bộ điều khiển PID
Giải thuật tính toán bộ điều khiển PID bao gồm 3 thông số riêng biệt, do đó
đôi khi nó còn được gọi là điều khiển ba khâu: các giá trị tỉ lệ, tích phân và đạo
hàm, viết tắt là P, I, và D. Giá trị tỉ lệ xác định tác động của sai số hiện tại, giá
trị tích phân xác định tác động của tổng các sai số quá khứ, và giá trị vi phân xác
định tác động của tốc độ biến đổi sai số. Tổng chập của ba tác động này dùng để
điều chỉnh quá trình thông qua một phần tử điều khiển như vị trí của van điều khiển
hay bộ nguồn của phần tử gia nhiệt. Nhờ vậy, những giá trị này có thể làm sáng tỏ
về quan hệ thời gian: P phụ thuộc vào sai số hiện tại, I phụ thuộc vào tích lũy các
sai số quá khứ, và D dự đoán các sai số tương lai, dựa vào tốc độ thay đổi hiện tại.
23


Bằng cách điều chỉnh 3 hằng số trong giải thuật của bộ điều khiển PID, bộ điều
khiển có thể dùng trong những thiết kế có yêu cầu đặc biệt. Đáp ứng của bộ điều
khiển có thể được mô tả dưới dạng độ nhạy sai số của bộ điều khiển, giá trị mà bộ
điều khiển vọt lố điểm đặt và giá trị dao động của hệ thống. Lưu ý là công dụng của
giải thuật PID trong điều khiển không đảm bảo tính tối ưu hoặc ổn định cho hệ
thống.
Vài ứng dụng có thể yêu cầu chỉ sử dụng một hoặc hai khâu tùy theo hệ thống.
Điều này đạt được bằng cách thiết đặt đội lợi của các đầu ra không mong muốn về
0. Một bộ điều khiển PID sẽ được gọi là bộ điều khiển PI, PD, P hoặc I nếu vắng
mặt các tác động bị khuyết. Bộ điều khiển PI khá phổ biến, do đáp ứng vi phân khá
nhạy đối với các nhiễu đo lường, trái lại nếu thiếu giá trị tích phân có thể khiến hệ

thống không đạt được giá trị mong muốn.
Khâu tỉ lệ, tích phân, vi phân được cộng lại với nhau để tính toán đầu ra của
bộ điều khiển PID. Định nghĩa rằng là đầu ra của bộ điều khiển, biểu thức cuối
cùng của giải thuật PID là:
U(t)= MV(t)= Kpe(t)+ Ki
Trong đó các thông số điều chỉnh là:
Độ lợi tỉ lệ: Giá trị càng lớn thì đáp ứng càng nhanh do đó sai số càng lớn,
bù khâu tỉ lệ càng lớn. Một giá trị độ lợi tỉ lệ quá lớn sẽ dẫn đến quá trình mất ổn
định và dao động.
Độ lợi tích phân: Giá trị càng lớn kéo theo sai số ổn định bị khử càng nhanh.
Đổi lại là độ vọt lố càng lớn: bất kỳ sai số âm nào được tích phân trong suốt đáp
ứng quá độ phải được triệt tiêu tích phân bằng sai số dương trước khi tiến tới trạng
thái ổn định.
Độ lợi vi phân: Giá trị càng lớn càng giảm độ vọt lố, nhưng lại làm chậm đáp
ứng quá độ và có thể dẫn đến mất ổn định do khuếch đại nhiễu tín hiệu trong phép
vi phân sai số.
 Sơ đồ nguyên lý

24


Hình 2.14 Sơ đồ nguyên lý

Nguyên lý hoạt động:
Đầu tiên ta cấp nguồn cho toàn bộ hệ thống, cảm biến cường độ ánh sáng
bh1750 sẽ đo cường độ ánh sáng bên ngoài và gửi mức điện áp về Arduino. Arduino
đọc giá trị cường độ ánh sáng gửi tin hiệu điều khiển đến moc3021 đóng triac cấp
điện vào cho bóng đèn.
2.3.5 Lưu đồ thuật toán


25


×