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

tìm hiểu và phát triển mạch điều khiển điện xoay chiều cho nhà thông minh

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 (934.05 KB, 15 trang )

TRƯỜNG ĐẠI HỌC BÁCH KHOA TPHCM
KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH

BÁO CÁO ĐỒ ÁN
NGÀNH KỸ THUẬT MÁY TÍNH

TÌM HIỂU VÀ PHÁT TRIỂN MẠCH ĐIỀU KHIỂN
ĐIỆN XOAY CHIỀU CHO NHÀ THÔNG MINH
Cán bộ hướng dẫn : Kỹ sư Nguyễn Duy Xuân Bách
Thành viên nhóm : Nguyễn Văn Hưng
Nguyễn Thuận
Phạm Thế Tư

50901113
50902673
50903215


Tổng quan đề tài

I.

Nội dung của đề tài là một phần của dự án xây dựng hệ thống Nhà thông minh SmartHome. Hệ thống hướng đến mục tiêu tự động hóa và điều khiển thông minh
tất cả các thiết bị điện dùng trong nhà để đem đến sự tiện lợi nhất cho người chủ
nhà, đồng thời cũng thực hiện việc tiết kiệm và tối ưu năng lượng sử dụng.
Đề tài nhóm thực hiện sẽ tập trung và việc điều khiển (gồm thao tác đóng, mở, tăng
giảm cường độ, đo thông số) của các thiết bị điện xoay chiều sử dụng trong nhà.
Nhóm sẽ sử dụng mạch điện có vi điều khiển, có thể nhận lệnh từ người dùng/hoặc
một hệ thống điều khiển khác để thực hiện các thao tác trên.

II.







Mục tiêu đề tài

Điều khiển được thao tác đóng, mở thiết bị điện xoay chiều.
Kiểm soát việc đóng, mở bằng vi điều khiển theo kịch bản định trước.
Đo được thông số của dòng điện đang sử dụng, hiển thị trên màn hình.
Hoạt động tốt với nhiều thiết bị sử dụng cùng lúc.

III. Chức năng
Đóng và ngắt được thiết bị điện xoay chiều
Đo cường độ dòng điện xoay chiều của tải
Dùng phím nhấn bật/tắt thiết bị
Hiển thị trang thái thiết bị sử dụng trên màn hình LCD
Giao tiếp UART với máy tính và module khác.


IV. Thiết kế tổng quan

Nội dung thực hiện đề tài sẽ gồm 2 module rời nhau là module điều khiển thực
hiện chức năng điều khiển trực tiếp và module xoay chiều:
Module điều khiển:
Nhóm sẽ sử dụng board điều khiển có sẵn vi điều khiển ATMega-64 và các
module phụ khác như LCD hiển thị, phím bấm, UART giao tiếp với máy tính…
Module xoay chiều:
Trong module này, nhóm sử dụng MOC điều khiển TRIAC trực tiếp đóng hoặc mở
mạch điện xoay chiều. Bên cạnh đó, cảm biến dòng TL78 được dùng để đo dòng

điện cảm ứng của mạch xoay chiều, từ đó trả về giá trị của cường độ dòng điện
xoay chiều cho module điều khiển.


V. Tìm hiểu linh kiện
1. TRIAC

tắt của Triode for Alternating Current) là phần tử bán dẫn gồm năm
lớp bán dẫn, tạo nên cấu trúc p-n-p- theo cả hai chiều giữa các cực Anode 1 và 2,
do đó có thể dẫn dòng theo cả hai chiều. Để điều khiển Triac ta chỉ cần cấp xung
cho chân Gate của Triac.
TRIAC (viết

2. MOC

MOC là linh kiện điện tử cũng gồm các phần tử bán dẫn, đóng vai trò như là một
linh kiện đệm, nhận tín hiệu điều khiển từ vi điều khiển, và thực hiện đóng hoặc
mở TRIAC.
Mạch điện kết hợp hai linh kiện MOC và TRIAC để điều khiển dòng xoay chiều có
dạng như sau:


Tín hiệu
điều khiển

Mạch
xoay chiều

3. Board điều khiển AVR
Vi điều khiển AVR – ATmega64


AVR là một họ vi điều khiển do hãng Atmel sản xuất (Atmel cũng là nhà sản xuất
dòng vi điều khiển 89C51 quen thuộc). AVR là chip vi điều khiển 8 bits với cấu
trúc tập lệnh đơn giản hóa-RISC(Reduced Instruction Set Computer), một kiểu cấu
trúc đang thể hiện ưu thế trong các bộ xử lí.
So với các chip vi điều khiển 8 bit khác, AVR có nhiều đặc tính hơn hẳn, hơn cả
trong tính ứng dụng (dễ sử dụng) và đặc biệt là về chức năng:
 Gần như chúng ta không cần mắc thêm bất kỳ linh kiện phụ nào khi sử dụng
AVR, thậm chí không cần nguồn tạo xung clock cho chip (thường là các
khối thạch anh).
 Thiết bị lập trình (mạch nạp) cho AVR rất đơn giản, có loại mạch nạp chỉ
cần vài điện trở là có thể làm được. một số AVR còn hỗ trợ lập trình on –
chip bằng bootloader không cần mạch nạp…
 Có thể sử dụng xung clock lên đến 16MHz, hoặc sử dụng xung clock nội lên
đến 8 MHz (sai số 3%)
 Bộ nhớ chương trình Flash có thể lập trình lại rất nhiều lần và dung lượng
lớn, có SRAM (Ram tĩnh) lớn, và đặc biệt có bộ nhớ lưu trữ lập trình được
EEPROM.
 Nhiều ngõ vào ra (I/O PORT) 2 hướng (bi-directional).
 8 bit, 16 bit timer/counter tích hợp PWM.
 Các bộ chuyển đổi Analog – Digital phân giải 10 bit, nhiều kênh.
 Chức năng Analog comparator.
 Giao diện nối tiếp USART (tương thích chuẩn nối tiếp RS-232).
 Giao diện nối tiếp Two –Wire –Serial (tương thích chuẩn I2C) Master và
Slaver.






Giao diện nối tiếp Serial Peripheral Interface (SPI)


Board điều khiển AVR

Đây là board điều khiển đa chức năng được thiết kế bởi Câu lạc bộ Phần cứng Khoa KH&KT Máy Tính – Đại học Bách Khoa TP. HCM

Board có rất nhiều chức năng và module khác nhau, nhưng trong khuôn khổ đồ án
này, nhóm sử dụng 4 module chính sau:
Module Input-Output

Vi điều khiển sẽ xuất tín hiệu điều khiển qua cổng Output4 của board để thực hiện
điều khiển đến module xoay chiều.
Vi điều khiển cũng nhận tín hiệu ADC trả về từ module xoay chiều thông qua công
ADC của board.
Các hàm thực hiện điều khiển output và nhận input này đều đã được hiện thực
trước, nhóm có nhiệm vụ đọc hiểu và sử dụng lại phù hợp với ứng dụng của mình.
Module ADC – Analog to Digital Conversion

Chip AVR ATmega64 của Atmel có tích hợp sẵn các bộ chuyển đổi ADC với độ
phân giải 10 bit. Có tất cả 8 kênh đơn (các chân ADC0 đến ADC7), 16 tổ hợp
chuyển đổi dạng so sánh, trong đó có 2 kênh so sánh có thể khuyếch đại. Bộ
chuyển đổi ADC trên AVR là loại chuyển đổi xấp xỉ lần lượt (successive
approximation ADC).


Việc đọc ADC được hỗ trợ bởi phần cứng của ATmega64, nên việc đọc giá trị
ADC rất đơn giản, cụ thể code như sau:
unsigned char read_adc(unsigned char adc_input)
{

ADMUX = adc_input | (ADC_VREF_TYPE & 0xff);
// Delay needed for the stabilization of the ADC input voltage
delay_us(10);
// Start the AD conversion
ADCSRA|=0x40;
// Wait for the AD conversion to complete
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCH;
}
Module hiển thị LCD

Trong board này, việc điều khiển LCD được thực hiện theo phương pháp 4 đường
dữ liệu. Các hàm hiển thị chữ cái, chuỗi hay số lên LCD đều đã có sẵn.

Module truyền nhận UART

ATmega64 hỗ trợ việc truyền nhận UART nên việc truyền nhận cũng rất đơn giản.
Cụ thể, code để truyền một byte:
// USART0 Transmitter routine
void UART0_sendChr(BYTE chr) {
while(!(UCSR0A & _BV(UDRE)));
UDR0 = chr;
}
Code để nhận một byte vào biến data:
// USART0 Receiver interrupt service routine
ISR(USART0_RX_vect) {
BYTE status;
BYTE data;
status = UCSR0A;

data = UDR0;
}


Sử dụng hai hàm cơ bản này, ta có thể thực hiện việc truyền hay nhận liên tục
nhiều byte hơn.

VI. Quá trình hiện thực
Phương án hiện thực chức năng đóng mở mạch điện trong đề tài này là sử dụng cặp
linh kiện MOC và Triac, phù hợp với chức năng đóng mở thiết bị điện gia dụng,
công xuất không quá cao.
Ở đây chúng ta sẽ xem xét kỹ hơn một số phương án hiện thực chức năng đọc
thông số dòng điện (cường độ dòng điện) của thiết bị điện xoay chiều. Hai phương
án được xét đến là dùng điện trở Shunt hoặc dùng thiết bị cảm biến dòng TL78

Dùng điện trở Shunt

Đây là phương án tiếp cận đầu tiên của nhóm. Điện trở Shunt là loại điện trở có trở
rất thấp và khá ổn định mà giá trị chúng ta có thể biết trước. Khi nối tiếp điện trở
trong mạch, sẽ có một hiệu điện thế rơi trên trở này. Ta chỉ việc đo hiệu điện thế
này, kết hợp với giá trị điện trở biết trước, sẽ tính được cường độ dòng điện, từ đó
tính được các thông số khác của mạch như công suất tiêu thụ. Đây là phương án
được sử dụng phổ biến trong các thiết bi đo dòng điện xoay chiều.


Tuy nhiên nhóm gặp khó khăn trong việc tìm loại điện trở Shunt này ở Việt Nam,
và xét về giá cả thì khá là đắt (khoảng 60.000 VNĐ/ chiếc và được bán tại Hà Nội,
ở thành phố Hồ Chí Minh thì nhóm chưa tìm được chỗ bán linh kiện này). Xem xét
lại chức năng trong mạch điện ứng dụng trong gia đình, thì giá linh kiện như vậy là
không hợp lý cho việc ứng dụng rộng rãi.


Dùng cảm biến dòng TL78

Nguyên lý của cảm biến dòng là ứng dụng hiện tượng cảm ứng điện từ. TL78 sẽ có
một cuộn dây bên trong, khi cho một dòng xoay chiều chạy bên trong cuộc dây
này, thì sẽ có dòng điện cảm ứng sinh ra.
Nhóm đã dùng Oscilloscope để chụp lại dạng sóng của dòng điện cảm ứng sinh ra
trong quá trình khảo sát. Quá trình khảo sát như sau:
Đầu tiên là nhóm khảo sát với cảm biến dòng đo trực tiếp thiết bị điện xoay chiều
đang sử dụng, không thông qua điều khiển của TRIAC. Ý tưởng là sẽ dùng phối
hợp đi-ôt, tụ điện và điện trở để lấy điện áp đỉnh của dòng cảm ứng do cảm biến
dòng TL78 tạo ra, để từ đó suy ra tương quan với cường độ dòng điện đang tiêu
thụ trong mạch xoay chiều.


Với các thiết bị điện thuần trở, ở đây là một mỏ hàn, dạng sóng điện thế cảm ứng
như sau:
(Cường độ dòng điện tiêu thụ bởi mỏ hàn này đo được bằng Ampe Kế điện tử:
104mA)

(Với trụ ngang là thời gian (mỗi ô 5ms) và trục dọc là hiệu điện thế (mỗi ô 1V). )

Với các thiết bị không thuần trở, ở đây là Oscilloscope, ta có:
(Cường độ dòng điện tiêu thụ bởi Oscilloscope đo được bằng Ampe Kế điện tử: 66mA)

Ta có thể thấy được sự khác nhau giữa dạng sóng cũng như điện áp đỉnh của áp
dòng điện cảm ứng. Và cũng không có sự tương quan rõ ràng giữa điện áp đỉnh của
dòng cảm ứng và cường độ dòng điện thực tế đo được bằng Ampe kế điện tử, cụ



thể là Oscilloscope cho xung cảm ứng rất ngắn và có điện áp đỉnh lớn, gấp đôi cả
điện áp đỉnh do mỏ hàn tạo ra. Tuy nhiên, dòng tiêu thụ thực sự của Oscilloscope
nhỏ hơn mỏ hàn nhiều (66 so với 104). Các số liệu này được nhóm thử lại nhiều
lần nên đảm bảo tính tin cậy.
Vậy đưa đến kết luận là không thể dựa vào điện áp đỉnh để suy ra mức tiêu thụ
điện và cường độ dòng điện của các thiết bị điện khác nhau.

Từ đây, nhóm thử giải pháp khác, thay vì ta chỉ lấy điện áp đỉnh thôi, thì ta sẽ tiến
hành lấy mẫu nhanh từng giá trị của áp dòng cảm ứng này, rồi lấy giá trị trung bình
lại, cố tìm sự tương quan giữa giá trị trung bình này và cường độ dòng điện trong
mạch xoay chiều. Tham khảo thời gian lấy mẫu ADC của ATmega64 và xung
clock hoạt động của board khá nhanh, nhóm thử giải pháp lấy mẫu ADC 1000
lần/giây (1kHz).
Tuy nhiên, khi tiến hành thử nghiệm, giải pháp này cho kết quả rất không ổn định,
dao động nhiều và cũng không có sự khác nhau nhiều giữa các thiết bị điện khác
nhau mỏ hàn hay Oscilloscope. Và đặc biệt hơn nữa, xét về mặt tổng quan với
những công việc khác mà vi điều khiển phải làm: hiện LCD, nhận input người
dùng, xử lý tín hiện, … thì việc lấy mẫu ở tần số cao như vậy là không hiệu quả,
chiếm tài nguyên xử lý quá lớn. Quá trình thử nghiệm cũng có nhiều khi hiển thị bị
lỗi ở LCD do việc lấy mẫu quá thường xuyên này ảnh hưởng.
Đưa đến kết luận giải pháp lấy mẫu ADC 1000 lần/giây là không hiệu quả, chiếm
quá nhiều tài nguyên xử lý của vi điều khiển cũng như ảnh hưởng không tốt đến
các chức năng khác mà vi điều khiển đang thực hiện.
Trên đây là khảo sát ở thiết bị điện chạy trực tiếp từ nguồn xoay chiều. Tiếp theo
nhóm tiến hành khảo sát trên module mạch xoay chiều, khi dùng board vi điều
khiển thực hiện điều khiển cặp MOC-TRIAC, và cũng dùng cảm biến dòng TL78
để lấy dòng cảm ứng trả về.

Đặc tuyến Volt-Ampere của TRIAC (ở góc phần tư thứ I) :



Ta sẽ thấy là đặc tuyến này không tuyến tính, nên có thể suy ra dòng xoay chiều
sau khi qua TRIAC sẽ không có dạng hình sin chuẩn như dòng xoay chiều từ lưới
điện quốc gia nữa. Điều này ảnh hưởng rất nhiều đến kết quả cảm ứng của cảm
biến dòng TL78. Cụ thể, kết quả khảo sát được như sau:
Dòng cảm ứng thu được khi cho tải tiêu thụ là mỏ hàn:

(Với trục ngang là thời gian, mỗi ô 1ms, trục dọc là điệp áp, mỗi ô 5V)


Và dòng cảm ứng thu được với tải là Oscilloscope:

Hay với một màn hình máy tính:


Ta có thể thấy rằng dạng sóng cảm ứng từ TL78 đã hoàn toàn thay đổi, nhiều xung
gai và tần số không ổn định. Và mỗi một thiết bị điện khác nhau lại cho một dạng
xung khác nhau và không thể hiện sự tương quan giữa dạng sóng và mức cường độ
dòng điện thực tế thiết bị tiêu thụ.
Nhóm sử dụng mạch RC để lọc xung tần số cao trên, sau đó tiến hành đọc ADC.

STT Thiết bị dùng điện

Giá trị ADC
đo được

Mức đồng hồ đo
(mili Ampe)

1


Không thiết bị

10

0 mA

2

Mỏ hàn

12

109 mA

3

Oscilloscope

60

66 mA

4

Power Adapter 5V600mA

57

15 mA


5

Màn hình ViewSonic
trạng thái mở

40

117 mA

6

Màn hình ViewSonic
trạng thái sleep

27

16 mA

7

2 mỏ hàn song song

22

220 mA

8

1 mỏ hàn + 1 súng bắn

keo

18

176 mA

9

Súng bắn keo

11

73 mA

10

2 mỏ hàn + 1 súng bắn
keo

25

281 mA

Không thật sự có sự tương quan tuyến tính nào giữa giá trị ADC đo được và cường
độ dòng điện tiêu thụ thực sự của các loại thiết bị điện khác nhau.


Từ tất cả những kết quả khảo sát trên, nhóm đưa ra nhận định:
Việc ứng dụng TL78 để đo cường độ dòng điện trong mạch điện xoay chiều chỉ có
thể thực hiện được khi người lập trình và cả người thiết kế mạch điện biết rõ thiết

bị sẽ dùng là gì, từ đó sẽ khảo sát thiết bị và đưa ra cách tính cụ thể khi lập trình.
Còn đối với mục đích sử dụng khác nhau, không biết trước thiết bị nào sẽ được
dùng, thì sẽ không thể thiết lập được một công thức chung để chuyển đổi từ giá trị
ADC đo được sang cường độ dòng điện thực tế.
Vì thời gian có hạn và nhóm đã đến giai đoạn cuối của đồ án, nên nhóm không thể
khảo sát được thêm phương án hiện thực nào khác hiệu quả hơn.
Nhóm sẽ điều chỉnh thiết kế một chút, là sẽ dùng cảm biến dòng TL78 để xác định
thiết bị có hoạt động hay không, chứ chưa thể đưa ra được cường độ dòng điện
cũng như công xuất của thiết bị điện.

VII. Demo sản phẩm



×