• Khối Bluetooth: Sử dụng module HC05 đóng vai trò trung gian nhận tín hiệu từ trên PC gửi xuống cho Vi điều khiển.. • Khối xử lý trung tâm: Dùng vi điều khiển PIC16F877A để lấy tín hiệu
Trang 1CHƯƠNG 1: THIẾT KẾ HỆ THỐNG
1.1. Sơ đồ tổng quát
Hệ thống điều khiển động cơ AC gồm 4 khối chính
Hình 1.01 Các khối điều khiển chính
KHỐI ĐIỀU KHIỂN TRÊN MÁY TÍNH (PC)
KHỐI NGUỒN VÀ ĐIỀU KHIỂN
Trang 2Sơ đồ tổng quát hệ thống bật tắt đèn thông minh:
• Khối điều khiển từ xa PC
• Khối nguồn và điều khiển AC: Cung cấp nguồn cho hệ thống và nhận tín hiệu từ Vi điều khiển để đóng ngắt đèn
• Khối Bluetooth: Sử dụng module HC05 đóng vai trò trung gian nhận tín hiệu từ trên PC gửi xuống cho Vi điều khiển
• Khối xử lý trung tâm: Dùng vi điều khiển PIC16F877A để lấy tín hiệu mà Bluetooth nhận được từ PC gửi xuống, xử lý dữ liệu, sau
đó thực thi chương trình
1.2. Các module trong hệ thống
1.2.1. Module điều khiển trên PC
Dùng ngôn ngữ lập trình C# nền ứng dụng Windows forms để thiết
kế giao điện điều khiển và lập trình gửi lệnh xuống cho khối xử lý trung tâm (PIC16F877A) thông qua cổng truyền thông nối tiếp (Serial port)
1.2.2. Module khối nguồn và điều khiển thiết bị AC
Hình 1.02 Module nguồn và điều khiển AC
Module khối nguồn:
• Cung cấp nguồn cho thiết bị AC hoạt động và trong bản demo này
em chọn bóng đèn dây tóc làm vi dụ minh họa
• Tạo ra điện áp một chiều từ nguồn xoay chiều 220V để cung cấp cho các linh kiện trong hệ thống hoạt động Sử dụng biến áp để biến đổi điện áp xoay chiều 220V thành điện áp xoay chiều 12V, dùng chỉnh lưu cầu từ 12V xoay chiều sang 12V một chiều, sau đó dùng IC7805
ổn định điện áp ngõ ra 5V cho PIC16F877A
Trang 3Module điều khiển thiết bị AC:Nhận tín hiệu điều khiển mức cao (Mức logic 1) từ vi điều khiển PIC16F877A qua cách ly quang MOC3020 thì tại điểm G của Triac BT136 có dòng làm cho 2 đầu A2 và A1 của Triac nối lại với nhau và làm đèn sáng Khi tín hiệu từ PIC16F877A gửi xuống mức thấp (hay mức logic 0) MOC3020 không hoạt động làm cho điểm G của Triac không có dòng dẫn đến A2 và A1
sẽ hở ra làm cho đèn tắt
1.2.3. Module Bluetooth HC05
Hình 1.03 Module Bluetooth HC05
1.2.3.1. Thông số kỹ thuật module HC05
Điện thế hoạt động của UART 3.3 – 5V
Dòng điện khi hoạt động : Khi pairing 30 mA, sau khi pairing hoạt động truyền nhận bình thường 8 mA
Baudrate UART có thể chọn được : 1200, 2400, 4800, 9600,
Trang 4Hướng dẫn nối dây:
Bluetooth module Vi điều khiển
• Ở chế độ MASTER: module sẽ tự động dò tìm thiết bị bluetooth khác (1 module bluetooth HC06 HC05, usb bluetooth, bluetooth của laptop…) và tiến hành pair chủ động mà không cần thiết lập
gì từ máy tính hoặc smartphone
Module bluetooth HC05 có nhiều chức năng
Module bluetooth HC05 được điều khiển bằng tập lệnh AT để thực hiện các tác vụ mong muốn Để bluetooth module chuyển từ chế độ thông thường qua điều khiển bằng lệnh AT, ta có 2 cách như sau:
• Cấp nguồn cho module bluetooth (Vcc và Gnd) đồng thời cấp mức điện áp cao (=Vcc) cho chân KEY của module bluetooth Khi đó giao tiếp bằng tập lệnh AT với module bằng cổng Serial (Tx và Rx) với baud rate là 38400 (khuyên dùng)
• Cấp nguồn cho module bluetooth trước, sau đó cấp mức điện áp cao cho chân KEY của module bluetooth Lúc này bạn có thể giao tiếp với module bằng tập lệnh AT với baud rate là 9600 Sau khi pair thành công với thiết bị bluetooth khác, đèn trên module bluetooth HC05 sẽ nhấp nháy chậm cho thấy kết nối Serial đã được thiết lập
1.2.4. Khối xử lý trung tâm
Trang 5Hình 1.04 Khối xử lý trung tâm
Khối điều khiển trung tâm dùng vi điều khiển PIC16F877A Khi có tín hiệu từ Bluetooth HC05 thì vi điều khiển sẽ kích hoạt chân RB0 thông qua thuật toán đã nạp cho Pic thực hiện chương trình điều khiển hoạt động của MOC3021 điều khiển góc mở của Triac làm cho động cơ đóng ngắt theo ý muốn của người dùng
• Khi nhấn START trên PC sẽ làm cho thiết bị AC hoạt động cụ thể là: Đèn sáng
• Khi nhấn STOP trên PC thì đèn tắt
• Ngoài ra trên mạch còn thiết kế điều khiển trực tiếp qua chân RB5 khi nhấn nút đèn sáng và nhấn tiếp đèn tắt
Các khối khác còn lại trên hình:
• Bộ dao động dùng thạch anh 20M cung cấp nguồn dao động cho Pic
• Bộ RESET cấp nguồn 5V để xác lập trạng thái ban đầu cho Pic
1.3. Lựa chọn linh kiện
Trang 61.3.1. Vi điều khiển PIC16F877A
Đây là vi điều khiển thuộc họ PIC16FXXX với 35 tập lệnh có độ dài
14 bit Mỗi lệnh đều được thực thi trong một chu kỳ xung clock Tốc độ hoạt động tối đa cho phép là 20MHz với 1 chu kì lệnh là 200ns Bộ nhớ chương trình 8Kx14 bit, bộ nhớ dữ liệu 368 byte RAM và bộ nhớ dữ liệu EEPROM với dung lượng 256 byte Số Port I/O là 5 với 33 pin I/O
1.3.1.1. Sơ đồ chân và những khối cần thiết của PIC16F877A
Hình 1.05 PIC 16F877A
Hình bên trên là sơ đồ chân của pic16f877a và những khối cần thiết
là điều cần để cho mạch hoạt động:
- Chân số 1 là chân để reset ở mức thấp (hay 0v)
- Chân số 11 và 32 là chân cấp nguồn 5v
- Chân số 12 và 31 là chân nối đất
Trang 7- Chân 13 và 14 cấp xung dao động thạch anh, Thạch anh thường dùng là 4M hoặc là 20M
1.3.1.2. Các chức năng cơ bản
Hình 1.06 Các chức năng cơ bản PIC16F877A
Những chức năng đã được nêu tóm tắt ở trên nhưng trong quá trình tìm hiểu phạm vi đề tài em chỉ đề cập chi tiết những chức năng quan trọng liên qua đến đề tài:
- Chức năng xuất nhập dữ liệu cụ thể là PortB gồm 8bit từ RB0 đến RB7
Trang 8- Chức năng thứ hai là chuẩn giao tiếp RS232 thông qua chân số 25
và 26 của vi điều khiển Cách đấu nối với Module Bluetooth HC05 được trình bày chi tiết ở chương sau
1.3.2. IC ổn áp 7805
Hình 1.07 IC ổn áp 7805
7805 là một mạch tích hợp bộ chỉnh điện áp Đây là một dòng IC của
họ 78xx điều chỉnh điện áp tuyến tính cố định Nguồn điện áp trong mạch có thể có biến động và sẽ không cho lượng điện áp cố định Các
vi mạch điều chỉnh điện áp duy tri điện áp đầu ra tại một giá trị không đổi Các xx trong 78xx cho biết đại lượng điện áp cố định nó được thiết
kế để cung cấp: 7805 cung cấp nguồn +5V…
Hình 1.08 Sơ đồ nguyên lý IC7805
1.3.3. Triac BT136
Trang 9Triac BTA136 với vỏ có khả năng cách ly điện áp AC cao (khoảng 1.5 KVAC), có thể dẫn cả hai chiều nếu được kích xung cho phép thông qua chân số 3, tải được mắc giữa chân số 1 và 2 rồi nối với nguồn AC.
• Điện áp max cực kích Gate: 20V
MOC3020 là loại Opto Triac quang học được cách ly giữa ngõ vào
và ngõ ra Nó gồm có 1 LED hồng ngoại MOC3020 được thiết kế như
là thiết bị giao tiếp giữa mạch điện điều khiển và Triac công suất để điều khiển tải R hoặc tải cảm L có điện áp từ 115V (60Hz) đến 240V (50Hz)
Chú ý: MOC3020 không dùng để điều khiển trực tiếp tải công suất,
mà chỉ là mạch kích muốn điều khiển tải phải nối với thiết bị khác như Triac chẳng hạn
Trang 10Hình 1.10 MOC3020
Các thông số kỹ thuật:
• Tầm nhiệt hoạt động: -400C đến +850C
• Điện áp ngược: VR = VTM = 3V
• Dòng thuận: IFT = 30mA
• Điện áp hở đầu ra: 250V
Trang 11CHƯƠNG 2: SƠ ĐỒ NGUYÊN LÝ VÀ LƯU ĐỒ
GIẢI THUẬT
2.1 Sơ đồ nguyên lý mạch
Các module được kết nối với nhau theo hình vẽ:
Hình 2.1 Sơ đồ nguyên lý mạch điều khiển động cơ AC
Thuật toán điều khiển:
• Nhận lệnh từ trên PC thông qua module HC05 được kết nối với chân
TX và RX của chuẩn giao tiếp rs232 trong vi điều khiển
• Xử lý lệnh và so sánh điều kiện trong chương trình đã viết để xuất tín hiệu điều khiển để kích cho MOC3020 để điều khiển góc mở của Triac BT136 để đóng ngắt động cơ (minh hoa qua bóng đèn dây tóc)
Trang 122.2 Lưu đồ giải thuật
S
Đ Hình 2.2 Lưu đồ giải thuật điều khiển AC
Trang 13CHƯƠNG 3: THI CÔNG SẢN PHẨM
3.1 Mạch in
3.2 Code chương trình
3.2.1 Code trên máy tính PC
Dùng phần mềm ứng dụng Visual Basic 6.0 để lập trình tạo giao diện và gửi lệch xuống vi điều khiên PIC16F877A thông qua kết nối Bluetooth trên máy tính và Module HC05 có bán trên thị trường để thực thi chương trình điều khiển động cơ AC thông qua góc mở của Triac BTA136 (Trong quá trình làm
đồ án em lấy bóng đèn dây tóc AC để làm ví dụ minh họa)
Trang 14With MSComm1
.CommPort = 9 //cong COM 9
.Settings = "9600,N,8,1" //Baudrate=9600,Ko KT chan le,frame 8 bit,1 bit stop
.InBufferSize = 1024 //Bo dem 1024 byte
.InputLen = 0 //Doc toan bo gia tri bo dem
.RThreshold = 1 //'Cho phep ngat khi su kien Receiver o MSCOMM
.SThreshold = 0 //Ko cho phep ngat khi su kien Send o MMSCOMM
Private Sub MSComm1_OnComm()
Dim den As String
If MSComm1.CommEvent = comEvReceive Then
den = MSComm1.Input
If (den = "a") Then
Shape1.FillColor = vbRed
Trang 16PORTD=mangyn[y]; //dieu khien dong co mot
if(gt=='c') //dong co hai quay thuan
{
Trang 19enable_interrupts(int_rb); //ngat port B
enable_interrupts(int_RDA); //ngat port noi tiep
enable_interrupts(global); //ngat toan cuc
set_tris_b(0xff); //4 bit thap la mut nhan; 4bit cao la ngo ra