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

đề tài: điều khiển động cơ dc

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (949.89 KB, 34 trang )

Đề tài : Điều khiển động cơ DC

Trang 1

LỜI CẢM ƠN

Người thực hiện đề tài xin được gửi lời cảm ơn chân thành đến quý Thầy cô
trong khoa Điện – Điện Tử và nhất là quý Thầy cô thuộc bộ môn Điện Tử - Viễn
Thông đã giảng dạy và truyền đạt kiến thức chuyên ngành cho người thực hiện đồ
án trong thời gian vừa qua.
Đặc biệt người thực hiện xin gửi lời cảm ơn sâu sắc tới thầy Đặng Phước Hải
Trang vì sự tận tình hướng dẫn cũng như đã tạo những điều kiện thuận lợi nhất cho
người thực hiện đồ án để có thể thực hiện và hoàn thành tốt đề tài này.
Người thực hiện đồ án cũng không quên cảm ơn các bạn trong lớp đã trao
đổi, góp ý để người thực hiện hoàn thành đề tài này một cách tốt đẹp và đúng thời
gian.
Mặc dù đã có nhiều cố gắng và nỗ lực thực hiện, nhưng do kiến thức cũng
như khả năng bản thân còn nhiều hạn chế nên trong quá trình thực hiện đề tài không
thể tránh khỏi những sai phạm, thiếu sót…Rất mong nhận được sự góp ý, chỉ dẫn từ
nơi quý thầy cô và các bạn sinh viên.

Người thực hiện đề tài
Võ Phong Phú











Đề tài : Điều khiển động cơ DC

Trang 2
Mục lục
Phần A : Giới thiệu

Nhận xét của giáo viên hướng dẫn
Nhận xét của giáo viên phản biện
Trang chấm ĐAMH của GVHD
Lời cám ơn 1
Mục lục 2
Danh sách hình vẽ 2
Danh mục bảng biểu 3

Phần B: Nội Dung 5
Chương 1: Mở Đầu 5
1.1 Khái quát vấn đề 5
1.2 Mục tiêu yêu cầu của đề tài 6
1.3 Nội dung đề tài 6
Chương 2:Cơ sở lý thuyết 7
2.1 Phương pháp điều chế độ rộng xung PWM 7
2.2 Các linh kiện sử dụng trong mạch 8
2.2.1 Giới thiệu vi điều khiển AT89S52 8
2.2.2 Mô tả AT89S52 9
2.2.2a Sơ đồ chân 89S52 9
2.2.2b Chức năng các chân 89S52 10
2.2.3 Led và Button 12
2.2.4 L298 N 13

2.2.5 Động cơ DC 15
Đề tài : Điều khiển động cơ DC

Trang 3
Chương 3: Tính toán và thiết kế hệ thống 16
3.1 Thiết kế phần cứng 16
3.1.1 Mạch nguyên lý 16
3.1.2 Các khối chính 17
3.2 Mạch in 19
Chương 4: Thi công phần mềm, mô phỏng, kết quả nghiên cứu 20
4.1 Điều chế PWM để điều khiển động cơ DC 20
4.2 Lưu đồ chương trình 25
4.3 Chương trình 26
4.4 Kết quả mô phỏng bằng phần mềm proteus 32
4.5 Kết quả thi công mạch 32
Chương 5: Kết luận và hướng phát triển 33
5.1 Kết luận 33
5.2 Hướng phát triển 33

Phần C: Phụ lục tài liệu tham khảo
Tài liệu tham khảo 34
Đề tài : Điều khiển động cơ DC

Trang 4

LIỆT KÊ BẢNG

Bảng 2.1 Chức năng các chân của Port 3 10
Bảng 2.2 Chức năng các chân của L298N 14
LIỆT KÊ HÌNH

Hình 2.1 Đồ thị dạng xung điều chế PWM 7
Hình 2.2 Sơ đồ khối AT89S52 9
Hình 2.3 Sơ đồ các chân AT89S52 10
Hình 2.4 Mạch Reset vi điều khiển 11
Hình 2.5 Mạch kết nối thạch anh cho vi điều khiển 12
Hình 2.6a LED 12
Hình 2.6b Nút nhấn 4 chân 17
Hình 2.7a IC L298N. 13
Hình 2.8 Động cơ DC 15
HÌnh 2.9 Cấu tạo động cơ DC 15
Hình 3.1 Sơ đồ mạch nguyên lý 16
Hình 3.2 Khối hiển thị 17
Hình 3.3 Khối Led báo và reset 17
Hình 3.4 Khối mạch cầu H 18
Hình 3.5 Khối nút điều khiển 18
Hình 3.6 Khối vi điều khiển 19
Hình 3.7 Hình mạch in 19
Hình 4.1 Hình mô phỏng mạch 32
Hình 4.2 Mạch thực tế 32
Đề tài : Điều khiển động cơ DC

Trang 5
Phần B Nội dung.
Chương 1: Mở đầu
Chương này trình bày vắn tắt quá trình thực hiện đề tài và toàn bộ nội dung của đề
tài. Nội dung chương bao gồm những phần chính như sau : lý do chọn đề tài; mục tiêu
và nhiệm vụ nghiên cứu; phạm vi và giới hạn nghiên cứu; ý nghĩa khoa học và thực
tiễn của đề tài; tổng quan các nội dung.
1.1 Khái quát vấn đề:
Ngày nay, nhu cầu học tập và nghiên cứu các ứng dụng công nghệ Vi điều khiển ngày

càng tăng trưởng mạnh mẽ. Các công trình nghiên cứu và ứng dụng công nghệ này đều
rất phong phú, đa dạng. Vi điều khiển đang dần dần thay thế con người trong các ứng
dụng trong thực tiễn, và một số ứng dụng thực tiễn của Vi điều khiển như: Điều khiển
tốc độ động cơ, thiết kế bảng led điện tử, đếm sản phẩm, đo và khống chế nhiệt độ…
Với ưu điểm là điều khiển tốc độ động cơ dễ dàng, độ ổn định tốc độ cao nên
động cơ một chiều đã được sử dụng khá phổ biến như: truyền động cho một số máy
như máy nghiền ,máy nâng vận chuyển, điều khiển băng tải, điều khiển các robot…
Động cơ 1 chiều có nhiều ứng dụng trong điều khiển và sản xuất nhất là trong công
nghiệp. Trong đó nó đòi hỏi là động cơ phải có nhiều cấp tốc độ có thể tăng giảm dễ
dàng.
Với sự ra đời và phát triển của vi xử lý thì vấn đề điều khiển động cơ 1 chiều không
còn là vấn đề khó khăn nữa. Động cơ có thể điều khiển với nhiều cấp tốc độ khác nhau
và điều khiển dừng, đảo chiểu , nhanh chậm dễ dàng được.
1.2 Mục tiêu yêu cầu của đề tài:
Vi xử lý 8501 là loại dòng vi xử lý khá là thông dụng đã có mặt từ rất lâu và được ứng
dụng vào nhiều các thiết bị điều khiển hay tự động hóa. Nên việc điều khiển động cơ 1
chiều với dòng vi xử lý này là 1 phương pháp tối ưu và kinh tế đối với bài toán điều
khiển động cơ DC ngày nay



Đề tài : Điều khiển động cơ DC

Trang 6
1.3 Nội dung đề tài.
Trên cơ sở những kiến thức đã học từ môn vi xử lý. Em đã thực hiện đề tài : Điều
khiển động cơ một chiều (DC). Với yêu cầu là điều khiển : Dừng, Quay thuận, Quay
nghịch, Tăng tốc, Giảm tốc.
Để điều khiển tốc độ của động cơ một chiều thì có rất nhiều phương pháp, trong đồ án
của mình chúng em xin trình bày điều khiển động cơ dùng họ vi điều khiển 8051 bằng

phương pháp đếm xung (dùng động cơ có sử dụng encoder). Trong đồ án của mình
chúng em sử dụng IC 89C52 để lập trình điều khiển động cơ một chiều DC nhỏ hơn
24V, sử dụng IC L298N để tăng công suất.
















Đề tài : Điều khiển động cơ DC

Trang 7
Chương 2 : Cơ sở lý thuyết
Đối với điều khiển tốc độ động cơ DC trong robot, phương pháp được sử dụng phổ
biến nhất là điều chế độ rộng xung (Pulse Width Modulation) hay được gọi tắt là điều
xung, băm xung hoặc PWM.
2.1 Phương pháp điều xung PWM
PWM là phương pháp điều chỉnh điện áp ra tải hay nói cách khác là phương pháp điều
chế dựa trên sự thay đổi độ rộng của chuỗi xung vuông dẫm đếm sự thay đổi điện áp
ra.

Các PWM khi biến đổi thì có cùng 1 tần số và khác nhau về độ rộng của sườn dương
hay hoặc là sườn âm


Hình 2.1
Trên là đồ thị dạng xung khi điều khiển bằng PWM. Với độ rộng xung đầu ra tương
ứng và được tính bằng %. Tùy thích do chúng ta điều khiển.
Để tạo được ra PWM thì hiện nay có hai cách thông dụng : Bằng phần cứng và bằng
phần mềm. Trong phần cứng có thể tạo bằng phương pháp so sánh hay là từ trực tiếp từ
các IC dao động tạo xung vuông như : 555, LM556 Trong phần mền được tạo bằng
các chip có thể lập trình được. Tạo bằng phần mền thì độ chính xác cao hơn là tạo bằng
phần cứng,nên người ta hay sử dụng phần mền để tạo PWM. Trong phạm vi yêu cầu
của đề tài em đã chọn cách hai,cụ thể là lập trình cho AT 89S52.
Đề tài : Điều khiển động cơ DC

Trang 8
Điều xung PWM bằng phần mềm:
Điều xung PWM một cách đơn giản là đưa 1 chân nào đó của vi điều
khiển lên mức 1, sau đó đưa xuống mức 0. Công việc này được lặp
đi lặp lại liên tục sẽ tạo ra xung, và tốc độ của động cơ sẽ tương ứng
với duty cycle.
2.2 Các linh kiện sử dụng trong mạch.
Có rất nhiều loại vi điều khiển khác nhau có thể sử dụng trong mạch đồng hồ này
như vi điều khiển pic, avr, 8051…
Các loại vi điều khiển pic hay avr có nhiều ưu điểm hơn so với 8051 như hỗ trợ kết
nối ngoại vi tốt hơn, tốc độ xử lý nhanh hơn, lập trình đơn giản hơn. Nhưng giá thành
thì lại cao hơn nhiều so với 8051 mà trong mạch này người thực hiện đề tài sử dụng
AT89S52. Việc sử dụng quá tốn kém cho một mạch là không cần thiết trong khi đó
một chip cũng có thể làm được điều này mà giá thành rẻ hơn thì đó là lựa chọn tối ưu
hơn.


2.2.1 Giới thiệu Vi Điều Khiển AT89S52:
AT89S52 là họ IC vi điều khiển do hãng Atmel sản xuất. Các sản phẩm AT89S52
thích hợp cho những ứng dụng điều khiển. Việc xử lý trên byte và các toán số học ở
cấu trúc dữ liệu nhỏ được thực hiện bằng nhiều chế độ truy xuất dữ liệu nhanh trên
RAM nội. Tập lệnh cung cấp một bảng tiện dụng của những lệnh số học 8 bit gồm cả
lệnh nhân và lệnh chia. Nó cung cấp những hổ trợ mở rộng trên chip dùng cho những
biến một bit như là kiểu dữ liệu riêng biệt cho phép quản lý và kiểm tra bit trực tiếp
trong hệ thống điều khiển.
AT89S52 cung cấp những đặc tính chuẩn như: 8 KByte bộ nhớ chỉ đọc có thể xóa
và lập trình nhanh (EPROM), 128 Byte RAM, 32 đường I/O, 3TIMER/COUNTER 16
Bit, 5 vectơ ngắt có cấu trúc 2 mức ngắt, một Port nối tiếp bán song công, 1 mạch dao
động tạo xung Clock và bộ dao động ON-CHIP.
Các đặc điểm của chip AT89S52 được tóm tắt như sau:
 8 KByte bộ nhớ có thể lập trình nhanh, có khả năng tới 1000 chu kỳ
ghi/xoá
 Tần số hoạt động từ: 0Hz đến 24 MHz
 3 mức khóa bộ nhớ lập trình
 3 bộ Timer/counter 16 Bit
 128 Byte RAM nội.
 4 Port xuất /nhập I/O 8 bit.
 Giao tiếp nối tiếp.
 64 KB vùng nhớ mã ngoài
Đề tài : Điều khiển động cơ DC

Trang 9
 64 KB vùng nhớ dữ liệu ngoại.
 4µs cho hoạt động nhân hoặc chia



Hình 2.2: Sơ Đồ Khối AT89S52

2.2.2 Mô tả AT89S52:
2.2.2a Sơ đồ chân 89S52:
Mặc dù các thành viên của họ 8051 (ví dụ 8751, 89S52, 89C51, DS5000) đều có
các kiểu đóng vỏ khác nhau, chẳng hạn như hai hàng chân DIP (Dual In-Line Pakage),
dạng vỏ dẹt vuông QPF (Quad Flat Pakage) và dạng chip không có chân đỡ LLC
(Leadless Chip Carrier) thì chúng đều có 40 chân cho các chức năng khác nhau như
vào ra I/O, đọc RD\, ghi WR\, địa chỉ, dữ liệu và ngắt. Cần phải lưu ý một số hãng
Đề tài : Điều khiển động cơ DC

Trang 10
cung cấp một phiên bản 8051 có 20 chân với số cổng vào ra ít hơn cho các ứng dụng
yêu cầu thấp hơn. Tuy nhiên vì hầu hết các nhà phát triển sử dụng chip đóng vỏ 40
chân với hai hàng chân DIP nên người thực hiện đề tài chỉ tập trung mô tả phiên bản
này.

Hình 2.3: Sơ Đồ các chân AT89S52
2.2.2b Chức năng của các chân 89S52:
Port 0: Từ chân 32 đến chân 39 (P0.0_P0.7). Port 0 có 2 chức năng: trong các thiết
kế cỡ nhỏ không dùng bộ nhớ mở rộng nó có chức năng như các đường IO, đối với
thiết kế lớn có bộ nhớ mở rộng nó được kết hợp giữa bus địa chỉ và bus dữ liệu.

Port 1: Từ chân 1 đến chân 9 (P1.0 _ P1.7). Port 1 là port IO dùng cho giao tiếp với
thiết bị bên ngoài nếu cần.

Port 2: Từ chân 21 đến chân 28 (P2.0 _P2.7). Port 2 là một port có tác dụng kép
dùng như các đường xuất/nhập hoặc là byte cao của bus địa chỉ đối với các thiết bị
dùng bộ nhớ mở rộng.


Port 3: Từ chân 10 đến chân 17 (P3.0 _ P3.7). Port 3 là port có tác dụng kép.Các
chân của port này có nhiều chức năng, có công dụng chuyển đổi có liên hệ đến các đặc
tính đặc biệt của 89S52 như ở bảng 3.1:

Bảng 2.1: Chức năng các chân của Port 3
Chân Tên Chức năng
P3.0 RxD Ngõ vào Port nối tiếp
P3.1 TxD Ngõ ra Port nối tiếp
P3.2
INT0

Ngõ vào ngắt ngoài 0
Đề tài : Điều khiển động cơ DC

Trang 11
P3.3
INT1

Ngõ vào ngắt ngoài 1
P3.4 T0 Ngõ vào bên ngoài của bộ định thời 1
P3.5 T1 Ngõ vào bên ngoài của bộ định thời 0
P3.6
WR
Điều khiển ghi bộ nhớ dữ liệu ngoài
P3.7
RD

Điều khiển đọc bộ nhớ dữ liệu ngoài
PSEN (Program store enable): PSEN là tín hiệu ngõ ra có tác dụng cho phép đọc
bộ nhớ chương trình mở rộng và thường được nối đến chân OE của Eprom cho phép

đọc các byte mã lệnh.PSEN ở mức thấp trong thời gian 89S52 lấy lệnh. Các mã lệnh
của chương trình được đọc từ Eprom qua bus dữ liệu, được chốt vào thanh ghi lệnh bên
trong 89S52 để giải mã lệnh. Khi 89S52 thi hành chương trình trong ROM nội, PSEN
ở mức cao.
ALE (Address Latch Enable): Khi 89S52 truy xuất bộ nhớ bên ngoài, Port 0 có
chức năng là bus địa chỉ vàdữ liệu do đó phải tách các đường dữ liệu và địa chỉ. Tín
hiệu ra ALE ở chân thứ 30 dùng làm tín hiệu điều khiển để giải đa hợp các đường địa
chỉ và dữ liệu khi kết nối chúng với IC chốt. Tín hiệu ở chân ALE là một xung trong
khoảng thời gian port 0 đóng vai trò là địa chỉ thấp nên chốt địa chỉ hoàn toàn tự động.
EA (External Access): Tín hiệu vào EA (chân 31) thường được mắc lên mức 1 hoặc
mức 0. Nếu ở mức 1, 89S52 thi hành chương trình từ ROM nội. Nếu ở mức 0, 89S52
thi hành chương trình từ bộ nhớ mở rộng. Chân EA được lấy làm chân cấp nguồn 21V
khi lập trình cho Eprom trong 89S52.
RST (Reset): Khi ngõ vào tín hiệu này đưa lênmức cao ít nhất 2 chu kỳ máy, các
thanh ghi bên trong được nạp những giá trị thích hợp để khởi động hệ thống. Khi cấp
điện mạch phải tự động reset.



Hình 2.4: Mạch RESET Vi Điều Khiển
Đề tài : Điều khiển động cơ DC

Trang 12
Các ngõ vào bộ dao động X1, X2: Bộ tạo dao động được tích hợp bên trong 89S52.
Khi sử dụng 89S52, người ta chỉ cần nối thêm thạch anh và các tụ. Tần số thạch anh
tùy thuộc vào mục đích của người sử dụng, giá trị tụ thường được chọn là 33p.

Hình 2.5: Mạch kết nối thạch anh cho Vi Điều Khiển

2.2.3 Led và Button

LED (viết tắt của : Light Emitting Diode) được cấu tạo từ một khối bán dẫn loại p
ghép với một khối bán dẫn loại n, đèn LED tạo ra nhiều ánh sáng hơn, tỏa nhiệt ít hơn
so với các thiết bị chiếu sáng khác vì vậy cũng tiêu thụ ít điện năng hơn.



Hình 2.6a: led


Hình 2.6b Buttom






Đề tài : Điều khiển động cơ DC

Trang 13

2.2.4 L298N
L298N là một drive chip tích hợp sẵn
hai mạch cầu H bên trong với chuẩn
điều khiển TTL, không có diode nội
bảo vệ Mosfet.
IC L298
có khả năng hoạt động ở điện áp
cao,dòng cao.
- Điện áp cấp lên tới 46V
- Tổng dòng một chiều chịu đợc tới

4A
- Điện áp bão hòa
- Chức năng bảo vệ quá nhiệt
- Logic 0 từ 1.5V trở xuống


Hình2.7a: L298N



Hình 2.7b: Sơ đồ chân của L298N





Đề tài : Điều khiển động cơ DC

Trang 14
Chức năng các chân :
Bảng 2.2





















Đề tài : Điều khiển động cơ DC

Trang 15
2.2.5 Động cơ DC
Động cơ điện một chiều là động cơ điện hoạt động với dòng 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.Thông thường động cơ điện một chiều chỉ chạy ở một tốc độ duy nhất khi
nối với nguồn điện,tuy nhiên vẫn có thể điều khiển tốc độ và chiều quay của động
cơ với sự hỗ trợ của các mạch điện tử cùng phương pháp PWM.









Hình 2.8

Phần chính gồm Stato ( phần đứng yên ) với các cực từ (bằng nam châm vĩnh cửu
hoặc nam châm điện), Roto với các cuộn dây quấn, cổ góp cùng chổi điện.

Hình 2.9






Đề tài : Điều khiển động cơ DC

Trang 16
Chương 3: Tính toán và thiết kế hệ thống.
3.1 Thiết kế phần cứng.
3.1.1 Mạch nguyên lý :



Hình 3.1: Mạch nguyên lý







Đề tài : Điều khiển động cơ DC

Trang 17



3.1.2 Các khối chính :

 Khối hiển thị.

Hình 3.2
Dùng led 7 đoạn đôi anode chung để hiển thị tốc độ.
3 transistor A1013 có chức năng điều khiển cấp dòng hoặc không cấp dòng cho
led,để mỗi thời điểm chỉ cho một led sáng.

 Khối led báo và reset .

Hình 3.3: Khối led báo và reset

- Trong khối Reset chúng ta sử dụng điện trở 1K giúp treo áp cho chân reset của
vi điều khiển luôn ở mức 0V. Tụ điện C3 1uF có tác dụng giảm nhiễu cho nút bấm.
Đề tài : Điều khiển động cơ DC

Trang 18
- Các led D5, D6, D7 được dùng để báo cho người sử dụng biết trạng thái hiện tại
của động cơ.
-
 Khối mạch cầu H

Hình 3.4: Khối mạch cầu H

- Để khối điều khiển tốc độ động cơ hoạt động ổn định và đạt hiệu suất cao nhất
thì trong mạch IC L298 được ghép nối với các linh kiện như sau:
+ 4 diode D1,D2,D3,D4 được ghép nối với chân đầu ra điều khiển động cơ có tác

dụng ngăn dòng ngược giảm xung nhiễu gây cháy chip vi điều khiển.
- Để cho phép động cơ hoạt động chúng ta cần sử dụng chân EN như trong hình
vẽ. Với mức 1 là cho phép và mức 0 là ngừng hoạt động. Để điều khiển động cơ theo
chiều thuận nghịch và tăng giảm tốc độ động cơ ta sử dụng 1 cách linh hoạt 2 chân IN1
và IN2 giống như trong hình vẽ. 1 chân sẽ cấp xung PWM và chân còn lại điều khiển
chiều thuận nghịch của động cơ.
 Khối điều khiển :


Hình 3.5. Khối nút điều khiển
Đề tài : Điều khiển động cơ DC

Trang 19
Các nút nhấn sw1,sw2,sw3,sw4,sw5 để điều chỉnh trạng thái hoạt động của động cơ,
Stop, quay thuận,nghịch, tăng tốc,giảm tốc.
 Khối vi xử lý :








Hình 3.6 .Khối vi điều khiển.
Trong khối dao động chúng ta sử dụng 2 tụ C1, C2 cùng thạch anh 12Mhz.
3.2 Mạch in.


Hình 3.7

Đề tài : Điều khiển động cơ DC

Trang 20
Chương 4: Thi công phần mềm,mô phỏng , kết quả nghiên cứu.
4.1 Điều chế PWM để điều khiển động cơ DC
Để điều khiển được tốc độ động cơ thì ta chỉ cần thay đổi độ rộng xung trong vi điều
khiển. Độ rộng xung càng lớn thì động cơ quay càng nhanh.
Như chúng ta đã biết thì việc điều khiển nhấp nháy 1 con LED cũng là chúng ta đã
điều chế được PWM rồi nhưng xung đó có độ rộng thay đổi và tần số lớn và có thể
điều khiển nó bằng hàm trễ (delay). Tuy nhiên khi dùng hàm delay thì trong thời gian
xung lên 5V và xuống 0V thì vi điều khiển không làm gì cả hơn nữa việc tạo xung hàm
delay thì nếu ta muốn phát xung ở 2 kênh có độ rộng thay đổi là rất khó khăn cho nên
chúng ta sử dụng bộ định thời timer ở đây là phương pháp tối ưu nhất.
4.1.1. Tạo PWM từ ngắt Timer 0
4.1.1.1 Cách tạo hàm ngắt.
Để tạo được hàm ngắt ta phải làm những công việc sau đây:
a) Khởi tạo hàm ngắt
Dùng ngắt nào thì cho phép ngắt đó hoạt động bằng cách gán giá trị cho thanh ghi cho
phép ngắt IE






Đề tài : Điều khiển động cơ DC

Trang 21
b) Cấu hình ngắt
Trong 1 ngắt có nhiều chế độ . Với ngắt Timer0 cấu hình cho nó chạy ở chế độ nào,

chế độ timer hay counter, chế độ 8bit ,16bit…bằng cách gán cho giá trị tương ứng
TMOD.


c) Bắt đầu chương trình có ngắt.
+ Trước khi chạy chương trình ngắt ta phải cho phép ngắt toàn cục được xẩy ra bằng
cách gán EA =1 thì ngắt mới xẩy ra
+ Các giá trị thanh ghi TCON
Đề tài : Điều khiển động cơ DC

Trang 22

4.1.1.2 Tạo PWM có chu kì max : 100us
a) Tạo timer 0
Do yêu cầu của bài toán là điều khiển tốc độ động cơ quay nhanh và quay chậm trong
khi chạy thuận nghịch nên dữ nguyên chu kì và thay đổi thời gian mở. Yêu cầu như:
+ Động cơ quay thuận nghịch bình thường : 1000us
+ Động cơ tăng tốc lớn nhất : 100us
+ Động cơ giảm tốc lớn nhất : 2000us
Khi bắt đầu cho timer 0 chạy thì bộ đếm của timer sẽ đếm dao động thạch anh, cứ 12
dao động cửa thạch anh thì bộ đếm timer 0 TL0 sẽ đếm tăng 1 , có thể nói timer 0 đếm
chu kì máy đối với chế độ 8bit
TL0 là thanh ghi 8 bit nó đếm từ 0 đến 255 . Nếu nó đếm đến 256 thì nó tràn bộ đếm .
TL0 lại quay về 0 và cờ ngắt TF0 tự động nạp lại giá trị 1 và ngắt được xảy ra
Đề tài : Điều khiển động cơ DC

Trang 23
Như đối với bài toán này thì ta chỉ cần tạo timer 0 là 100us nên ta tính theo công thức
ta có :
Timer0 = (255 – TL0) * 1us

Như vậy để tạo được timer0 là 100us thì cần phải gán giá trị TL0=155 thì nó đếm từ
155 – 255 tức là 100 lần thì ngắt mới xẩy ra
Để điều khiển nhanh chậm của động cơ ta phải tạo ra các xung có độ rộng là 5%,
10% 95%,100%.


Như trên ta có khoảng thời gian kéo lên 5V là T1. Xung có độ rộng 10% tức là
T1/T=10%
b) Nguyên lý hoạt động PWM
* PWM : Đưa ra để mở các transitor , xung có độ rộng lớn hơn thì transitor sẽ mở lâu
hơn động cơ sẽ quay nhanh hơn nhưng mà không tuyến tính . Không có xung thì động
cơ sẽ không quay, xung có độ rộng 100% thì động cơ quay là lớn nhất. Tuy nhiên xung
phải lớn hơn 1 mức nào đó mới đủ khởi động động cơ.

Để có thể thay đổi được độ rộng xung theo 10 cấp khác nhau ( lấy giá trị quay thuận
nghịch lúc bình thường là 1000us) với chu kì là 2000us.ta phải khởi tạo timer cứ
1000us lại ngắt 1 lần.
* Hàm khởi tạo timer0
Như đã nói ở trên muốn có giá trị timer0 nào chỉ cần gán cho TL0 để cho thanh ghi
đếm sau đó tràn nhưng ở đây do tạo timer là 100us nên ta dùng chế độ 2 8 bit tự nạp
void khoitaotimer0(void)// Ham khoi tao
Đề tài : Điều khiển động cơ DC

Trang 24
{
EA=0;// Cam ngat toan cuc
TMOD=0x02;// Timer 0 che do 2 8 bit auto reload
TH0=0x9B;// Gia tri nap lai 155 doi ra so hex
TL0=0x9B;// Gia tri khoi tao 155 doi ra so hex
ET0=1;// Cho phep ngat timer 0

EA=1;// Cho phep ngat toan cuc
TR0=1;// Chay timer 0 bat dau dem so chu ki may
}
* Hàm ngắt.
bit PWM;
unsigned char dem=0;// Khai bao bien dem de dem tu 1 den 10
unsigned char phantram_PWM =10 ;// Bien chua phan tram xung(0 10)
void timer0(void) interrupt 1 //Ngat timer 0
{
TR0=0;// Dung chay timer 0
TF0=0;// Xoa co, o che do co tu duoc xoa
dem++;
if(dem<phantram_PWM) PWM=1;// Neu bien dem < phan tram xung thi dua gia tri 1
ra chan, xung 5V
else PWM=0;// Neu dem = phan tram xung
if(dem==20) dem=0;// Neu dem du 20 thi gan lai bang 0 de bat dau chu ki moi
TR0=1;// Cho chay timer
}
Đề tài : Điều khiển động cơ DC

Trang 25
Do yêu cầu bài toán là điều khiển thuận nghịch nên ta cần phải lưu biến PWM này. Do
PWM có chu kì không đổi nên do đó ta chỉ cần thay đổi phantram_PWM là có thể thay
đổi được độ rộng xung.
4.2 Lưu đồ chương trình.
Chương trình phục vụ ngắt



Ph


c v


ng

t
Timer 0
Dem++

dem >
phantram_PWM
PWM=1

Chương tr
ình
chính
PWM=0

Dem=20
Dem=0

exit

×