Dieu Khien Dong Co DC - Chuong Tong Hop-Huy

79
Lời cảm ơn Lời cảm ơn Với sự giúp đỡ tận tình của các thầy cô trong khoa Điện tự động hóa Trường Cao Đẳng Công Nghệ Đại học Đà Nẵng cùng với người thân, gia đình và bạn bè, chúng em đã hoàn thành đồ án theo đúng thời gian quy định. Để đạt được thành công này, chúng em xin chân thành cảm ơn thầy giáo Phó giáo sư-Tiến sĩ Đoàn Quang Vinh, người đã luôn theo dõi, chỉ bảo tận tình cho em trong suốt thời gian thực hiện đề tài, người đã đóng góp ý kiến và hướng dẫn em hoàn thành đồ án. Bên cạnh đó, em cũng xin chân thành cảm ơn đến các thầy cô giáo trong khoa Điện tử động đã tận tình dạy dỗ chúng em trong những năm học vừa qua. Cuối cùng, chúng em xin gởi lời cảm ơn chân thành đến gia đình, bạn bè đã giúp đỡ em hoàn thành đồ án này. 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

Transcript of Dieu Khien Dong Co DC - Chuong Tong Hop-Huy

Page 1: Dieu Khien Dong Co DC - Chuong Tong Hop-Huy

Lời cảm ơn

Lời cảm ơn

Với sự giúp đỡ tận tình của các thầy cô trong khoa Điện tự động hóa Trường

Cao Đẳng Công Nghệ Đại học Đà Nẵng cùng với người thân, gia đình và bạn bè,

chúng em đã hoàn thành đồ án theo đúng thời gian quy định.

Để đạt được thành công này, chúng em xin chân thành cảm ơn thầy giáo Phó

giáo sư-Tiến sĩ Đoàn Quang Vinh, người đã luôn theo dõi, chỉ bảo tận tình cho em

trong suốt thời gian thực hiện đề tài, người đã đóng góp ý kiến và hướng dẫn em

hoàn thành đồ án. Bên cạnh đó, em cũng xin chân thành cảm ơn đến các thầy cô

giáo trong khoa Điện tử động đã tận tình dạy dỗ chúng em trong những năm học

vừa qua. Cuối cùng, chúng em xin gởi lời cảm ơn chân thành đến gia đình, bạn bè

đã giúp đỡ em hoàn thành đồ án này.

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

Page 2: Dieu Khien Dong Co DC - Chuong Tong Hop-Huy

Lời cam đoan

Cộng hòa xã hội chủ nghĩa Việt Nam

Độc lập – Tự do – Hạnh phúc

Lời cam đoanKính gởi: Hội đồng bảo vệ tốt nghiệp khoa Điện tự động – Trường Cao Đẳng

Công Nghệ – Đại học Đà Nẵng.

Em tên là: Trần Nguyễn Quốc Huy

Phan Hoàng Anh

Nguyễn Đức Ba

Nguyễn Tấn Thạch

Đang là sinh viên lớp 08LTĐ – Khoa Điện tự động – Trường Cao Đẳng

Công Nghệ – Đại học Đà Nẵng.

Hiện nay chúng em làm đồ án tốt nghiệp với đề tài “Điều khiển tốc độ động

cơ điện một chiều ”.

Chúng em xin cam đoan nội dung đồ án hoàn toàn không giống với bất kỳ đồ

án hoặc công trình nào đã có trước đó.

Đà 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

Page 3: Dieu Khien Dong Co DC - Chuong Tong Hop-Huy

Mục lục

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

2.1. Giới thiệu chương............................................................................9

2.2. 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

Page 4: Dieu Khien Dong Co DC - Chuong Tong Hop-Huy

Mục lục

2.2.8 Cách nạp cho PIC16F887...........................................................18

2.3. Kết chương.....................................................................................20

Chương 3: Thiết kế và thi công phần cứng....................................................21

3.1. Mở chương.....................................................................................21

3.2. 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

3.3. Kết chương.....................................................................................31

Chương 4 : Thiết kế phần mềm.....................................................................32

4.1. Mở chương.....................................................................................32

4.2. 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ơ...........................37

4.2.1.4 Thuật toán chương trình phục vụ ngắt nhận UART..............39

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........41

4.3. Kết luận chương............................................................................46

4.4. Nhận xét đánh giá hệ thống...........................................................46

Page 5: Dieu Khien Dong Co DC - Chuong Tong Hop-Huy

Mục lục

4.5. Hướng phát triển đề tài..................................................................46

Page 6: Dieu Khien Dong Co DC - Chuong Tong Hop-Huy

Các từ viết tắt

CÁC TỪ VIẾT TẮT

PID Proportional–Integral–Derivative

DC Direct Current

PWM Pulse Width Modulation

EEPROM Electrically Erasable Programmable Read Only Memory

ADC Analog Digital Converter

USART Universal Synchronous 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

Page 7: Dieu Khien Dong Co DC - Chuong Tong Hop-Huy

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

Page 8: Dieu Khien Dong Co DC - Chuong Tong Hop-Huy

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

Page 9: Dieu Khien Dong Co DC - Chuong Tong Hop-Huy

Chương 1: Động cơ điện một chiều

A-

+

12

R a

L a

Eg

Ua

Ia

(1.1)

(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ơ:

(1.4)

B: hệ số ma sát

T: monen tải.

Ở chế độ xác lập:

(1.5)

(1.6)

Ta có được tốc độ động cơ ở chế độ xác lập:

(1.7)

Trang 2

Page 10: Dieu Khien Dong Co DC - Chuong Tong Hop-Huy

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:

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

Page 11: Dieu Khien Dong Co DC - Chuong Tong Hop-Huy

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)

(1.10)

Td(p) = Kt ΦIa(p) (1.11)

(1.12)

Từ 1.12 tính được:

(1.13)

(1.14)

Trong đó: =La/Ra Hằng số thời gian của mạch phần ứng

=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ó:

Trang 4

Page 12: Dieu Khien Dong Co DC - Chuong Tong Hop-Huy

Chương 1: Động cơ điện một chiều

Vậy hàm truyền của động cơ lúc này có dạng khâu dao động.

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.

Đáp ứng xung của động cơ:

n(p)=

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

Trang 5

Page 13: Dieu Khien Dong Co DC - Chuong Tong Hop-Huy

Chương 1: Động cơ điện một chiều

T = 30ms=0.03s

Vậy hàm truyền gần đúng:

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

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

Trang 6

Page 14: Dieu Khien Dong Co DC - Chuong Tong Hop-Huy

Chương 1: Động cơ điện một chiều

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

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):

với

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): với thành phần vi

phân xấp xỉ bởi

Vậy ta được hàm truyền khâu PID rời rạc:

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.

Trang 7

Page 15: Dieu Khien Dong Co DC - Chuong Tong Hop-Huy

Chương 1: Động cơ điện một chiều

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 -

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

Page 16: Dieu Khien Dong Co DC - Chuong Tong Hop-Huy

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

Page 17: Dieu Khien Dong Co DC - Chuong Tong Hop-Huy

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

Page 18: Dieu Khien Dong Co DC - Chuong Tong Hop-Huy

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<2:0> (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<0> (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<2:0> đượ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<2:0> điều khiển bộ MUX chọn kênh cho

INTOSC.

Trang 11

Page 19: Dieu Khien Dong Co DC - Chuong Tong Hop-Huy

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

Page 20: Dieu Khien Dong Co DC - Chuong Tong Hop-Huy

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

Page 21: Dieu Khien Dong Co DC - Chuong Tong Hop-Huy

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

Page 22: Dieu Khien Dong Co DC - Chuong Tong Hop-Huy

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

Page 23: Dieu Khien Dong Co DC - Chuong Tong Hop-Huy

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<5:4>,

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<5:4>).TOSC.(giá trị Prescale của TMR2)

Trang 16

Page 24: Dieu Khien Dong Co DC - Chuong Tong Hop-Huy

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

Page 25: Dieu Khien Dong Co DC - Chuong Tong Hop-Huy

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<1:0> đị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

Page 26: Dieu Khien Dong Co DC - Chuong Tong Hop-Huy

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

Page 27: Dieu Khien Dong Co DC - Chuong Tong Hop-Huy

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

Page 28: Dieu Khien Dong Co DC - Chuong Tong Hop-Huy

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

UART

R

S

2

3

2

Đảo chiều

Page 29: Dieu Khien Dong Co DC - Chuong Tong Hop-Huy

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

Page 30: Dieu Khien Dong Co DC - Chuong Tong Hop-Huy

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 TO 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

34

5

68

712

R b K E O R E L A Y

2 K 7

R H A N D O N G D R IV E R1 K 8

rw

R b D R I V E R1 K

rsrs

K H O I C O N G S U A T

2 S B 5 4 8

g n d

d 7d 6

g n d

v c c

C 10 . 1 u F

d 5

v re f

1 2 V

g n d

R 74 k 7

d 3d 2

k 0

J 5

C O N 212 v c c

g n d

k 1

p wm

k 2

d ir

k 3k 4k 5

x t a l1x t a l2

g n d

V C C

d 0

C 1 8 1 5 D R I V E R2 S C 1 8 1 5

d 1

C 1 8 1 5 K E O R E L A Y2 S C 1 8 1 5

R h a n d o n g F E T t re n

1 0 0

R b D R I V E R V D K

4 K 7

d ir

F E T

I R F 5 4 0 / TO

2 S D 4 1 4

R h a n d o n g F E T4 k 7

-

+

U 9 A

L M 3 2 4

3

21

411

e n c o d e r

P 1

C O N N E C TO R D B 9

594837261

U 2

M A X2 3 2

C 1 +1

C 1 -3

C 2 +4

C 2 -5

VCC16

G N D1 5

V+2

V -6

R 1 O U T1 2

R 2 O U T9

T1 IN1 1

T2 IN1 0

R 1 I N1 3

R 2 I N8

T1 O U T1 4

T2 O U T7

R 1 5 1 k R 1 6 1 0 k

Y 1

1 2 M h z

v c c

C 3

1 0 u

C 41 0 u

C 6

2 . 2 u F

v re f

rs t

C 90 . 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

12

C 1 41 0 u

KHOI GIAO TIEP MAY TINHK H O I H IE 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 IE U K H IE N T R U N G T A M 1 2 Vx t a l1

V C C

x t a l2g n d

R 2

6 8 0

R 1

4 k 7

1 23456789

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

rs t

p wm

K 0K 1K 2K 3

d1

K 4

d2 d7d3 d4 d6d0 d5

K 5

K 0

K 3

K 1 K 2

K 4 K 5

a bgnd L C D

U 4

L C D

VSS1

VDD2

VEE3

RS4

RW5

E6

D07

D18

D29

D310

D411

D512

D613

D714

A15

K16

K H O I P H IM N H A N

d 4rxt x

V C C

V C C

V C C

v c c

g n d

g n d

rxt x

b

- +

D 1

B R 8 0 5 D

2

1

3

4

a

C 24 7 0 0 u F

C 53 3 0 0 u F

C 70 . 1 u F

R H A N D O N G L E D D A O C H IE 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 / TO

V IN1

GND2

V O U T3

J 1

C O N 2

12

g n d

v c c

R 4

1 8 k

R 5

8 2 0 D 2

B Z X8 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

123

U 3

P IC 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 /T0 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 / T1 O S O / T1 C K I1 5

R C 1 / T1 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 1R D 32 2R C 4 / S D I /S D A2 3R C 5 / S D O2 4R C 6 / TX/ C K2 5R C 7 / R X/D T2 6R D 42 7R D 5 / P 1 B2 8R D 6 / P 1 C2 9R D 7 / P 1 D3 0V S S3 1V D D3 2R B 0 /A N 1 2 / I N T3 3R B 1 /A N 1 0 / C 1 2 I N 3 -3 4R B 2 /A N 83 5R B 3 /A N 9 / P G M /C 1 2 IN 2 -3 6R B 4 /A N 1 13 7R B 5 /A N 1 3 / T1 G3 8R B 6 / I C S P C L K3 9R B 7 / I C S P D A T4 0

rs enrw

v c cg n de n

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

Trang 23

Page 31: Dieu Khien Dong Co DC - Chuong Tong Hop-Huy

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

Page 32: Dieu Khien Dong Co DC - Chuong Tong Hop-Huy

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

La 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 on

DSond ..2

Theo datasheet của IRF540, RDsonMax = 2.5Ω (Tj=150oC), Imax = 2.5 A,

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

Page 33: Dieu Khien Dong Co DC - Chuong Tong Hop-Huy

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 =

Tương tự như trên tổn hao khi từ on sang off:

E2 =

Psw =

Trang 26

Page 34: Dieu Khien Dong Co DC - Chuong Tong Hop-Huy

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

Page 35: Dieu Khien Dong Co DC - Chuong Tong Hop-Huy

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

(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

Page 36: Dieu Khien Dong Co DC - Chuong Tong Hop-Huy

Chương 3: Thiết kế và thi công phần cứng

Ic = Kt

Với K=

Icoff có thể bỏ qua => K=

=> ic= 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 :

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. (2)

Từ (1) và (2) ta có :

Ptt= + Icsat.Vcc.

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

Page 37: Dieu Khien Dong Co DC - Chuong Tong Hop-Huy

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

Page 38: Dieu Khien Dong Co DC - Chuong Tong Hop-Huy

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

Page 39: Dieu Khien Dong Co DC - Chuong Tong Hop-Huy

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

Page 40: Dieu Khien Dong Co DC - Chuong Tong Hop-Huy

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

Page 41: Dieu Khien Dong Co DC - Chuong Tong Hop-Huy

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ụcKp, Ki, Kd, SP

Cài đặt Timer2 ở chế độ PWMCài đặt UART tốc độ Baud 9600kbits/s

Chọn chân RB1 hoạt động ở chế độ PWMThiế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 UARTCho 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

Page 42: Dieu Khien Dong Co DC - Chuong Tong Hop-Huy

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

Page 43: Dieu Khien Dong Co DC - Chuong Tong Hop-Huy

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

Page 44: Dieu Khien Dong Co DC - Chuong Tong Hop-Huy

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

Page 45: Dieu Khien Dong Co DC - Chuong Tong Hop-Huy

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

Page 46: Dieu Khien Dong Co DC - Chuong Tong Hop-Huy

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 timer1Khô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 đếmCho phép ngắt timer1

Cho phép ngắt ngoài INT trên chân RB0.

Kết thúc

Page 47: Dieu Khien Dong Co DC - Chuong Tong Hop-Huy

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

Page 48: Dieu Khien Dong Co DC - Chuong Tong Hop-Huy

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

Page 49: Dieu Khien Dong Co DC - Chuong Tong Hop-Huy

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

Page 50: Dieu Khien Dong Co DC - Chuong Tong Hop-Huy

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

Page 51: Dieu Khien Dong Co DC - Chuong Tong Hop-Huy

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

Page 52: Dieu Khien Dong Co DC - Chuong Tong Hop-Huy

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

Page 53: Dieu Khien Dong Co DC - Chuong Tong Hop-Huy

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

Page 54: Dieu Khien Dong Co DC - Chuong Tong Hop-Huy

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

Page 55: Dieu Khien Dong Co DC - Chuong Tong Hop-Huy

Tài liệu tham khảo

Tài liệu tham khảo

[1] Điện tử công suất-Nguyễn Bính

[2] Truyền Động Điện – Bùi Quốc Khánh - Nguyễn Thị Hiền - Nguyễn Văn Liễn

[3] Datasheet của các IC PIC16F887, LM324, MAX232

[4] Tutorial LCD HD44780 - Giao Tiếp Và Lập Trình Điều Khiển - Trietnguyen,

SPKT, 30/6/2007

Trang 48