ĐỒ ÁN TỐT NGHIỆP ĐIỆN tử thiết kế một bộ điều khiển motor DC Hệ thống có thể điều khiển được motor có công suất P 60W và điện áp U 12VDC
NỘI DUNG ĐỒ ÁN
Bộ Công Thương
Trường Đại Học Công Nghiệp Hà Nội
---------------*********----------------
Bản báo cáo
Đồ án môn học vi điều khiển
Chủ đề 17: thiết kế một bộ điều khiển motor DC. Hệ thống có thể điều khiển được motor có công suất P <=60W và điện áp U <= 12VDC.
Thao tác điều khiển gồm có:tăng, giảm, đảo chiều bằng phương pháp điều khiển độ rộng xung.Hệ thống có các phím điều khiển đảo chiều,tăng,giảm tốc độ.
Mục Lục
Trang
Lời nói đầu …………………………………………………………3
Sơ lược họ 8051.
I. Sơ lược 8051……………………………………………...4
II. Sơ lược 89S52……………………………………………7
Động cơ một chiều.
- Cấu tạo máy điện một chiều………………………………….11
- Nguyên lý hoạt động động cơ một chiều……………………..13
IC L298.
Tổng quan về L298……………………………………………14
Thiết kế
- M ạch mô phỏng……………………………………………..16
- Mạch nguyên lý……………………………………………...17
- Mạch in………………………………………………………17
Lập trình cho vi điều khiển.
I. Phương pháp điều chế độ rộng xung điều khiển tốc độ động cơ PWM…………………………………………………………………18
II. Phần lập trình………………………………………………...19
Trong các ngành công nghiêp,công tác điều khiển vận hành các thiết bị theo một quy trình nhằm nâng cao hiệu quả sản xuất ,nâng cao chất lượng sản phẩm đồng thời tiết kiệm chi phí sản xuất giữ một vị trí quan trọng.
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…
Để đ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 điều chỉnh độ rộng xung PWM.Trong đồ án của mình chúng em chúng em 89S52 để lập trinhd điều khiển động cơ một chiều DC 12V dùng l298.
Chúng em xin chân thành cảm ơn các thầy cô trong khoa Điện Tử_Tự Động Hoá đã giúp đở chúng em trong quá trình làm đồ án và thầy Nguyễn Anh Dũng đã trực tiếp giảng dạy và hướng dẫn chúng em là đồ án.
Mặc dù đã có nhiều cố gắng nhưng trong quá trình làm đồ án ,chưa có kinh nghiệm nên còn có nhiều nhiều khiếm khuyết trong cách trình bày cũng như phần thể hiện đồ án của mình mong các thầy góp ý và bổ sung thêm.
_________ SƠ LƯỢC 8051_______
- Sơ lược 8051
8051 ra đời năm 1981 do hãng Intel sản xuất.
Họ điều khiển này có 128 byte RAM,4kbyte ROM,hai bộ đnh thời ,một cổng nối tiếp và 4 cổng ra\vào song song và là 1 bộ vi xử lý 8 bit.
Sau khi Intel cho các nhà sản xuất khác sản xuất và bán các dạng biến thể của 8051 thì họ 8051càng ngày càng phổ biến và ngày càng có nhiều phiên bản khác nhau của 8051 nhưng tất cả đều tương thích với 8051 ban đầu.
Sau đây là bảng so sánh các họ khác nhau:
Số hiệu sản xuất |
Bộ nhớ chương trình |
Bộ nhớ dữ liệu |
Số bộ định thời (bộ đếm) |
8031 8051 8571 8951 8032 8052 8752 8952 |
0K 4K ROM 4K EPROM 4K FLASH 0K 8K ROM 8K EPROM 8K FLASH |
128 BYTE 128 BYTE 128 BYTE 128 BYTE 256 BYTE 256 BYTE 256 BYTE 256 BYTE |
2 2 2 2 3 3 3 3 |
- Chức năng các chân của họ 8051
- Port 0 (P0.0 _ P0.7)
Port 0 gồm 8 chân .
Với chức năng xuất nhập dữ liệu ,ngoài ra Port 0 còn là bus đa hợp dữ liện và địa chỉ(AD0_AD7).Port 0 cũng nhận các byte mã khi lập trình Flas và xuất các byte mã khi kiểm tra chương trình .Chú y trong trường hợp này cần có thêm điện trở trước khi nối vào chân Port 0.
- Port 1 (P1.0_P1.7)
Cũng như Port 0 ,Port 1 cũng có 8 chân. Chức năng của Port 1 chỉ là xuất nhập dữ liệu .Port 1 cũng có thể xuất nhập theo bit và theo byte.
- Port 2
Port 2 là port 8 bit ,cũng có chức năng xuất nhập dữ liệu như 2 port trên.Khi làm nhiệm vụ là port nhập, các chân của port 2 đang được kéo xuống mức thấp do tác động của bên ngoài sẽ cấp dòng do các điện trở kéo lên từ bên trong .Port 2 tạo ra byte cao của bus điạ chỉ trong thời gian tìm nạp lệnh từ bộ nhớ chương trình ngoài và trong thời gian truy xuất bộ nhớ dữ liệu ngoài sử dụng các địa chỉ 16 bit.
Port 2 cũng nhận các bit địa chỉ cao và tín hiệu điều khiển trông thời gian lập trình Flash và kiểm tra chương trình.
- Port 3
Cũng là port xuất nhập dữ liệu 8 bit ,ngoài ra port 3 còn có các chức năng khác cụ thể như sau:
Bit |
Tên |
Chức năng |
P3.0 |
RXD |
Dữ liệu nhận cho Port nối tiếp |
P3.1 |
TXD |
Dữ liệu truyền cho Port nối tiếp |
P3.2 |
INT0 |
Ngắt bên ngoài 0 |
P3.3 |
INT1 |
Ngắt bên ngoài 1 |
P3.4 |
T0 |
Ngõ vào của timer/counter0 |
P3.5 |
T1 |
Ngõ vào của timer/counter1 |
P3.6 |
/WR |
Xung ghi bộ nhớ dữ liệu ngoài |
P3.7 |
/RD |
Xung đọc bộ nhớ dữ liệu ngoài |
- RST
Khi tín hiệu vào chân này được đưa lên mức cao ( trong ít 2 chu kỳ),các thanh ghi trong bộ vi điều khiển được tải lên nhưng giá trị thích hợp để khởi động hệ thống.
- Chân /PSEN
PSEN(program store enable) là chân đọc chương trình ở bộ nhớ ngoài ./PSEN sẽ ở mức thấp trong thời gian đọc mã lệnh.Khi thực hiện chương trình trong ROM nội thì /PSEN ở mức caoChân này được kích hoạt 2 lần mỗi chu kỳ máy và hai hoạt đông này sẽ được bỏ qua khi truy cập bộ nhớ ngoài .
- Chân ALE
ALE(address latch enable) là một xung ngõ ra để chốt byte thấp của địa chỉ trong khi truy cập bộ nhớ ngoài .Đây cũng là chân truy cập xung lập trình khyi lập trình Flash.Bình thường khi hoạt động chân ALE sẽ được phát với một tỷ lệ không đổi 1/6 tần số dao đông của vi điều khiển .Tuy nhiên chân này cũng sẽ bỏ qua mỗi khi truy cập bộ nhớ ngoài .
8. Chân EA
EA(external access) là chân cho phép chọn bộ nhớ trong hay bộ nhớ ngoài của vi điều khiển .Khi EA ở mức tích cực cao(nối với VCC) thì vi điều khiển thi hành chương trình ROM nội,ngược lại(nối với GND) thì vi điều khiển thi hành bộ nhớ ngoài.
9. XTAL1 và XTAL2
Đây là 2 ngỏ vào và ra của 1 bộ khuyếch đại dao động nghịch được cấu hình để dùng như một bộ dao động trên chip.Nó thường được nối với bộ dao đông thạch anh có dải tần thường là 12MHz-33MHz.
- Vcc và GND
Đây là 2 chân dùng để cấp nguồn cho IC, dải điện áp thích hợp là 4-5V.Với Vcc nối với dương nguồn ,GND nối với âm nguồn.
- SƠ LƯỢC 89S52
89S52 là một dòng trong họ 8051 ,nó có đầy đủ tính chất cũng như tính năng của họ 8051 .Sau đây là sơ đồ chân của 89S52:
89S52 có tất cả là 40 chân, trong đó chân 20 và 40 là 2 chân nối nguồn với điện áp cho phép nằm vào khoảng 3-5,5V.
Từ chân 1 đến chân 8 là chân port 1,từ chân 10 đến chân 17 là chân của port 3 ,từ chân 32 đến chân 39 là chân của port 0,từ chân 22 đến chân 28 là các chân của port 2,các chân còn lại là :chân 9 là chân RST ,chân 18 và chân 19 lần lượt là chân XTAL1 và XTAL2 ,từ chân 29 đến chân 31 lần lượt là các chân PSEN,ALE,EA.
Chức năng của các chân này thì đã trình bày trên phần sơ lược 8051 ở trên.
Hình 1. Sơ đồ chân của 89S52
Hình 2. Sơ đồ khối của bộ vi điều khiển AT89S52
AT 89S52 có 8byte Flash ROM trên chip,khi chân /EA (chân 31) được đặt ở mức logic cao thì bộ vi điều khiển sẽ thực hiện chương trình trong bộ nhớ này,tuổi thọ cho bộ nhớ này vào khoảng 1000 lần lập trình,khi chân EA ở mức thấp thì bộ vi điều khiển sẽ thực hiện chương trình ở bộ nhớ ngoài(EPROM ngoài). Để thực hiện được điều này thì 89S52 cần cần có một mạch phối ghép AT89S52 với Flash/EPROM
AT89S52 có 256 byte RAM nội, trong đó có 32 byte của bộ nhớ dành cho các bank thanh ghi.
AT89S52 có 128 bit có chứa các byte định địa chỉ theo bit tà 20H đến 2FH,các bít này có thể là việc với 1 lệnh đơn.
Ngày nay , với sự phát triển của công nghệ thì việc sử dụng chip nói chung và họ 8051 nói riêng ngày càng cần thiết và phổ biến …
Ngoài ra AT89S52 còn có nhiều tính năng khác mà chúng em chưa khai thác được.
_____ĐỘNG CƠ MỘT CHIỀU_____
- Cấu tạo máy điện một chiều
Sau đây là một số sơ đồ của máy điện 1 chiều:
Sơ đồ của một máy điện 1 chiều với bộ phận kích từ song song
Mạch từ của một máy điện 2 cực
Cuộn dây kích từ trên một cực từ
Cấu tạo cổ góp
Cấu tạo chổi than
Máy điện một chiều cơ bản gồm 2 phần mạch điện : mạch kích từ và mạch phần ứng.
Mạch kích từ hay còn hay gọi là stator gồm phần tĩnh là cuộn dây quấn quanh các cực từ của stator.
Số cực từ là chẵn chúng sắp xếp xen kẽ theo cực tính nam-bắc.Cuộn kích từ ,dòng điện cũng như thông lương của các cực từ la như nhau
Các cuộn dây kích từ nối tiếp với nhau.
Dòng điện cung cấp cho cuộn kích từ nhằm tạo ra từ thông trong đông cơ.
Mạch kích từ không phải là mạch tiêu thụ công suất nguồn chính trong động cơ.
Mạch phần ứng là mạch tiêu thụ công suất chính trong động cơ và nó nằm trên phần roto.Các cuộn của dây của phần ứng đặt trong đặt trong các rảnh phân bố trên bề mặt của roto, độ rộng của một cuộn dây gọi là bước cuộn .Các cuộn dây trên phần mạch ứng nối với nhau thành một mạch kín ,kết thúc của cuộn này sẽ là bắt đầu của cuộn tiếp theo và kết thúc của cuộn cuối cùng sẽ là bắt đầu của cuộn đầu tiên,dòng một chiều đưa vào hay lấy ra từ dây cuốn phần ứng thông qua các chổi than tỳ lên cổ góp .Cổ góp là một kết cấu hình trụ trên bề mặt có nhiều phiến góp ,số phiến góp bằng số cuộn dây và chúng được cách điện với nhau bằng mica.
- Nguyên lý hoạt động của động cơ môt chiều
Khi đặt vào trong từ trường một giây dẫn và cho dòng điện chạy qua dây dẫn thì từ trường sẽ tác dụng một lựcvào dòng điện và làm dây dẫn chuyển động .Chiều của lực được xác định bằng quy tắc bàn tay trái. Đây chính là nguyên lý làm việc của động cơ nói chung
Về động cơ một chiều :
Từ trường trong động cơ tạo ra từ các cuộn dây gọi là cuộn cảm hay cuộn kích từ .Do stator của động cơ có đặt các cuộn cảm nên thường gọi là phần cảm .Từ trường do cuộn cảm tạo ra sẽ tác dụng một lực vào các dây dẫn rotor đặt trong các rảnh của rotor khi có dòng điện chạy qua. Cuộn dây này gọi là cuộn ứng .Dòng điện đưa vào cuộn ứng qua các chổi than và cổ góp.Phần rotor mang phần ứng nên gọi là phần ứng
Giả sử các dây dẫn cuộn ứng nữa trên của rotorcos dòng điện hướng vào còn các dây dẫn của cuộn ứng ở nửa dưới rotor có dòng điện hướng ra như hình vẽ.Từ lực F tác dụng vào các dây dẫn rotor có chiều xác định theo quy tắc bàn tay trái sẽ tạo ra một mômen làm rotor quay ngược chiều kim đồng hồ.
Từ trường trong động cơ một chiều:
Khi động cơ làm việc cuộn cảm tạo ra một từ trường Φd dọc trục cực từ và phân bố đối xứng với cực từ .Mặt phẳng 00’ trên đó có đặt chổi than ,vừa là mặt phẳng trung tính hình học và cũng là mặt phẳng trung tính vật lý . Đồng thời dòng điện trong cuộn ứng cũng tạo ra một từ trường riêng Φn hướng ngang trục cực từ.Từ trường tổng trong động cơ mất đi tính đối xứng dọc trục và khi này mặt phẳng trung tính vật lý quay đi một góc β( ngược chiều quay của rotor )so với mặt phẳng trung tính hình học.
Dòng điện cuộn ứng càng lớn thì Фn càng mạnh đồng thời góc quay β càng lớn
Tổng quan về L298.
-Hoạt động với điện áp lên tới 46V.
-Tổng dòng một chiều lên tới 4A.
Sơ đồ chân và hình dáng thật của LM298
-Điện áp bão hoà thấp.
-Bảo vệ quá nhiệt.
-Điện áp vào mức “0” lên tới 1.5V.
L298 là một mạch tích hợp đơn khối với một loại 15 chân dẫn Mutilwalt và l loại bộ nguồn SO20. Đây là một mach điều khiển cầu đầy đủ với áp cao và dòng cao được thiết kế theo tiêu chuẩn mạch logic TTL và được sử dụng để chạy các phụ kiện cảm ứng như Rơle,cuộn dây Sơlenôit, động cơ một chiều , động cơ bước.
Sơ đồ khối của LM298
Hai đầu vào cho phép được cung cấp để cho phép hoặc không cho phép các thiết bị độc lập của tín hiệu đầu vào.Cực E của transistor dưới của mỗi cầu được lien kết với nhau và đầu ra ngoài tương ứng cũng có thể được sử dụng cho sự ghép nối của điện trở cảm biến ngoài.Một nguồn vào bổ sung được cung cấp làm cho mức logic làm việc ở điện áp thấp.
Bảng chân lý của LM298
_______________THIẾT KẾ___________
- Mạch mô phỏng .
Mạch mô phỏng
Sơ đồ mạch cầu
- Mạch nguyên lý.
Trong sơ đồ mạch nguyên lí ta sử dụng một mạch cầu ngoài diôt .Mạch này có tác dụng phục hồi nhanh trạng thái hoạt động của phụ tải.Nó hạn chế các trường hợp xấu của dòng phụ tải.Điện áp đầu ra có thể được sử dụng để điều khiển biên độ của dòng điện bởi sự ngắt đầu vào hoặc được cung cấp bảo vệ dòng quá tải bởi sự chuyển mạch chậm của đầu vào cho phép.
Chức năng hãm đòi hỏi mức cực đại tuyệt đối của 2 cường độ phải chưa bao giờ khắc phục.Khi lặp lại dòng điện đỉnh cần từ tải phụ là cao hơn hai cường độ dòng
điện thì cần phải nối song song đầu vào của chúng với nhau và đầu ra của chúng với nhau.
Một mạch cầu điôt được yêu cầu khi phụ tải cảm ứng được chạy và khi đầu vào của IC bị ngắt. Điốt Shottky thường được sử dụng cho mạch cầu này.
III. Mạch in
___LẬP TRÌNH CHO VI ĐIỀU KHIỂN___
I. Phương pháp điều chế độ rộng xung điều khiển tốc độ động cơ (PWM)
Điều khiển tốc độ động cơ là một kĩ thuật hết sức quan trọng trong các ứng dụng của động cơ .Kĩ thuật này giúp bạn có thể điều khiển động cơ của mình chạy nhanh chậm tuỳ ý.
a) có hai cách tạo xung có độ rộng thay đổi bằng VĐK.
Cách 1: Như các bạn điều khiển nhấp nháy 1 con led, đó là tạo ra 1 xung trên 1 chân của vi điều khiển, những xung đó có độ rộng cố định, tần số lớn, cách bạn có thể điều chỉnh lại hàm delay để tần số của nó đúng 1 Khz. Tuy nhiên vì là dùng hàm delay nên trong thời gian có xung lên 1(5V) và thời gian không có xung(0V) vi điều khiển không làm gì cả, hơn nữa tạo xung bằng việc delay mà các bạn có nhu cầu cần 2 bộ phát xung của 2 kênh, có cùng tần số mà khác độ rộng xung thì trở nên rất khó khăn. Cho nên chúng ta dùng bộ định thời Timer của vi điều khiển trong trong hợp này rất tiện.
+ Cách 2: Dùng ngắt Timer của bộ vi điều khiển
Khi bắt đầu cho timer 1 chạy thì bộ đếm của timer sẽ đếm dao động của thạch anh, cứ 12 dao động của thạch anh(1 chu kì máy), bộ đếm của timer 1
TL1(Timer Low1) sẽ tăng 1,có thển nói timer 1 đếm số chu kì máy. Đối với chế độ 8 bít.
TL1 là 1 thanh ghi 8 bít, là bộ đếm của bộ định thời rõ rồi. Nó đếm được từ 0, đến 255. Nếu nó đếm đến 256 thì bộ đếm tràn, TL1 quay vòng lại bằng 0, và cờ ngắt TF1(Timer Flag 1) tự động được gán lên 1(bằng phần cứng của vi điều khiển) như 1 công tắc tự động bật, và ngắt xảy ra.
Còn với chế độ 16 bít, bộ đếm của bộ định thời còn 1 thanh ghi 8 bít nữa là TH1(Timer high 1), nếu cấu hình cho timer 1 hoạt động ӣ chế độ 16 bit thì khi TL1 tràn nó sẽ đếm sang TH1(TH1 sẽ tăng 1). Như vậy ta có thể đếm: 216 chu kì máy( 2 thanh ghi 8+8=16 bít).
Chú ý là khi bộ đếm tràn ngắt sẽ xảy ra. Nếu ta cần đếm 256 chu kì máy thì khi khӣi tạo ta cho TL1=0; , còn nếu không muốn đếm 256 chu kì mày mà ta chỉ cần đếm 100 thôi ngắt đã xảy ra rồi thì ta fải làm như sau: 256-100 =
156; và khi khi tạo ta gán : TL1=155; vì đếm từ 155 đến 255 là đủ 100 lần thì ngắt xảy ra.
Với yêu cầu của bài. Tạo xung tần số 1Khz Æ Chu kì = 1/103 = 0,001 giây=1 mili giây=1000 uS= 1000 chu kì máy. Với 10 cấp tốc độ, tức là bạn phải tạo ra được xung 10%, 20%, 30%, 40%, …, 90%, 100%.
Khoảng thời gian xung kéo dài 5V là T1. Xung 10% tức là T1/ T=
10%=1/10. Xung 20% T2/T=2/10…PWM(Thay đổi độ rộng xung).
- Xung PWM: Đưa ra mở transitor, xung với độ rộng lớn hơn transitor sẽ
mở lâu hơn động cơ sẽ quay nhanh hơn,dĩ nhiên không tuyến tính. Không có
xung động cơ sẽ không quay, có xung 100% động cơ sẽ quay max.Tuy nhiên
xung phải lớn hơn 1 mức nào đó thì mới đủ khởi động cho động cơ. Các đặc
tính này các bạn tham khảo trong giáo trình về máy điện, khí cụ điện, nếu
các bạn cần thông số chính xác.
Để có thể thay đổi 10 cấp tốc độ với chu kì 1000uS, ta khởi tạo cho ngắt
timer: 100 uS ngắt 1 lần.
trong đồ án của mình chúng em đã sử dụng timer để thay đổi độ rông xung PWM.
II. Lập trình.
#include <REGX52.H>
#include<stdio.h>
#include<math.h>
sbit pwm=P2^0;
sbit thuan=P2^1;
sbit nghich=P2^2;
sbit stop=P1^0;
sbit daochieu=P1^1;
sbit giam =P1^2;
sbit tang =P1^3;
sbit start=P1^4;
float tyso;
int dem=0,dem1=0;
void delay(long int time)
{
long int i;
for(i=0;i<time;i++);
}
void taoxung()
{
TR0=0;
pwm=1;
TH0=-(unsigned int)(tyso*1000)/256;
TL0=-(unsigned int)(tyso*1000)%256;
TR0=1;
while(!TF0);
TF0=0;
TR0=0;
pwm=0;
TH0=-(unsigned int)((1-tyso)*1000)/256;
TL0=-(unsigned int)((1-tyso)*1000)%256;
TR0=1;
while(!TF0);
TF0=0;
}
void khoidong()
{