MỤC LỤC
Chương 1: Động cơ điện một chiều 1
1.1. Giới thiệu chương 1
1.2. Nội dung 1
1.2.1 Giới thiệu động cơ DC .1
1.2.2 Mô hình hóa động cơ DC .1
1.2.3 Phương pháp điều khiển tốc độ động cơ: .3
1.2.4 Khảo sát hàm truyền 4
1.2.4.1 Hàm truyền lý tưởng: .4
1.2.4.2 Hàm truyền gần đúng tìm được bằng thực nghiệm .5
1.2.5 Phương pháp ổn định động cơ dùng thuật toán PID .6
1.2.5.1 Thuật toán PID .6
1.2.5.2 Phương pháp hiệu chỉnh thông số bộ PID Ziegler-Nichols: 7
1.3. Kết chương 8
Chương 2 : Giới thiệu vi điều khiển PIC16F887 9
1.4. Giới thiệu chương 9
1.5. Nội dung 9
2.2.1 Một vài chi tiết chính của vi điều khiển PIC16F887 9
2.2.2 Bộ dao động của PIC16F887 .11
2.2.3 Các Port I/O .12
2.2.4 Hoạt động của khối giao tiếp EUSART .13
2.2.5 Cấu tạo và hoạt động của khối điều xung PWM 15
2.2.6 Ngắt ngoài trên chân RB0 17
2.2.7 Cấu tạo và hoạt động của bộ Timer1 18
2.2.8 Cách nạp cho PIC16F887 18
1.6. Kết chương 20
Chương 3: Thiết kế và thi công phần cứng .21
1.7. Mở chương 21
1.8. Nội dung 21
3.2.1 Sơ đồ khối phần cứng 21
3.2.2 Sơ đồ nguyên lý và hoạt động của các khối mạch 22
3.2.3 Tính toán các thông số của mạch .24
3.2.3.1 Mạch đảo chiều động cơ .24
3.2.3.2 Tính toán cho FET 25
3.2.3.3 Tính toán mạch lái cho FET 27
3.3.4 Layout và thi công mạch 30
1.9. Kết chương 31
Chương 4 : Thiết kế phần mềm 32
1.10. Mở chương 32
1.11. Nội dung 32
4.2.1 Phần mềm cho vi điều khiển PIC16F887 .32
4.2.1.1 Thuật toán chương trình chính 32
4.2.1.2 Thuật toán chương trình xử lý phím 35
4.2.1.3 Thuật toán chương trình đo tốc độ động cơ 38
4.2.1.4 Thuật toán chương trình phục vụ ngắt nhận UART 40
4.2.2 Phần mềm trên máy vi tính giao tiếp với mạch điều khiển 42
1.12. Kết luận chương .47
1.13. Nhận xét đánh giá hệ thống 47
1.14. Hướng phát triển đề tài 47
48
Mở đầu
Với sự phát triển rộng rãi của thiết bị điện, ngày nay, người người, nhà nhà
hầu hết đã sử dụng các công nghệ hiện đại. Và khi mức sống của người dân được
nâng cao thì việc quản lý các thiết bị điện trong nhà là hết sức cần thiết. Chính vì
vậy việc điều khiển thiết bị và giám sát hoạt động của nó thông qua một quá trình tự
động là việc làm mang nhiều lợi ích.
Đề tài thực hiện việc điều khiển thông qua vi điều khiển PIC16F887A, chính
vì vậy đề tài nghiên cứu sâu về việc ổn định tốc độ động cơ điện một chiều. Trong
giới hạn thời gian nghiên cứu cho phép, đề tài chỉ phát triển một hệ thống điều
khiển đơn giản. Các thiết bị được giám sát và điều khiển tiêu tốn rất ít năng lượng
sẽ mang lại lợi ích kinh tế và hiệu quả sử dụng cao.
Nội dung của đồ án gồm:
Chương 1: Động cơ điện 1 chiều
Chương 2: Giới thiệu về vi điều khiển PIC 16F887A
Chương 3:Thiết kế và thi công phần cứng
Chương 4: Thiết kế phần mềm
Phương pháp nghiên cứu của đồ án là tính toán thiết kế mạch, xây dựng các
lưu đồ thuật toán và thi công lắp ráp để kiểm chứng tính đúng đắn của thiết kế và
các lưu đồ thuật toán đã xây dựng.
Với phương pháp trên, đồ án đã được thiết kế và thi công thành công.
Vì thời gian chuẩn bị không nhiều cùng với kiến thức còn hạn hẹp, đồ án
không tránh khỏi những sai sót, chúng em rất mong nhận được ý kiến đóng góp của
các thầy cô trong khoa, chúng em xin chân thành cảm ơn.
55 trang |
Chia sẻ: lvcdongnoi | Lượt xem: 3654 | Lượt tải: 3
Bạn đang xem trước 20 trang tài liệu Điều khiển động cơ DC qua vi điều khiển PIC16F887A, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
hronous Synchronous Asynchronous Receiver
Transmitter
MUX Multiplexer
MCU Microcontroller Unit
GPIO General Purpose Input Ourput
EUSART Enhanced Universal Synchronous Asynchronous Receiver
Transmitter
LCD Liquid Crystal Display
FET Field-Effect Transistor
BJT Bipolar Junction Transistor
MOSFET Metal Oxide Semiconductor Field-Effect Transistor
UART Universal Asynchronous Receiver Transmitter
Mở đầu
Mở đầu
Với sự phát triển rộng rãi của thiết bị điện, ngày nay, người người, nhà nhà
hầu hết đã sử dụng các công nghệ hiện đại. Và khi mức sống của người dân được
nâng cao thì việc quản lý các thiết bị điện trong nhà là hết sức cần thiết. Chính vì
vậy việc điều khiển thiết bị và giám sát hoạt động của nó thông qua một quá trình tự
động là việc làm mang nhiều lợi ích.
Đề tài thực hiện việc điều khiển thông qua vi điều khiển PIC16F887A, chính
vì vậy đề tài nghiên cứu sâu về việc ổn định tốc độ động cơ điện một chiều. Trong
giới hạn thời gian nghiên cứu cho phép, đề tài chỉ phát triển một hệ thống điều
khiển đơn giản. Các thiết bị được giám sát và điều khiển tiêu tốn rất ít năng lượng
sẽ mang lại lợi ích kinh tế và hiệu quả sử dụng cao.
Nội dung của đồ án gồm:
Chương 1: Động cơ điện 1 chiều
Chương 2: Giới thiệu về vi điều khiển PIC 16F887A
Chương 3:Thiết kế và thi công phần cứng
Chương 4: Thiết kế phần mềm
Phương pháp nghiên cứu của đồ án là tính toán thiết kế mạch, xây dựng các
lưu đồ thuật toán và thi công lắp ráp để kiểm chứng tính đúng đắn của thiết kế và
các lưu đồ thuật toán đã xây dựng.
Với phương pháp trên, đồ án đã được thiết kế và thi công thành công.
Vì thời gian chuẩn bị không nhiều cùng với kiến thức còn hạn hẹp, đồ án
không tránh khỏi những sai sót, chúng em rất mong nhận được ý kiến đóng góp của
các thầy cô trong khoa, chúng em xin chân thành cảm ơn.
Đà Nẵng, ngày 10 tháng 06 năm 2010
Sinh viên thực hiện
Trần Nguyễn Quốc Huy
Phan Hoàng Anh
Nguyễn Đức Ba
Nguyễn Tấn Thạch
Chương 1: Động cơ điện một chiều
Chương 1: Động cơ điện một chiều
1.1. Giới thiệu chương
Chương này giới thiệu cơ bản về động cơ DC, các phương pháp điều khiển
tốc độ động cơ và phương pháp ổn định tốc độ động cơ dùng thuật toán PID.
1.2. Nội dung
1.2.1 Giới thiệu động cơ DC
Động cơ điện một chiều là động cơ điện hoạt động với dòng điện một chiều.
Động cơ điện một chiều ứng dụng rộng rãi trong các ứng dụng dân dụng cũng như
công nghiệp.
Cấu tạo của động cơ gồm có 2 phần: stato đứng yên và rôto quay so với
stato. Phần cảm (phần kích từ-thường đặt trên stato) tạo ra từ trường đi trong mạch
từ, xuyên qua các vòng dây quấn của phần ứng (thường đặt trên rôto). Khi có dòng
điện chạy trong mạch phần ứng, các thanh dẫn phần ứng sẽ chịu tác động bởi các
lực điện từ theo phương tiếp tuyến với mặt trụ rôto, làm cho rôto quay.
Tùy theo cách mắc cuộn dây roto và stato mà người ta có các loại động cơ
sau:
- Động cơ kích từ độc lập: Cuộn dây kích từ (cuộn dây stato) và cuộn
dây phần ứng (roto) mắc riêng rẽ nhau, có thể cấp nguồn riêng biệt.
- Động cơ kích từ nối tiếp: Cuộn dây kích từ mắc nối tiếp với cuộn dây
phần ứng.
Đối với loại động cơ kích từ độc lập, người ta có thể thay thế cuộn dây kích
từ bởi nam châm vỉnh cữu, khi đó ta có loại động cơ điện 1 chiều dùng nam châm
vĩnh cữu. Đây là loại động cơ được sử dụng trong đồ án này.
1.2.2 Mô hình hóa động cơ DC
Mô hình tương đương của phần ứng động cơ như sau:
Trang 1
Chương 1: Động cơ điện một chiều
A
-
+
1
2
R a
L a
E g
U a
I a
g
a
aaaa edt
diLiRu ++= (1.1)
nke vg Φ= (1.2)
Trong đó Φ là từ thông do nam châm vĩnh cữu gây ra. n là tốc độ động cơ.
Momen điện từ:
Td = Kt Φia (1.3)
Phương trình của động cơ:
Ld TBdt
dJT ++= ωω (1.4)
B: hệ số ma sát
T: monen tải.
Ở chế độ xác lập:
gaaa eiRu += (1.5)
atLd iKTnBT Φ=+= pi2 (1.6)
Ta có được tốc độ động cơ ở chế độ xác lập:
Φ
−
=
v
aaa
K
RIU
n (1.7)
Trang 2
Chương 1: Động cơ điện một chiều
1.2.3 Phương pháp điều khiển tốc độ động cơ:
Đối với loại động cơ kích từ độc lập dùng nam châm vĩnh cữu, để thay đổi
tốc độ, ta thay đổi điện áp cung cấp cho roto. Việc cấp áp 1 chiều thay đổi thường
khó khăn, do vậy người ta dùng phương pháp điều xung (PWM):
Hình 1.1 Điều chỉnh độ rộng xung PWM.
Phương pháp điều xung sẽ giữ tần số không đổi, thay đổi chu kì nhiệm vụ
(Duty cycle) để thay đổi điện áp trung bình đặt lên động cơ.
Điện áp trung bình:
in
on
dk VT
TV =
Do đặc tính cảm kháng của động cơ, dòng qua động cơ là dòng liên tục, gợn
sóng như sau:
Hình 1.2 Dạng sóng dòng và áp trên động cơ.
Trang 3
Chương 1: Động cơ điện một chiều
1.2.4 Khảo sát hàm truyền
1.2.4.1 Hàm truyền lý tưởng:
Biến đổi Laplace các công thức từ (1.1) – (1.4 ) ta được:
Ua(p) = RaIa(p)+pLaIa(p)+Eg(p) (1.9)
)()( pnkpE vg Φ= (1.10)
Td(p) = Kt ΦIa(p) (1.11)
)()(2)(2)( pTpBnppJnpT Ld ++= pipi (1.12)
Từ 1.12 tính được:
)1(2
)()()(
+
−
=
m
Ld
pB
pTpTpn
τpi
(1.13)
(1.14)
Trong đó: aτ =La/Ra Hằng số thời gian của mạch phần ứng
mτ =J/B Hằng số thời gian cơ.
Vậy ta có mô hình hệ thống như sau:
Hình 1.3 Mô hình hệ thống động cơ điện DC
Khi momen tải bằng 0, ta có:
Φ+++
Φ
=
vma
t
a
a
Kpp
K
BRpUpn )1)(1(2
1)()(
ττ
pi
Vậy hàm truyền của động cơ lúc này có dạng khâu dao động.
Trang 4
Chương 1: Động cơ điện một chiều
1.2.4.2 Hàm truyền gần đúng tìm được bằng thực nghiệm
Để tìm hàm truyền bằng thực nghiệm ta tìm đáp ứng xung của động cơ.
Ta đặt áp bằng áp định mức vào động cơ và vẽ đồ thị vận tốc theo thời gian.
Vì thời gian lấy mẫu vận tốc nhỏ do đó ta không thấy được các điểm uốn của đồ thị,
do đó ở đây ta xấp xỉ hàm truyền động cơ là khâu quán tính bậc 1 có dạng như sau.
1+
=
Tp
kG
Đáp ứng xung của động cơ:
n(p)= pTp
kU
)1( +
Biến đổi Laplace ngược ta được:
n=kU(1-e-t/T)
Khi t = T, n = kU(1-e-1)=0.63kU=0.63nmax
Vậy trên đồ thị ta xác định điểm tại đó n=0.63nmax sau đó tìm được T.
Dựa vào đồ thị tìm được bằng thực nghiệm ta tìm được kU và T.
Hình 1.4 Đồ thị tìm được bằng thực nghiệm của động cơ DC
kU = 150 vòng/s
T = 30ms=0.03s
Trang 5
Chương 1: Động cơ điện một chiều
Vậy hàm truyền gần đúng:
103.0
5.37
103.0
24/150
1 +
=
+
=
+
=
ppTp
kG
1.2.5 Phương pháp ổn định động cơ dùng thuật toán PID
1.2.5.1 Thuật toán PID
τ
τ
ττ
d
deKdeKKG dip
)()( ++= ∫
Trong đó:
- Kp: Hệ số khâu tỉ lệ (khâu khuếch đại)
- Ki: Hệ số tích phân
- Kd: hệ số vi phân
Hình 1.5 Mô hình hệ thống PID.
Luật điều khiển PID:
Đáp ứng của hệ
thống
Thời gian
tăng
Vọt
lố
Thời gian ổn
định
Sai lệch so với trạng
thái bền
KP Giảm Tăng Ít thay đổi Giảm
KI Giảm Tăng Tăng Triệt tiêu
KD Ít thay đổi Giảm Giảm Ít thay đổi
Bảng 1.1 Luật điều khiển PID
Dựa vào bảng trên ta thấy rằng luật tỉ lệ (P) có đặc điểm tác động nhanh
nhưng không triệt tiêu được sai lệch, đồng thời làm vọt lố của hệ thống tăng. Khâu
tích phân cho phép triệt tiêu sai lệch nhưng tác động chậm. Khâu vi phân phản ứng
Trang 6
Chương 1: Động cơ điện một chiều
với tốc độ biến thiên của sai lệch. Ta cần xác định các thông số Kp, Ki, Kd để được
hệ thống có chất lượng mong muốn.
Thuật toán của bộ điều khiển PID số:
Khâu tỉ lệ P (Proportional): GP(z) = KP
Khâu tích phân I (Integrate):
11
1)(
−
−
=
z
TKzG II với ∫ ∑
=
=
kT k
n
nTTedtte
0 0
)()(
Trong đó T là chu kì lấy mẫu vận tốc. Công thức tích phân gần đúng theo
thuật toán xấp xỉ hình chữ nhật tới.
Khâu vi phân D (Derivative): )1(1)( 1−−=−= zKTz
zKzG dDD với thành phần
vi phân xấp xỉ bởi
T
TnenTe
dt
tde ))1(()()( −−
=
Vậy ta được hàm truyền khâu PID rời rạc:
)1(
1
1
)(
)( 1
1
−
−
−+
−
+== zK
z
KK
zE
zUG dipdk
Udk(z)(1-z-1) = E(z)(Kp(1-z-1) + Ki + Kd(1-z-1)2
Suy ra:
uk – uk-1 = Kp(ek – ek-1) + Kiek + Kd(ek – 2ek-1 – ek-2)
1.2.5.2 Phương pháp hiệu chỉnh thông số bộ PID Ziegler-Nichols:
Thông thường việc chọn các thông số P, I, D được xác định bằng thực
nghiệm dựa vào đáp ứng xung của hệ thống. Ziegler – Nichols đưa ra phương pháp
chọn tham số PID cho mô hình quán tính bậc nhất có trễ. Ở đây ta xấp xỉ hàm
truyền của động cơ để dùng phương pháp này, tuy không hoàn toàn chính xác
nhưng có thể cho đáp ứng tương đối tốt.
Phương pháp này đỏi hỏi phải tính được giá trị giới hạn của của khâu tỉ lệ
Kgh và chu kì giới hạn của hệ kín Tgh. Sau đó tìm các thông số khác theo bảng sau:
Bộ điều khiển KP TI TD
P 0.5·Kgh - -
PI 0.45·Kgh 0.83·Tgh -
Trang 7
Chương 1: Động cơ điện một chiều
PID 0.6·Kgh 0.5·Tgh 0.125·Tgh
Bảng 1.2 Các giá trị thông dụng của các hệ số KP, KI, KD.
Để tìm được Kgh và Tgh, ban đầu ta chỉnh Ki, Kd bằng 0 sau đó tăng từ từ Kp
để hệ thống ở biên giới ổn định (dao động với biên độ và chu kì không đổi), tại đây
ta xác định được Kgh và Tgh sau đó tính các thông số khác tùy theo bộ điều khiển
như bảng trên.
Ki = Kp/Ti
Kd = KxTd
Để thuận tiện trong quá trình điều chỉnh và quan sát đáp ứng của động cơ, đồ
án này đã xây dựng chương trình viết bằng VB trên máy tính để giao tiếp với mạch
điều khiển. Phần này sẽ được giới thiệu trong chương 4.
1.3. Kết chương
Chương này đã giới thiệu cơ sở lý thuyết về động cơ, phương pháp điều
khiển động cơ và thuật toán điều khiển PID.
Chương tới sẽ giới thiệu vi điều khiển PIC16F887, trong đề tài này
PIC16F887 được sử dụng làm khối điều khiển trung tâm, điều khiển động cơ dùng
thuật toán PID và giao tiếp với máy tính theo chuẩn giao tiếp RS232 cho phép
người sử dụng giám sát trạng thái của động cơ.
Trang 8
Chương 2: Giới thiệu vi điều khiển PIC16F887
Chương 2 : Giới thiệu vi điều khiển PIC16F887
1.4. Giới thiệu chương
Chương này giới thiệu cơ bản về vi điều khiển PIC16F887 của hãng
Microchip và hoạt động của nó bao gồm nội dung về cách cấu hình xung clock,
hoạt động khối giao tiếp UART, khối PWM, ngắt ngoài trên chân RB, cấu tạo và
hoạt động của các bộ timer, và cách nạp chương trình cho PIC16F887.
1.5. Nội dung
2.2.1 Một vài chi tiết chính của vi điều khiển PIC16F887
PIC16F887 là vi điều khiển 8-bit có kiến trúc Harvard của Microchip có
những thông số kỹ thuật như sau:
- Clock hoạt động tối đa 20MHz.
- Chu kỳ máy bằng bốn lần chu kỳ xung clock.
- Chip có nhiều dạng vỏ khác nhau, loại chip được sử dụng trong đề tài là
loại 40 chân PDIP.
- Điện áp hoạt động rộng từ 2V đến 5.5V.
- Bộ nhớ dữ liệu và bộ nhớ chương trình tách biệt nhau, bus địa chỉ cũng
như bus dữ liệu là riêng biệt. Bộ nhớ chương trình Flash 8K ô nhớ cho
phép ghi 100,000 lần. Mỗi ô nhớ có 14 bit. Bộ nhớ dữ liệu RAM có 512
Byte gồm các thanh ghi chức năng đặc biệt và các thanh ghi đa mục đích.
Ngoài ra PIC16F887 được tích hợp 256 Byte EEPROM cho phép ghi đến
1,000,000 lần.
- 35 chân I/O của 5 port điều khiển là PortA, PortB, PortC, PortD, PortE.
- Bộ chuyển đổi ADC 10-bit với 14 kênh.
- 3 bộ timer. Bộ timer0 8-bit, bộ timer1 16-bit và bộ timer2 8-bit.
- Module Capture, Compare và PWM
- Module Enhanced USART hỗ trợ RS-485, RS-232.
Những chi tiết trên được thể hiện cụ thể trong hình 2.1.
Trang 9
Chương 2: Giới thiệu vi điều khiển PIC16F887
Hình 2.1 Sơ đồ khối của PIC16F887
Trang 10
Chương 2: Giới thiệu vi điều khiển PIC16F887
2.2.2 Bộ dao động của PIC16F887
Sơ đồ khối của bộ dao động được minh họa trong hình 2.2.
Hình 2.2 Sơ đồ khối bộ dao động của PIC16F887
Clock hệ thống của PIC16F887 có thể được chọn từ hai nguồn dao động nội
(Internal Oscillator) hoặc dao động ngoại (External Oscillator) nhờ bộ chọn kênh
MUX. Bộ MUX được điều khiển bởi các bit FOSC (bit 2, bit 1, bit 0 của
thanh ghi CONFIG1 16-bit định vị tại địa chỉ 2007H và 2008H trong bộ nhớ
chương trình) và bit SCS (bit 0 của thanh ghi OSCCON). Nếu SCS = 1, clock
hệ thống được chọn từ INTOSC. Nếu SCS = 0, clock hệ thống được chọn từ bộ dao
động ngoại. Các bit FOSC được sử dụng để cấu hình bộ dao động ngoại là
LP, XT, HS, RC, RCIO hay EC.
Bộ dao động nội gồm 2 bộ dao động HFINTOSC 8MHz và LFINTOSC
31kHz. Clock 8MHz của bộ HFINTOSC được chia thành các tần số
8MHz, 4MHz, 2MHz, 1MHz, 500kHz, 250kHz, 125kHz nhờ bộ chia tần
số postscaler. Các bit IRCF điều khiển bộ MUX chọn kênh cho
INTOSC.
Trang 11
Chương 2: Giới thiệu vi điều khiển PIC16F887
Bộ dao động ngoại (được tích hợp bên trong PIC) cần được kết nối với
các bộ lọc tại các chân OSC1, OSC2. Trong đề tài, tôi sử dụng thạch anh
12MHz và 2 tụ 33pF kết nối như hình 2.3. Bộ dao động ngoại được hoạt
động ở chế độ HS. Tín hiệu dao động được qua bộ đệm Trigger theo sườn
xuống và tạo thành xung clock HS 12MHz cung cấp cho clock hệ thống.
Hình 2.3 Bộ dao động ngoại ở chế độ HS.
2.2.3 Các Port I/O
PIC16F887 tất cả 35 chân I/O mục đích thông thường (GPIO: General
Purpose Input Ouput) có thể được sử dụng. Tùy theo những thiết bị ngoại vi được
chọn mà một vài chân có thể không được sử dụng ở chức năng GPIO. Thông
thường, khi một thiết bị ngoại vi được chọn, những chân liên quan của thiết bị ngoại
vi có thể không được sử dụng ở chức năng GPIO. 35 chân GPIO được chia cho 5
Port: PortA gồm 8 chân, PortB gồm 8 chân, PortC gồm 8 chân, PortD gồm 8 chân
và PortE gồm 3 chân.
Mỗi port được điều khiển bởi 2 thanh ghi 8-bit, thanh ghi Port và thanh ghi
Tris. Thanh ghi Tris được sử dụng để điều khiển port là nhập hay xuất. Mỗi bit của
Tris sẽ điều khiển mỗi chân của port đó, nếu giá trị của bit là 1 thì chân liên quan là
nhập, ngược lại nếu giá trị của bit là 0 thì chân liên quan là xuất. Thanh ghi Port
được sử dụng để chứa giá trị của port liên quan. Mỗi bit của thanh ghi Port sẽ chứa
giá trị của chân liên quan.
Cấu trúc của chân GPIO được thể hiện trong hình 2.4
Trang 12
Chương 2: Giới thiệu vi điều khiển PIC16F887
Hình 2.4 Cấu tạo của chân GPIO
2.2.4 Hoạt động của khối giao tiếp EUSART
Khối giao tiếp nối tiếp EUSART (Enhanced Universal Synchronous
Asynchronous Receiver Transmitter) cho phép cấu hình hoạt động ở chế độ giao
tiếp nối tiếp đồng bộ và không đồng bộ. Trong đề tài này, chế độ giao tiếp không
đồng bộ được sử dụng. Phần này sẽ tập trung mô tả hoạt động của module
EUSART ở chế độ không đồng bộ.
Hoạt động truyền:
Sơ đồ khối bộ truyền được thể hiện trong hình 2.5.
Hình 2.5 Sơ đồ khối bộ truyền của module EUSART
Trang 13
Chương 2: Giới thiệu vi điều khiển PIC16F887
Bộ phận chính của khối truyền là thanh ghi truyền TSR. Thanh ghi này
không thể truy cập bằng phần mềm, mà được truy cập gián tiếp qua thanh
ghi đệm truyền TXREG. Bộ truyền được kích hoạt khi cấu hình các bit
TXEN=1, SYNC=0, SPEN=1. TXEN=1 kích hoạt bộ truyền của EUSART.
SYNC=0 cấu hình EUSART hoạt động ở chế độ không đồng bộ. SPEN=1
cho phép bộ EUSART hoạt động và cấu hình chân TX/CK là chân xuất.
- Quá trình truyền được khởi tạo bằng cách ghi dữ liệu truyền vào thanh
ghi TXREG. Nếu đây là dữ liệu truyền đầu tiên hoặc dữ liệu truyền trước
đã truyền hoàn tất thì dữ liệu trong TXREG ngay lập tức sẽ được truyền
vào thanh ghi TSR. Nếu thanh ghi TSR vẫn còn chứa dữ liệu của ký tự
truyền trước thì dữ liệu mới trong TXREG sẽ được giữ cho đến khi bit
Stop của ký tự đang truyền hoàn tất. Sau đó dữ liệu chờ trong TXREG sẽ
được truyền vào TSR.
- Các bước thiết lập quá trình truyền:
o Khởi tạo cặp thanh ghi SPBRGH, SPBRG và các bit BRGH,
BRG16 để cấu hình tốc độ Baud.
o Thiết lập bit SYNC=0, và bit SPEN=1.
o Gởi dữ liệu cần truyền vào TXREG, quá trình truyền sẽ bắt đầu.
Hoạt động nhận:
Sơ đồ khối bộ nhận được thể hiện trong hình 2.6.
Dữ liệu được nhận trên chân RX/DT và đẩy vào khối Data Recovery. Khi tất
cả 8 hoặc 9 bit của ký tự nhận đã được dịch vào, chúng sẽ ngay lập tức được
chuyển vào bộ đệm 2 ký tự FIFO. Bộ đệm FIFO và thanh ghi RSR không thể
truy cập trực tiếp bằng phần mềm mà được truy cập gián tiếp thông qua
thanh ghi RCREG. Dữ liệu trong bộ đệm nhận được đọc bằng cách đọc
thanh ghi RCREG. Bộ nhận được kích hoạt khi cấu hình các bit CREN=1,
SYNC=0, SPEN=1. CREN=1 kích hoạt bộ nhận của EUSART. SYNC=0
cấu hình EUSART hoạt động ở chế độ không đồng bộ. SPEN=1 cho phép bộ
EUSART hoạt động và cấu hình chân RX/DT là chân nhập.
Trang 14
Chương 2: Giới thiệu vi điều khiển PIC16F887
Cờ ngắt nhận RCIF=1 khi bộ nhận EUSART được kích hoạt và có một ký tự
đã được nhận trong bộ đệm nhận FIFO và chưa được đọc. Bit RCIF là bit chỉ
đọc, không thể ghi bằng phần mềm. Ngắt nhận được kích hoạt khi cấu hình
các bit sau: RCIE=1, PEIE=1 và GIE=1. Sau khi đã thiết lập các bit như trên,
ngắt nhận xảy ra ngay khi nhận xong một ký tự trong bộ đệm nhận. Cờ RCIF
được xóa bằng phần cứng khi không có ký tự nào chưa đọc trong bộ đệm
nhận.
Hình 2.6 Sơ đồ khối bộ nhận USART.
2.2.5 Cấu tạo và hoạt động của khối điều xung PWM
PIC16F887 có hai bộ điều xung, hai bộ này sẽ tạo ra các tín hiệu điều xung
trên các chân CCP1 và CCP2. Độ rộng, chu kỳ, và độ phân giải được xác định bởi
các thanh ghi PR2, T2CON, CCPR1L, CCPR2L, CCP1CON, CCP2CON.
Để các chân CCPx (CCP1 và CCP2) hoạt động ở chế độ PWM, cần xóa bit
TRIS tương ứng của các chân đó. Sơ đồ khối của các bộ điều xung được mô tả
trong hình 2.7.
Chú thích (1) trong hình 2.7 biểu thị rằng thanh ghi 8-bit TMR2 được kết
hợp với 2-bit prescaler của bộ dao động nội để tạo ra bộ định thời 10-bit. Các thanh
ghi CCPRxH là các thanh ghi chỉ đọc, kết hợp với 2 bit 5 và 4 của các thanh ghi
CCPxCON có vai trò định độ rộng của xung, các thanh ghi này được ghi gián tiếp
thông qua các thanh ghi CCPRxL. Thanh ghi 8-bit PR2 định chu kỳ cho xung ra.
Trang 15
Chương 2: Giới thiệu vi điều khiển PIC16F887
Hình 2.7 Sơ đồ khối bộ PWM.
Sóng điều xung tại các chân CCPx có giản đồ thời gian như hình 2.8.
Hình 2.8 Giản đồ thời gian của sóng điều xung tại chân CCPx
Thanh ghi TMR2 kết hợp với 2 bit prescaler sẽ đếm lên nhờ xung clock của
hệ thống. Khi giá trị của TMR2 nhỏ hơn giá trị của CCPRxL:CCPxCON,
chân CCPx ở mức cao. Khi giá trị của TMR2 bằng với giá trị này, bộ so sánh sẽ đảo
chân CCPx xuống mức 0. Khi giá trị của TMR2 bằng với PR2, TMR2 sẽ được xóa
về 0 đồng thời kết thúc chu kỳ xung, chân CCPx lại được thiết lập mức cao.
Chu kỳ của xung được tính theo công thức sau:
Chu kỳ PWM = [(PR2)+1].4.TOSC.(giá trị Prescale của TMR2)
Ở đây TOSC là chu kỳ của clock hệ thống. TOSC = 1/FOSC.
Độ rộng xung được tính theo công thức sau:
Độ rộng xung = (CCPxL:CCPxCON).TOSC.(giá trị Prescale của TMR2)
Trang 16
Chương 2: Giới thiệu vi điều khiển PIC16F887
2.2.6 Ngắt ngoài trên chân RB0
Hình 2.9 là sơ đồ khối logic của hệ thống ngắt trong PIC16F887.
Hình 2.9 Sơ đồ khối logic của hệ thống ngắt trong PIC16F887.
Ngắt ngoài trên chân RB0 được kích khởi theo sườn. Sườn lên nếu như bit
INTEDG=1 (bit 6 của thanh ghi OPTION_REG), sườn xuống nếu INTEDG=0. Khi
một sườn thích hợp xuất hiện trên chân RB0, cờ INTF được bật lên 1. Ngắt này có
thể được cho phép nếu bit INTE=1, không cho phép nếu INTE=0. Cờ INTF cần
được xóa bằng phần mềm trong trình phục vụ ngắt trước khi cho phép ngắt trở lại.
Trang 17
Chương 2: Giới thiệu vi điều khiển PIC16F887
2.2.7 Cấu tạo và hoạt động của bộ Timer1
Bộ timer1 là bộ định thời 16-bit có cấu tạo như hình 2.10.
Hình 2.10 Sơ đồ khối của bộ timer1.
Bộ timer1 là bộ đếm lên 16-bit được truy xuất gián tiếp thông qua cặp thanh
ghi TMR1H, TMR1L. Đọc hoặc ghi các thanh ghi này sẽ cập nhật trực tiếp giá trị
cho bộ timer. Khi được sử dụng với nguồn clock nội, bộ timer 1 sẽ có vai trò là bộ
định thời. Khi được sử dụng với nguồn clock ngoại, nó sẽ có vai trò là định thời
hoặc bộ đếm. Sử dụng bit TMR1CS để chọn nguồn clock.
Các bit T1CKPS định giá trị cho bộ chia tần số Prescaler. Khi bộ
TMR1 tràn (từ FFFFh đến 0000h) cờ ngắt TMR1IF sẽ được thiết lập lên 1. Nếu lúc
này cờ TMR1IE =1, cờ PEIE=1 và GIE=1 thì ngắt timer1 sẽ xảy ra. Cờ TMR1IF
cần được xóa trong trình phục vụ ngắt timer1.
2.2.8 Cách nạp cho PIC16F887
Có nhiều cách nạp cho chip PIC16F887, trong đề tài này sử dụng cách nạp
bằng mạch nạp ezPIC Programmer của Sunrom và phần mềm nạp PICPgm
Programmer. Mạch nạp được kết nối qua cổng COM của máy vi tính. Sơ đồ nguyên
Trang 18
Chương 2: Giới thiệu vi điều khiển PIC16F887
lý, mạch thực tế của mạch nạp ezPIC Programmer của Sunrom được cho ở hình
2.11 và 2.12.
Hình 2.11 Sơ đồ nguyên lý mạch nạp ezPIC Programmer của Sunrom.
Hình 2.12 Mạch nạp ezPIC Programmer của Sunrom.
Trang 19
Chương 2: Giới thiệu vi điều khiển PIC16F887
Phần mềm nạp PICPgm Programmer được viết bởi Christian Stadler, phần
mềm này giao tiếp được với nhiều mạch nạp, trong đó có ezPIC Programmer của
Sunrom. Đặc biệt PICPgm Programmer nạp được hầu hết các dòng PIC của
Microchip. Phần mềm này rất dễ sử dụng và hoạt động rất ổn định, giao diện được
thể hiện trong hình 2.13.
Hình 2.13 Giao diện phần mềm PICPgm Programmer.
1.6. Kết chương
Chương này đã mô tả sơ lược cấu tạo của PIC16F887, hoạt động của một vài
thiết bị ngoại vi được sử dụng trong đề tài, cách nạp cho PIC16F887 bằng mạch nạp
ezPIC và chương trình nạp PICPgm Programmer.
Chương tới sẽ trình bày quá trình thiết kế và thi công phần cứng.
Trang 20
Chương 3: Thiết kế và thi công phần cứng
Chương 3: Thiết kế và thi công phần cứng
1.7. Mở chương
Chương này sẽ trình bày cách thiết kế và thi công phần cứng, tính toán và
chọn lựa các linh kiện sử dụng.
1.8. Nội dung
3.2.1 Sơ đồ khối phần cứng
Sơ đồ khối phần cứng được mô tả như hình 3.1.
Hình 3.1 Sơ đồ khối phần cứng.
Khối điều khiển trung tâm sẽ kết nối với khối điều khiển công suất qua chân
điều xung CCP1, điều khiển khối công suất đảo chiều động cơ.
Trang 21
Khối điều khiển trung
tâm PIC16F887
Khối điều
khiển công
suất
Động cơ
Encoder
Bộ phận hiển
thị LCD 16x2
MAX232 chuyển đổi
mức điện áp
Khối sửa dạng xung
Các phím
điều khiển
PWM
Cổng DB9
U
A
R
T
R S 2 3 2
Đảo chiều
Chương 3: Thiết kế và thi công phần cứng
Khối điều khiển công suất điều khiển công suất cung cấp cho động cơ.
Khối Encoder đọc tốc độ động cơ và xuất ra các xung đếm, các xung này
được sửa thành xung vuông và đưa vào chân ngắt ngoài RB0 của vi điều khiển
PIC16F887 cho phép PIC16F887 giám sát được tốc độ của động cơ.
Các phím điều khiển cho phép người dùng cài đặt các thông số của hệ thống.
Khối hiển thị sử dụng LCD cho phép người dùng theo dõi hoạt động của
động cơ và các thông số của hệ thống.
Khối giao tiếp máy tính theo chuẩn giao tiếp nối tiếp không đồng bộ sử dụng
IC chuyển đổi điện áp MAX232.
3.2.2 Sơ đồ nguyên lý và hoạt động của các khối mạch
Sơ đồ nguyên lý trong hình 3.2 được thiết kế dựa trên sơ đồ khối trên.
Chip PIC16F887 điều khiển trung tâm làm nhiệm vụ tính toán, xuất ra xung
điều khiển cho khối điều khiển động cơ, điều khiển đảo chiều động cơ. Điều khiển
hiển thị LCD và giao tiếp với máy tính.
Khối giao tiếp máy tính gồm Max232 chuyển mức tín hiệu RS232 với mức
logic 0 (+3V đến +15V) sang TTL 0V, và mức logic 1 (-15V đến -3V) thành 5V.
Nhờ khối này, vận tốc hiện thời của động cơ sẽ được cập nhật lên máy tính và các
từ máy tính ta có thể điều khiển tốc độ động cơ, thay đổi các thông số của bộ điều
khiển PID. Giá trị của các tụ trên sơ đồ mạch là 10u được chọn theo datasheet của
nhà sản xuất.
Khối điều khiển công suất (mạch Drive cho FET) kích cho FET hoạt động
theo tín hiệu PWM từ PIC16F887. Để đảm bảo cho FET chuyển mạch nhanh ở đây
ta dùng mạch kích kiểu totem-pole gồm 2 BJT 2SD414 và 2SB548.
Khối đảo chiều động cơ dùng 2 tiếp điểm để đảo điện áp đặt vào động cơ.
Khối hiển thị dùng LCD 16x2 để hiện thị thông số Ki, Kp, Kd tốc độ hiện
thời, tốc độ cài đặt.
Khối nguồn cung cấp: mạch ổn áp dùng IC 7805 cấp điện áp 5V cho mạch
hoạt động.
Trang 22
Chương 3: Thiết kế và thi công phần cứng
D I O D E C H O N G C O N D U C T O R
1 N 4 0 0 7
D I O D E D O N G C O
1 N 4 0 0 7
R E L A Y D A O C H I E U
R E L A Y D P D T
3
4
5
6
8
7
1
2
R b K E O R E L A Y
2 K 7
R H A N D O N G D R I V E R
1 K 8
r w
R b D R I V E R
1 K
r s
K H O I C O N G S U A T
2 S B 5 4 8
g n d
d 7
d 6
g n d
v c c
C 1
0 . 1 u F
d 5
v r e f
1 2 V
g n d
R 7
4 k 7
d 3
d 2
k 0
J 5
C O N 2
1
2 v c c
g n d
k 1
p w m
k 2
d i r
k 3
k 4
k 5
x t a l 1
x t a l 2
g n d
V C C
d 0
C 1 8 1 5 D R I V E R
2 S C 1 8 1 5
d 1
C 1 8 1 5 K E O R E L A Y
2 S C 1 8 1 5
R h a n d o n g F E T t r e n
1 0 0
R b D R I V E R V D K
4 K 7
d i r
F E T
I R F 5 4 0 / T O
2 S D 4 1 4
R h a n d o n g F E T
4 k 7
-
+
U 9 A
L M 3 2 4
3
2
1
4
11
e n c o d e r
P 1
C O N N E C T O R D B 9
594837261
U 2
M A X 2 3 2
C 1 +1
C 1 -3
C 2 +4
C 2 -5VCC
16
G N D1 5
V+
2
V -6
R 1 O U T1 2
R 2 O U T9
T 1 I N1 1
T 2 I N1 0
R 1 I N1 3
R 2 I N8
T 1 O U T1 4
T 2 O U T7
R 1 51 k R 1 61 0 k
Y 1
1 2 M h z
v c c
C 3
1 0 u
C 4
1 0 u
C 6
2 . 2 u F
v r e f
r s t
C 9
0 . 1 u
C 1 0
3 3 p F
C 1 1
3 3 p F
C 1 2
1 0 u
J 8
D o n g C o
1
2
C 1 4
1 0 u
K H O I G I A O T I E P M A Y T I N H
K H O I H I E N T H I
K H O I N G U O N
K H O I E N C O D E R
K H O I D I E U K H I E N T R U N G T A M1 2 Vx t a l 1
V C C
x t a l 2
g n d
R 2
6 8 0
R 1
4 k 7
1 2
3
4
5
6
7
8
9
R 3
1 8 k
S W 1
S W
S W 2
I N C
S W 3
D E C
S W 4
C H A N G E
S W 6
O K
S W 7
C A N C E L
S W 8
O N / O F
V C C
r s t
p w m
K 0
K 1
K 2
K 3
d1
K 4
d2 d7d3 d4 d6d0 d5
K 5
K 0
K 3
K 1 K 2
K 4 K 5
a b
gnd L C D
U 4
L C D
VSS
1
VDD
2
VEE
3
RS
4
RW
5
E
6
D0
7
D1
8
D2
9
D3
10
D4
11
D5
12
D6
13
D7
14
A
15
K
16
K H O I P H I M N H A N
d 4
r x
t x
V C C
V C C
V C C
v c c
g n d
g n d
r x
t x
b
- +
D 1
B R 8 0 5 D
2
1
3
4
a
C 2
4 7 0 0 u F
C 5
3 3 0 0 u F
C 7
0 . 1 u F
R H A N D O N G L E D D A O C H I E U
2 K 2
L E D B A O D A O C H I E U
L E D
U 6
L M 7 8 0 5 / T O
V I N1
GND
2
V O U T3
J 1
C O N 2
1
2
g n d
v c c
R 4
1 8 k
R 5
8 2 0 D 2
B Z X 8 4 C 1 6 / S O T
e n c o d e r
R 61 0 k
v c c
1 2 V
J 2
o u t E n c o d e r
1
2
3
U 3
P I C 1 6 F 8 8 7 A
M C R L / V P P1
R A 0 / A N 0 / U L P W U / C 1 2 I N 0 -2
R A 1 / A N 1 / C 1 2 I N 1 -3
R A 2 / A N 2 / V R E F - / C V R E F / C 2 I N +4
R A 3 / A N 3 / V R E F + / C 1 I N +5
R A 4 / T 0 C K I / C 1 O U T6
R A 5 / A N 4 / S S / C 2 O U T7
R E 0 / A N 58
R E 1 / A N 69
R E 2 / A N 71 0
V D D1 1
V S S1 2
R A 7 / O S C 1 / C L K I N1 3
R A 6 / O S C 2 / C L K O U T1 4
R C 0 / T 1 O S O / T 1 C K I1 5
R C 1 / T 1 O S I / C C P 21 6
R C 2 / P 1 A / C C P 11 7
R C 3 / S C K / S C L1 8
R D 01 9
R D 12 0 R D 22 1
R D 32 2
R C 4 / S D I / S D A2 3
R C 5 / S D O2 4
R C 6 / T X / C K2 5
R C 7 / R X / D T2 6
R D 42 7
R D 5 / P 1 B2 8
R D 6 / P 1 C2 9
R D 7 / P 1 D3 0
V S S3 1
V D D3 2
R B 0 / A N 1 2 / I N T3 3
R B 1 / A N 1 0 / C 1 2 I N 3 -3 4
R B 2 / A N 83 5
R B 3 / A N 9 / P G M / C 1 2 I N 2 -3 6
R B 4 / A N 1 13 7
R B 5 / A N 1 3 / T 1 G3 8
R B 6 / I C S P C L K3 9
R B 7 / I C S P D A T4 0
rs en
rw
v c c
g n de n
Hình 3.2 Sơ đồ nguyên lý.
Trang 23
Chương 3: Thiết kế và thi công phần cứng
3.2.3 Tính toán các thông số của mạch
3.2.3.1 Mạch đảo chiều động cơ
Hình 3.3 Phần mạch đảo chiều động cơ.
Để điều khiển chiều quay của động cơ điện 1 chiều, ta có thể dùng mạch cầu
H, hoặc có thể dùng Relay. Vì dùng relay chi phí thấp hơn nên trong đồ án này
chúng tôi đã lựa chọn giải pháp này. Nguyên lý của mạch này như sau:
Khi chân dir ở mức thấp, BJT Q2 tắt, tiếp điểm 3 nối đến 4, tiếp điểm 6 nối
đến 8, khi đó Vcc nối tới chân 2 của CON2, cực D của FET nối tới chân 2 của
CON2 động cơ chạy theo chiều thuận (chiều quy ước). Khi có tín hiệu kích 5V tại
chân dir, BJT Q2 dẫn, tiếp điểm 3 nối đến 5, tiếp điểm 6 nối đến 7, lúc đó nguồn
cung cấp cho động cơ đảo ngược so với trường hợp trên, do đó động cơ quay theo
chiều ngược lại.
Ta tính chọn với dòng cực đại qua động cơ là 5A, Chọn Relay 10A.
Công suất của relay 530mW, -> dòng qua relay 0.530/12 = 44mA. Công suất
tổn hao trên BJT Q2 chủ yếu là công suất dẫn: P = Vcesat xIcsat = 0.25x44mA =
11mW.
Vậy chọn BJT 2SC1815 có: Ic = 150mA, Vce = 50V, công suất 400mW,
hfemin = 70.
Để BJT dẫn bảo hòa thì Ibmin = Ic/hfemin = 44/70 = 0.63mA.
Trang 24
Chương 3: Thiết kế và thi công phần cứng
Chọn dòng qua R13 khoảng 0.7mA, => R13 = 0.7V/0.7mA = 1k.
Chọn dòng Ib ~ 1.5Ibmin => chọn Ib = 1mA
Dòng qua R11 = Ib + IR13 = 1.7mA
R11 = (5V-0.7V)/1.7 = 2.53k =>chọn R11 = 2k2.
3.2.3.2 Tính toán cho FET
Tính dòng tối đa qua động cơ:
Ta có phương trình của động cơ ở trạng thái xác lập:
amLe IKBTT φω =+=
φ
ω
m
L
a K
BTI +=
Ứng với tải cụ thể ta có thể xác định được TL từ đó ta có thể xác định được
dòng Ia cực đại qua động cơ.
Giả sử ta tính với dòng tối đa qua động cơ là 5 A
Ta phải chọn MOSFET có VDS >2Vđộng cơ, dòng >1.5 -> 2lần Imax,
khoảng10A, công suất tiêu tốn trên MOSFET tùy thuộc vào từng loại FET, ở đây ta
chọn các thông số của IRF540 để tham khảo sau đó kiểm tra lại công suất có đảm
bảo hay không..
Công suất tiêu tán trên MOSFET bao gồm 2 thành phần: công suất tiêu tán
khi FET dẫn và công suất chuyển mạch:
Ptt = Pd + Psw
Công suất tiêu tán khi FET dẫn được tính theo công thức:
T
TRIP onDSond ..
2
=
Theo datasheet của IRF540, RDsonMax = 2.5Ω (Tj=150oC), Imax = 2.5 A,
T
Ton max = 1
Pdmax = 52x2.5 = 62.5W
Công suất tiêu tán khi MOSFET hoạt động chuyển mạch:
Trang 25
Chương 3: Thiết kế và thi công phần cứng
Hình 3.4 Dạng sóng VDS và VGS khi FET chuyển mạch.
Tổn hao trong quá trình chuyển từ off sang on
E1 = rDScc
tr r
DS
DSDS
tr
dsds tIVdttt
VVIdttitv ..
2
1)..(.)().( =−=∫∫
Tương tự như trên tổn hao khi từ on sang off:
E2 = fDScc
tf
dsds tIVdttitv ..2
1.)().( ==∫
Psw = swfrDScc fttIV )..(.2
1
+
Trang 26
Chương 3: Thiết kế và thi công phần cứng
Tần số điều xung được sử dụng ở đây là 24khz, trong phần mềm sử dụng
2000 mức điều xung, tuy nhiên, ta chỉ cần mạch đáp ứng 100 mức điều xung (vì
thời gian đáp ứng càng nhanh thì giá trị dòng đỉnh nạp cho tụ ngõ vào của FET càng
lớn, ta không muốn dòng đỉnh này quá lớn). Thời gian của 1 mức điều xung lúc này
là: 1/(24.1000.100) = 0.417µs =417ns. Tổng thời gian nạp và xả tụ ngõ vào tại cực
G phải nhỏ hơn giá trị này. Ta chọn tr + tf =200ns
Psw = 30.5. 200.10-9.24.103 = 720 mW.
Trong đó fsw là tần số chuyển mạch.
Công suất tổng cộng lớn nhất: 63.2W
Vậy MOSFET IRF540 có các thông số: VDSS = 100V, IDS = 33A, Pmax =
130W thỏa mãn các yêu cầu đề ra.
3.2.3.3 Tính toán mạch lái cho FET
Sơ đồ mạch Driver:
Hình 3.5 Mạch lái cho FET.
Mạch lái được mắc theo kiểu totem-pole gồm 2 BJT 2SD414 và 2SB548 để
đảm bảo tần số chuyển mạch nhanh cho FET.
Tính công suất của Q3 và Q4:
Trang 27
Chương 3: Thiết kế và thi công phần cứng
Ta tính dựa vào điện tích cần nạp cho tụ CGS.
PDRI = V.QG.fsw = 12.72.10-9.24.3 = 21mW.
QG :tổng điện tích nạp hoặc xả cho cực G. Theo datasheet, QG = 72nC
Mà: tx = QG/IG => IG = QG/tx
Tx thời gian nạp hoặc xả tụ ngõ vào, 2.tx =200ns=(tr + tf)
IG > 72.2/200 = 720mA
Chọn BJT Q3,Q4: có Vce > 2Vcc, P>2.21mW. Chọn BJT 2SD414 và
2SB548.
Tính R14: R14 = (24V-0.7V).60/720mA = 1.94k -> chọn 1k8
Tính chọn Q6:
Dạng sóng chuyển mạch của BJT có dạng như sau:
Hình 3.6 Dạng sóng chuyển mạch trên Q6.
Công suất tổn hao trong BJT ở chế độ chuyển mạch gồm công suất tổn hao
khi dẫn bão hòa và công suất tổn hao chuyển mạch.
P = Psw + Pdẫn
Tones.Icsat.
T
Pon Vc=
T
TIVP onCEsCEsdan = (1)
Dựa vào đồ thị ta thấy : trong quá trình chuyển đổi trạng thái làm việc, dòng
điện cực góp ic(t) và thời gian t có quan hệ tuyến tính :
Trang 28
Chương 3: Thiết kế và thi công phần cứng
Ic = Kt
Với K=
Icsat-Icoff
Tsw
Icoff có thể bỏ qua => K=
Icsat
Tsw
=> ic=
Icsat
Tsw
t
Trong quá trình của mỗi lần chuyển đổi trạng thái làm việc, năng lượng tiêu
hao của BJT có thể tính theo công thức :
Tsw Tsw
0 0
Icsat w.Icsat.VccE= icVc tVc
Tsw 2
Tscdt cdt= =∫ ∫
Trong mỗi chu kỳ, BJT chuyển đổi trạng thái làm việc 2 lần, trong 2 lần
chyển đổi đó, năng lượng tiêu hao là như nhau. Như vậy năng lượng tiêu hao trong
quá trình chuyển mạch là :
Esw= 2E =Tsw.Icsat.Vcc
Công suất tiêu tán trong quá trình chuyển mạch :
Psw=Icsat.Vcc.
w
T
Ts
(2)
Từ (1) và (2) ta có :
Ptt=
Tones.Icsat.
T
Vc + Icsat.Vcc.
w
T
Ts
Yêu cầu thời gian chuyển mạch Tsw của BJT phải nhỏ hơn thời gian chuyển
mạch của khóa điện tử.
Thời gian tsw của BJT thông thường khoảng vài chục đến vài trăm ns, ở đây
ta lấy tsw=100ns.
Với BJT Q5, icsat = Vcc/R14 = 12/1k8= 6.7mA.
Ton/T max =1, 1/T = f =24kHz thay vào công thức trên ta được :
Pttmax = 0.2x6.7 + 6.7x12x100x10-9x24x10-3 = 1.36mW.
Chọn BJT Q6 có Vce > 12x2 =24V, Ic>6.7x2, Ptt>1.36mW, chọn BJT Q6 là
C1815.
Để Q6 dẫn bão hòa dòng ibQ6 > icQ6/βmin = 6.7/70 ~0.1mA.
Trang 29
Chương 3: Thiết kế và thi công phần cứng
Chọn ibQ6 = 0.2mA.
R15 có tác dụng giảm thời gian tắt của BJT.
Chọn dòng qua R15 khoảng 0.7mA.
R15 = Vbe/Ir15 = 0.7V/0.7mA =1k.
R6 = (5V-0.7V)/(0.7mA+0.2mA) = 4k78.
Chọn R6 = 4k7.
3.3.4 Layout và thi công mạch
Layout và sơ đồ nguyên lý được thiết kế bằng phần mềm Orcad của hãng
Cadence. Mạch in được thiết kế như hình 3.7. Mạch in được thi công bằng phương
pháp ủi mạch lên board đồng và hàn gắn các linh kiện theo sơ đồ nguyên lý. Hình
ảnh mạch hoàn chỉnh được thể hiện trong hình 3.8.
Hình 3.7 Layout của phần mạch điều khiển.
Trang 30
Chương 3: Thiết kế và thi công phần cứng
Hình 3.8 Mạch điều khiển sau khi thi công xong.
1.9. Kết chương
Trong chương này, phần cứng đã được mô tả, thiết kế và tính toán một cách
chi tiết. Các IC được sử dụng là PIC16F887, LM324, MAX232, LCD16x2. Ngoài
ra còn có các linh kiện khác như tụ, điện trở, relay, nút nhấn, cổng DB9, BJT, FET,
cầu diode và các connector.
Trang 31
Chương 4: Thiết kế phần mềm
Chương 4 : Thiết kế phần mềm
1.10. Mở chương
Việc thiết kế phần mềm là công đoạn khó nhất của đồ án này bởi hệ thống
yêu cầu xử lý phức tạp. Do đó, em quyết định chọn ngôn ngữ bậc cao C để thiết kế
phần mềm. Phần mềm được biên soạn và biên dịch trên phần mềm CCS. Phần mềm
được chia thành hai phần:
- Thiết kế phần mềm cho vi điều khiển PIC16F887.
- Thiết kế phần mềm trên máy vi tính giao tiếp với mạch điều khiển. Phần
mềm này được viết bằng Visual Basic.
Cuối chương sẽ là phần nhận xét về đề tài và định hướng phát triển đề tài.
1.11. Nội dung
4.2.1 Phần mềm cho vi điều khiển PIC16F887
Phần này trình bày những thuật toán chính của chương trình nạp cho
PIC16F887 gồm những lưu đồ thuật toán sau:
- Lưu đồ thuật toán tổng quát.
- Lưu đồ chương trình xử lý phím.
- Lưu đồ chương trình đo tốc độ động cơ.
- Lưu đồ chương trình ngắt nhận UART.
4.2.1.1 Thuật toán chương trình chính
Thuật toán chương trình chính được thể hiện trong hình 4.1 (trang 33).
Chương trình khai báo các biến toàn cục là Ki, Kp, Kd, Sp. Các biến Ki, Kp,
Kd đóng vai trò là các tham số của bộ xử lý PID. Biến Sp là biến chứa vận tốc thực
của động cơ đo được nhờ đếm xung encoder.
Sp: vận tốc của động cơ.
Ki: hệ số tích phân.
Kp: hệ số tuyến tính.
Kd: hệ số vi phân.
Tiếp theo ta khởi tạo các thiết bị ngoại vi cho PIC16F887:
- Cài đặt bộ timer2 hoạt động ở chế độ PWM.
Trang 32
Chương 4: Thiết kế phần mềm
- Cấu hình chân RB1 hoạt động ở chế độ PWM.
- Thiết lập thanh ghi Trisa là 0xFF. Với thiết lập này thì porta sẽ được cấu
hình là port nhập. Porta được sử dụng để kết nối với các phím.
- Thiết lập thanh ghi Trisd là 0. Với thiết lập này thì portd là port xuất.
Portd được sử dụng để kết nối với 8 chân dữ liệu của LCD.
- Thiết lập thanh ghi Trise là 0. Với thiết lập này thì porte là port xuất.
Porte được sử dụng để kết nối với 3 chân điều khiển của LCD.
- Cài đặt cho bộ UART hoạt động ở tốc độ Baud 9600kbits/s.
- Bộ UART được sử dụng để giao tiếp nối tiếp không đồng bộ với máy
tính, cho phép mạch điều khiển truyền dữ liệu lên máy tính, và nhận dữ
liệu từ máy tính. Ở đây, bộ UART truyền hoạt động ở chế độ thăm dò.
Còn bộ UART nhận hoạt động ở chế độ ngắt.
- Cho phép ngắt timer1. Bộ timer1 kết hợp với ngắt ngoài trên chân RB0
được sử dụng để đo tốc độ động cơ.
- Cho phép ngắt sườn lên trên chân RB0, chân RB0 kết nối với chân tín
hiệu của encoder. Khi có sườn lên tại chân RB0, ngắt RB0 sẽ xảy ra.
Sau khi khởi tạo cho các thiết bị ngoại vi, chương trình sẽ thực hiện vòng lặp
vô hạn. Bắt đầu vòng lặp, chương trình gọi hàm quét phím. Thuật toán nhận phím
của hàm quét phím sẽ kiểm tra phím nhấn, loại bỏ quá trình rung của phím. Tiếp
theo chương trình sẽ kiểm tra có phím nhấn hay không. Nếu không có, chương trình
sẽ quay trở về đầu vòng lặp. Nếu có, chương trình sẽ gọi hàm xử lý phím nhấn. Sau
đó quay trở về đầu vòng lặp.
Như vậy, chương trình chính sẽ khởi tạo cho các thiết bị ngoại vi, sau đó
kiểm tra phím nhấn. Khi xảy ra các ngắt, chương trình sẽ thực hiện chương trình
phục vụ ngắt của ngắt tương ứng.
Chương trình phục vụ ngắt timer1 được phân tích trong mục 4.2.1.3.
Chương trình phục vụ ngắt nhận UART được phân tích trong mục 4.2.1.4.
Chương trình phục vụ ngắt RB0 chỉ làm một nhiệm vụ là tăng biến đếm
xung encoder. Chương trình này sẽ không được phân tích trong đề tài.
Trang 33
Chương 4: Thiết kế phần mềm
Do tính phổ biến, các thuật toán của các hàm giao tiếp LCD sẽ không được
phân tích trong đề tài.
Hình 4.1 Lưu đồ thuật toán chương trình chính.
Trang 34
Bắt đầu
Khai báo các biến toàn cục
Kp, Ki, Kd, SP
Cài đặt Timer2 ở chế độ PWM
Cài đặt UART tốc độ Baud 9600kbits/s
Chọn chân RB1 hoạt động ở chế độ PWM
Thiết lập thanh ghi TRISA là 0xFF.(porta là port nhập, kết nối với phím)
Thiết lập thanh ghi TRISD là 0 (portd là port xuất, kết nối với chân dữ liệu LCD)
Thiết lập thanh ghi TRISE là 0(porte là port xuất, kết nối với chân điều khiển LCD)
Cho phép ngắt nhận UART
Cho phép ngắt timer1. Timer1 được dùng để đo tốc độ.
Cho phép ngắt ngoài trên chân RB0
Có phím nhấn?
Gọi hàm quét phím
Gọi hàm xử lý phím nhấn
Đúng
Sai
Chương 4: Thiết kế phần mềm
4.2.1.2 Thuật toán chương trình xử lý phím
Thuật toán hàm xử lý phím được thể hiện trong hình 4.2
Sau khi hàm quét phím xác nhận có phím nhấn, hàm xử lý phím sẽ gán giá
trị porta cho biến phim. Biến phim được so sánh với các giá trị để xác định phím
nào được nhấn.
Chương trình định nghĩa các macro cho được sử dụng cho các phím như sau:
#define INC 0x3E //Phím tăng (increase)
#define DEC 0x3D //Phím giảm (decrease)
#define SHIFT 0x3B //Phím dịch thông số cài đặt (increase)
#define OK 0x37 //Phím chấp nhận giá trị cài đặt
#define CANCEL 0x2F //Phím không chấp nhận giá trị cài đặt
#define ON_OFF 0x1F //Phím tắt mở động cơ
#define INV_DIR 0x3C //Phím đảo chiều, kết hợp nhấn cả hai
//phím INC và DEC cùng lúc.
Chương trình sẽ tùy vào phím nào nhấn mà xử lý các tác vụ tương ứng, sau
đó kết thúc chương trình.
Với phím OK: chương trình sẽ gán giá trị vừa nhập cho biến tương ứng với
thông số đang cài đặt. Sau đó hiển thị ra LCD dòng chữ “setup” ở vị trí 0x80 và
thông số vừa cài đặt ở vị trí 0xC8.
Với phím CANCEL: chương trình sẽ Hiển thị ra LCD dòng chữ “setup” ở vị
trí 0x80 và “cancel” ở vị trí 0xC8.
Với phím INC: chương trình sẽ tăng biến nhap_value lên một đơn vị. Biến
này chứa giá trị đang cài đặt.
Với phím DEC: chương trình sẽ giảm biến nhap_value một đơn vị.
Với phím ON_OFF: nếu động cơ đang mởtắt động cơ và ngược lại.
Với phím SHIFT: chương trình sẽ dịch chuyển thông số cài đặt theo vòng
sau: Kp Ki Kd Sp. Sau đó gán thông số muốn thay đổi cho biến
nhap_value .
Trang 35
Chương 4: Thiết kế phần mềm
Với phím INV_DIR: chương trình sẽ đảo chân RB3. Sau đó hiển thị ra LCD
dòng chữ “INV_DIR” ở vị trí 0xC8.
Trang 36
Chương 4: Thiết kế phần mềm
Hình 4.2 Lưu đồ thuật toán chương trình xử lý phím.
Trang 37
Bắt đầu
Gán giá trị porta cho biến phim
Phím OK?
Gán giá trị vừa nhập cho biến
tương ứng với thông số đang
cài đặt..
Hiển thị ra LCD dòng chữ
“setup” ở vị trí 0x80 và thông
số vừa cài đặt ở vị trí 0xC8.
Phím
Cancel?
Hiển thị ra LCD dòng chữ
“setup” ở vị trí 0x80 và
“cancel” ở vị trí 0xC8
Phím INC?
Tăng biến nhap_value lên
một đơn vị
Phím
DEC?
Giảm biến nhap_value đi
một đơn vị
Phím
ON/OFF?
Động cơ
đang mở?
tắt PWM để dừng động cơ
Mở PWM để bật động cơ
Phím
Shift?
Dịch chuyển thông số cài
đặt theo vòng sau: Kp,
Ki, Kd, Sp.
Gán thông số muốn thay
đổi cho biến nhap_value
Phím
INV?
Đảo chân RB3.
Hiển thị ra LCD dòng
chữ “INV_DIR” ở vị trí
0xC8.
Kết thúc
Đúng
Sai
Đúng
Đúng
Đúng
Đúng
Đúng
Đúng
Sai
Sai
Sai
Sai
Sai
Sai
Đúng
Sai
Chương 4: Thiết kế phần mềm
4.2.1.3 Thuật toán chương trình đo tốc độ động cơ
Chương trình đo tốc độ động cơ được đặt trong hàm phục vụ ngắt timer1.
Thuật toán chương trình phục vụ ngắt timer1 được thể hiện trong hình 4.3.
Timer1 được cài đặt tràn sau mỗi 2.5ms. Như vậy chương trình phục vụ ngắt
timer1 được thực thi sau mỗi 2.5ms. Nhiệm vụ chính của hàm này là tính tốc độ
hiện tại của động cơ rồi so sánh với tốc độ cài đặt, tính toán độ rộng xung theo thuật
toán PID sau đó cập nhật độ rộng xung vừa tính cho bộ PWM.
Ban đầu, hàm sẽ dừng bộ timer1 và không cho phép ngắt trên chân RB0.
Gán biến pulse_count cho biến Sp, biến pulse_count được dùng để đếm số
xung từ encoder đưa về chân RB0 trong khoảng thời gian 2.5ms. Biến này được
tăng lên một đơn vị trong chương trình phục vụ ngắt chân RB0. Sau khi gán, biến
này được xóa về 0.
Sau đó, chương trình sẽ tính tốc độ của động cơ dựa trên công thức sau:
Tốc độ = pulse_count / (400 x 2.5ms x 10-3) PPR (pulses per round).
Trong đó 400 là số xung encoder tạo ra khi động cơ quay đúng một vòng.
Sau khi đã có tốc độ động cơ hiện thời, chương trình sẽ so sánh tốc độ hiện
thời và tốc độ cài đặt, tính toán độ rộng xung theo thuật toán PID dựa trên các tham
số Kp, Ki, Kd, vận tốc cài đặt, vận tốc đo được.
Khi đã có độ rộng xung cần điều khiển, chương trình tiến hành cập nhật độ
rộng xung cho bộ PWM. Như vậy việc áp dụng thuật toán PID để điều khiển độ
rộng xung được thực hiện trong chương trình phục vụ ngắt timer1 này.
Sau khi đã thực hiện xong việc tính toán độ rộng xung cho khối PWM,
chương trình sẽ cấu hình lại bộ timer1 tràn sau 2.5ms và kết thúc hàm. Cụ thể như
sau:
- Cấu hình giá trị phù hợp cho thanh ghi TMR1, các bit điều khiển bộ
prescaler.
- Cho phép bộ timer1 hoạt động.
- Cho phép ngắt timer1.
- Cho phép ngắt ngoài RB0.
Trang 38
Chương 4: Thiết kế phần mềm
Hình 4.3 Lưu đồ thuật toán chương trình phục vụ ngắt timer1.
Trang 39
Bắt đầu
Dừng timer1
Không cho phép ngắt ngoài trên chân RB0
Gán biến pulse_count cho biến Sp.
Hiển thị tốc độ động cơ lên LCD.
Gởi giá trị biến Sp lên máy tính.
Gán 0 cho biến pulse_count.(biến pulse_count được dùng để đếm số xung encoder
đưa về chân ngắt ngoài RB0, trong chương trình phục vụ ngắt RB0, biến
pulse_count được tăng lên một đơn vị).
Cập nhật duty cho module PWM
Cài đặt lại timer1 tràn sau 2.5ms.
Cho phép timer1 đếm
Cho phép ngắt timer1
Cho phép ngắt ngoài INT trên chân RB0.
Kết thúc
Chương 4: Thiết kế phần mềm
4.2.1.4 Thuật toán chương trình phục vụ ngắt nhận UART
Chương trình phục vụ ngắt nhận có thuật toán tương tự chương trình xử lý
phím. Thuật toán chương trình phục vụ ngắt nhận được thể hiện trong hình 4.4.
Mỗi lần điều khiển từ máy tính, chương trình điều khiển trên máy tính viết
bằng Visual Basic sẽ gởi 2 byte. Byte thứ nhất là byte chứa mã lệnh để mạch điều
khiển nhận biết giá trị đang được cài đặt. Byte thứ hai là byte dữ liệu chứa giá trị
cần cài đặt.
Các biến được sử dụng trong hàm này gồm:
- Biến dem_byte: biến này đếm số byte nhận được.
- Biến byte_lenh: biến này chứa nội dung của byte nhận đầu tiên.
- Biến byte_dulieu: biến này chứa nội dung của byte thứ hai.
Ban đầu, hàm sẽ không cho phép ngắt toàn cục nhằm tránh hiện tượng xung
đột ngắt khi các ngắt có thứ tự ưu tiên hơn xảy ra trong khi đang thực hiện chương
trình phục vụ ngắt nhận UART.
Sau đó hàm sẽ kiểm tra biến dem_byte để biết được số thứ tự byte đang
nhận. Nếu byte nhận được là byte đầu tiên (dem_byte bằng 0), hàm sẽ gán giá trị
thanh ghi RCREG cho biến byte_lenh và tăng giá trị của biến dem_byte một đơn vị
rồi kết thúc hàm.
Nếu byte nhận được không phải byte đầu tiên (lúc này dem_byte bằng 1),
hàm sẽ gán giá trị thanh ghi RCREG cho biến byte_dulieu, gán 0 cho biến
dem_byte, kiểm tra giá trị của biến byte_lenh và có các xử lý tương ứng với từng
giá trị của byte_lenh rồi kết thúc hàm.
- Với byte_lenh bằng 0: hàm gán giá trị biến byte_dulieu cho biến Kp.
- Với byte_lenh bằng 1: hàm gán giá trị biến byte_dulieu cho biến Ki.
- Với byte_lenh bằng 2: hàm gán giá trị biến byte_dulieu cho biến Kd.
- Với byte_lenh bằng 3: hàm gán giá trị biến byte_dulieu cho biến Sp.
- Với byte_lenh bằng 4: nếu byte_dulieu bằng 0 tắt động cơ, nếu byte
dữ liệu bằng 1 mở động cơ.
- Với byte_lenh bằng 5: hàm sẽ đảo chân RB3 để đảo chiều động cơ.
Trang 40
Chương 4: Thiết kế phần mềm
Hình 4.3 Lưu đồ thuật toán chương trình phục vụ ngắt nhận UART.
Trang 41
Bắt đầu
Tăng biến dem_byte 1 đơn
vị: dem_byte++ .
Gán giá trị thanh ghi
RCREG cho biến byte_lenh.
Byte thứ nhất?
Gán 0 cho biến đếm số byte
dem_byte = 0.
Gán giá trị thanh ghi RCREG
cho biến dữ liệu nhận
byte_dulieu = RCREG.
Byte_lenh=
=0?
Gán biến byte_dulieu cho biến Kp
byte_dulieu
bằng 0?
tắt PWM để dừng động cơ
Mở PWM để bật động cơ
Kết thúc
Đúng
Sai
Đúng
Đúng
Đúng
Đúng
Đúng
Sai
Sai
Sai
Sai
Sai
Byte_lenh=
=1?
Gán biến byte_dulieu cho biến Ki
Byte_lenh=
=2?
Gán biến byte_dulieu cho biến Kd
Byte_lenh=
=3?
Gán biến byte_dulieu cho biến Sp
Byte_lenh=
=4?
Byte_lenh=
=5?
Đảo chân RB3 để đảo chiều
Đúng
SaiSai
Đúng
Chương 4: Thiết kế phần mềm
4.2.2 Phần mềm trên máy vi tính giao tiếp với mạch điều khiển
Phần mềm trên máy tính giao tiếp với mạch điều khiển được viết bằng
Visual Basic. Có giao diện như hình 4.4.
Hình 4.4 Giao diện phần mềm điều khiển trên máy tính.
Trong hình 4.4, giao diện gồm 4 phần:
- 1: Phần điều khiển gồm các thanh trượt KP, KI, KD, Speed bên cạnh là
các box chứa giá trị điều khiển tương ứng với vị trí thanh trượt. Nút
Direction điều khiển chiều động cơ. Nút On, Off điều khiển mở và tắt
động cơ
- 2: Phần hiển thị tốc độ của động cơ, dữ liệu tốc độ nhận từ mạch điều
khiển.
- 3: phần cài đặt cho cổng COM, cho đồ thị. Nút Exit đóng cổng COM và
thoát chương trình.
- 4: phần đồ thị vận tốc của động cơ. Độ phân giải theo trục thời gian là
2.5ms.
Trang 42
1
23 4
Chương 4: Thiết kế phần mềm
Các thuật toán khi thay đổi các thanh trượt hoặc kích các nút nhấn trong khối
điều khiển tương tự nhau. Chương trình sẽ gởi 2 byte xuống mạch điều khiển. Byte
thứ nhất chứa mã lệnh để mạch điều khiển biết được thông số nào đang được cài
đặt. Byte thứ hai chứa giá trị cài đặt. Các hình 4.5, 4.6, 4.7, 4.8, 4.9, 4.10 là các lưu
đồ thuật toán của phần điều khiển.
Hình 4.5 Lưu đồ thuật toán khi điều khiển thanh trượt Kp.
Hình 4.6 Lưu đồ thuật toán khi điều khiển thanh trượt Ki.
Trang 43
Bắt đầu
Out put.Com1 = 0
Out put. Com1= giá trị lấy từ thanh
trượt Kp
Kết thúc
Bắt đầu
Out put.Com1 = 1
Out put. Com1= giá trị lấy từ thanh
trượt Ki
Kết thúc
Chương 4: Thiết kế phần mềm
Hình 4.7 Lưu đồ thuật toán khi điều khiển thanh trượt Kd.
Hình 4.8 Lưu đồ thuật toán khi điều khiển thanh trượt Speed.
Trang 44
Bắt đầu
Out put.Com1 = 2
Out put. Com1= giá trị lấy từ thanh trượt Kd
Kết thúc
Bắt đầu
Out put.Com1 = 3
Out put. Com1= giá trị lấy từ thanh trượt
Speed
Kết thúc
Chương 4: Thiết kế phần mềm
Hình 4.9 Lưu đồ thuật toán khi điều khiển các nút On/Off.
Hình 4.10 Lưu đồ thuật toán khi điều khiển nút Direction.
Trang 45
Kết thúc
Bắt đầu
Out put.Com1 = 4
Gởi 1 xuống cổng COM nếu kích nút ON: Out put. Com1= 1 ;
Gởi 0 xuống cổng COM nếu kích nút OFF: Out put. Com1= 0 ;
Bắt đầu
Out put.Com1 = 5
Out put. Com1= giá trị lấy từ thanh
trượt Kp
Kết thúc
Chương 4: Thiết kế phần mềm
Hình 4.11 là lưu đồ thuật toán chương trình nhận dữ liệu từ MCU và hiển thị
trên giao diện. Nếu có dữ liệu nhận được từ cổng COM, dữ liệu này là tốc độ của
động cơ, thì chương trình sẽ hiển thị giá trị vận tốc nhận được lên đồ thị vận tốc.
Sau đó tăng biến đếm thời gian để vẽ đồ thị cho lần nhận kế tiếp.
Hình 4.11 Lưu đồ thuật toán chương trình nhận dữ liệu từ MCU.
Trang 46
Bắt đầu
Có nhận được byte dữ liệu từ
cổng COM1?
Đúng
Sai
Tăng biến đếm thời gian để vẽ đồ thị cho lần nhận kế tiếp
Hiển thị giá trị nhận được (tốc độ) lên vị trí (Text) hiển thị tốc độ
Vẽ lên đồ thị vận tốc giá trị nhận được
Kết thúc
Chương 4: Thiết kế phần mềm
1.12. Kết luận chương
Qua chương này, việc thiết kế phần mềm và các thuật toán đã được mô tả
tương đối chi tiết. Phần mềm trên mạch điều khiển cho phép điều khiển động cơ
theo thuật toán PID đã giới thiệu ở chương 1. Đồng thời cũng cho phép cài đặt các
thông số cho bộ điều khiển bằng hai phương pháp: dùng phím trên mạch hoặc điều
khiển trên máy tính thông qua cổng COM.
1.13. Nhận xét đánh giá hệ thống
Đề tài đã được hoàn thành đúng với những dự định ban đầu. Hệ thống điều
khiển đã chạy rất ổn định và cho phép giám sát và điều khiển động cơ tương đối
chính xác. Khi thay đổi momen tải, động cơ vẫn được ổn định ở tốc độ cài đặt. Tuy
nhiên, với khả năng của chúng em thì khối lượng công việc của đề tài là khá lớn và
khá phức tạp nên đề tài vẫn chưa phát triển thêm được một số tính năng cho hệ
thống. Chúng em rất mong được sự chỉ bảo, đóng góp ý kiến của các thầy cô giáo
và những người có chuyên môn.
1.14. Hướng phát triển đề tài
Hệ thống điều khiển đã chạy tốt với động cơ DC 12V công suất nhỏ. Trên cơ
sở đó, đề tài nên được phát triển theo những hướng sau:
- Điều khiển động cơ công suất lớn (vài kW).
- Phát triển hệ thống điều khiển và giám sát động cơ qua web.
Trang 47
Tài liệu tham khảo
Tài liệu tham khảo
Điện tử công suất-Nguyễn Bính
Truyền Động Điện – Bùi Quốc Khánh - Nguyễn Thị Hiền - Nguyễn Văn Liễn
Datasheet của các IC PIC16F887, LM324, MAX232
Tutorial LCD HD44780 - Giao Tiếp Và Lập Trình Điều Khiển - Trietnguyen,
SPKT, 30/6/2007
Trang 48
Các file đính kèm theo tài liệu này:
- Điều khiển động cơ DC qua vi điều khiển PIC16F887A.pdf