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

VI ĐIỀU KHIỂN 8051 ĐIỀU KHIỂN ĐỘNG CƠ DC BẰNG XUNG PWM

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 (445.79 KB, 21 trang )

BỘ GIÁO DỤC ĐÀO TẠO
TRƯỜNG ĐẠI HỌC DÂN LẬP HẢI PHÒNG
Bài tiểu luận
Vi điều khiển và ứng dụng
ĐỀ TÀI : VI ĐIỀU KHIỂN 8051 ĐIỀU KHIỂN ĐỘNG CƠ DC BẰNG
XUNG PWM
Giảng viên : Nguyễn Huy Dũng
Sinh viên : Phạm Nho Biển
Đào thị Năm
Tạ Hữu Quang Vinh
1

Mục lục
1. Giới thiệu
2. Tổng quan kỹ thuật vi điều khiển 8051
3. Xung PWM - Pulse Width Modulation
4. Mạch cầu H
5. Động cơ 1 chiều
6. Mạch nguồn 7805
7. Sơ đồ nguyên lý
2

8. Chương trình
9. Mạch in
1. Giới thiệu
Ngày nay đa số các lĩnh vực sản xuất , điều khiển , giám sát , đo lường đều được trang bị hệ
thống tự động hóa . Một trong các vi mạch được sử dụng là vi điều khiển , nó được ứng dụng rất
phổ biến trong các lĩnh vực này . Vi điều khiển quản lý hoạt động của hệ thống thông qua phần
mềm , nhờ vậy mà chúng ta có thể thay đổi 1 cách dễ dàng hoạt động của hệ thống bằng cách thay
đổi thông số của chương trình . Vi điều khiển hoạt động theo chương trình đã nạp sẵn , đọc các tín
hiệu từ bên ngoài sau đó đưa vào để xử lý ,trên cơ sở đố vi điều khiển đưa ra các tín hiệu điều khiển


để điều khiển các thiết bị bên ngoài hoạt động theo đúng yêu cầu , thông số của chương trình cài
đặt sẵn bên trong vi điều khiển .
Trên thực tế vi điều khiển có mặt trong hầu hết các thiết bị , đồ dùng của chúng ta và ngày càng
trở nên phổ biến như : lò vi sóng ,máy giặt , hệ thống cảnh báo , hệ thống đèn giao thông …
Trong báo cáo này chúng em xin được phép giới thiệu về một trong các hệ thống điều khiển sử
dụng vi điều khiển 8051 để điều khiển động cơ DC bằng xung PWM . Để điều khiển tốc độ động
cơ DC người ta có thể dùng nhiều phương pháp khác nhau trong đó có một phương pháp hết sức
quan trọng và thông dụng là phương pháp điều chế độ rộng xung kích (PWM), có nghĩa là thay đổi
độ rộng xung kích để điều khiển linh kiện đóng ngắt (SCR hay Transistor), từ đó điều khiển tốc độ
động cơ. Bộ PWM có thể tạo ra từ các linh kiện điện tử. Với yêu cầu dùng vi điều khiển 8051để
điều khiển động cơ quay thuận-nghịch và thay đổi tốc độ, ta sử dụng chương trình để tạo xung
PWM bên trong vi điều khiển AT89S52 tại chân P2.6 . Tại chân này khi hoạt động sẽ xuất chuỗi
xung vuông , độ rộng điều chỉnh được dễ dàng. Xung ra này dùng để tạo tín hiệu đóng ngắt
Trasistor trong mạch động lực, với độ rộng xác định sẽ tạo ra một điện áp trung bình xác định.
Thay đổi độ rộng xung sẽ thay đổi điện áp trung bình và do đó thay đổi được tốc độ động cơ.
2. Tổng quan vi điều khiển 8051
Bộ vi điều khiển 8051 là thành viên đầu tiên của họ 8051. Hãng Intel ký hiệu nó như là MCS51
3

Đặc tính Số lượng
ROM trên chíp 8 k byte
RAM 128 byte
Bộ định thời 2
Các chân vào ra 32
Cổng nối tiếp 1
Nguồn ngắt 6
Các đặc tính của 8051 đầu tiên
Cấu tạo và chức năng các khối của AT89S52.
4


5

Các đặc tính của AT89S52
CPU( CPU centralprocessing unit) bao gồm:
Thanh ghi tích lũy A
Thanh ghi tích lũy phụ B
Đơn vị logic học (ALU)
Thanh ghi từ trạng thái chương trình
Bốn băng thanh ghi
6

Con trỏ ngăn xếp
Bộ nhớ chương trình( ROM) gồm 8Kbyte Flash.
Bộ nhớ dữ liệu( RAM) gồm 256 byte.
Bộ UART, có chức năng truyền nhận nối tiếp.
3 bộ Timer/Counter 16 bit thực hiện chức năng định thời và đếm sự kiện.
Khối điều khiển ngắt với 2 nguồn ngắt ngoài và 4 nguồn ngắt trong.
Bộ lập trình( ghi chương trình lên Flash ROM) cho phép người sử dụng có thể nạp các
chương trình cho chíp mà không cần các bộ nạp chuyên dụng.
Bộ chia tần số với hệ số chia là 12.
4 cổng xuất nhập với 32 chân.
Chức năng các chân của AT89S52
Port 0( P0.0=>P0.7)
Port 0 gồm 8 chân, ngoài chức năng xuất nhập, port 0 còn là bus đa hợp dữ liệu và địa
chỉ( AD0-AD7), chức năng này sẽ được sử dụng khi 89s52 giao tiếp với các thiết bị ngoài có kiến
trúc Bus như các vi mạch nhớ, mạch PIO…
Port 1( P1.0=>P1.7)
Chức năng duy nhất của Port 1 là chức năng xuất nhập cũng như các Port khác. Port1 có thể
xuất nhập theo bit và theo byte.
Port 2( P2.0=>P2.7)

Port 2 ngoài chức năng là cổng vào/ra như Port 0 và 1 còn là byte cao của bus địa chỉ khi sử
dụng bộ nhớ ngoài.
Port 3
Mỗi chân trên Port 3 ngoài chức năng xuất nhập còn có một chức năng riêng, 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
7

P3.3 INT1 Ngắt ngoài 1
P3.4 TO 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.
Chân /PSEN : là chân điều khiển đọc chương trình ở bộ nhớ ngoài.
Chân ALE : ALE là tín hiệu điều khiển chốt địa chỉ có tần số bằng 1/6 tần số dao
động của vi điều khiển. Tín hiệu ALE được dùng để cho phép vi mạch chốt bên
ngoài như 7473.
Chân /EA : Tín hiệu /EA cho phép chọn bộ nhớ chương trình là bộ nhớ trong hay
ngoài. EA=1 thì thực hiện chương trình trong RAM nội. EA=0 thực hiện ở RAM
ngoài.
RST( reset) : Ngõ vào reset trên chân số 9. khi RST=1 thì bộ vi điều khiển sẽ được
khởi động lại thiết lập ban đầu.
XTAL1, XTAL2 : 2 chân này được nối song song với thạch anh tần số max=33 Mhz
để tạo dao động cho bộ vi điều khiển.
Vcc, GND : cung cấp nguồn nuôi cho bộ vi điều khiển. cấp qua chân 20 và 40.
3. Xung PWM - Pulse Width Modulation
Phương pháp điều chế PWM có tên tiếng anh là Pulse Width Modulation 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. Điều chế độ rộng xung (PWM) là một
kỹ thuật thường được sử dụng để kiểm soát tính năng của các thiết bị quán tính điện, áp dụng thực
tế trong các thiết bị chuyển mạch điện điện tử hiện đại.
Tần số chuyển mạch PWM nhanh hơn nhiều so với các tác động ảnh hưởng đến tải, cụ thể ở
đây là các thiết bị sử dụng điện. Thông thường các bộ chuyển đổi thực hiện nhiều lần một phút
trong một bếp điện, 120 Hz trong một đèn mờ, từ vài kilohertz (kHz) đến hàng chục kHz cho một ổ
đĩa động cơ và cũng vào hàng chục hoặc hàng trăm kHz, bộ khuyếch đại âm thanh và máy tính
nguồn cung cấp điện.
8

Ví dụ về PWM trong 1 ổ đĩa động cơ
PWM cũng đã được sử dụng trong một số hệ thống thông tin chu kỳ nhiệm vụ của nó đã được
sử dụng để truyền đạt thông tin qua một kênh thông tin liên lạc .
Trong báo cáo này để điều khiển tốc độ dùng chỉnh độ rộng xung (Pulse Width Modulation
-PWM) hay còn được các đội robot gọi là: băm xung. Là cách phổ biến để có thể thay đổi tốc độ
của robot.
Điều khiển độ rộng của xung được làm bằng cách tắt bật nhanh nguồn điện lên động cơ.
Nguồn áp 1 chiều DC sẽ chuyển thành tín hiệu xung vuông, thay đổi từ 12V xuống 0V.Nếu tần số
bật tắt mà đủ cao, motor sẽ chạy ở một tốc độ ổn định nhờ mômen quay.Bằng cách thay đổi chu kỳ
hoạt động của tín hiệu (thay đổi độ rộng xung – PWM), tức là khoảng thời gian “Bật”, nguồn điện
trung bình đặt lên động cơ sẽ thay đổi và dẫn đến thay đổi tốc độ.
Như trên hình, với dãy xung điều khiển trên cùng, xung ON có độ rộng nhỏ nên động cơ
chạy chậm. Nếu độ rộng xung ON càng lớn (như dãy xung thứ 2 và thứ 3) động cơ DC chạy càng
nhanh
9

Ưu điểm: - Transistor ở lối ra chỉ có duy nhất hai trạng thái (ON hoặc OFF) do đó loại bỏ
được mất mát về năng lượng đốt nóng hay năng lượng rò rỉ tại lối ra.

- Dải điều khiển rộng hơn so với mạch điều chỉnh tuyến tính.
- Tốc độ mô tơ quay nhanh hơn khi cấp chuỗi xung điều chế theo kiểu PWM so với
khi cấp một điện áp tương đương với điện áp trung bình của chuỗi xung PWM.
Nhược điểm: - Cần các mạch điện tử bổ trợ - giá thành cao
- Các xung kích lên điện áp cao (12 - 24V) có thể gây nên tiếng ồn nếu mô tơ
không được gắn chặt và tiếng ồn này sẽ tăng lên nếu gặp phải trường hợp cộng
hưởng của vỏ.
- Ngoài ra việc dùng chuỗi xung điều chế PWM có thể làm giảm tuổi thọ của mô
tơ.
4. Mạch cầu H
Mạch cầu H là mạch được cấu tạo bởi 4 transitor hay là Fet. Đôi khi mạch cầu H cũng được
cấu tạo bởi 2 transitor hay Fet. Tác dụng của transitor và Fet là các van đóng mở dẫn dòng điện từ
nguồn xuống tải với công suất lớn. Tìn hiệu điều khiển các van là tín hiệu nhỏ (điện áp hay dòng
điện) và cho dẫn dòng và điện áp lớn để cung cấp cho tải.
Tín hiệu điều khiển của điều khiển là nhỏ thường là tín hiệu đầu ra của vi điều khiển là nhỏ
hơn 5V (do các điều chế PWM) mà điều khiển động cơ cần dòng điện và điện áp lớn. Các van điều
khiển hay các chân điều khiển chỉ cần tín hiệu nhỏ (Điện áp hay dòng điện) là mở khóa (Transitor)
dẫn dòng cho tải. Nên thế mới dùng mạch cầu H
Mạch cầu H có thể đảo chiều dòng điện qua tải nên thế nó hay được dùng trong các mạch
điều khiển động cơ DC và các mạch băm áp. Đối với mạch điều khiển động cơ thì mạch cầu H có
thể đảo chiều động cơ quá là đơn giản. Chỉ cần mở khóa các van đúng chiều mà mình muốn.
Giả sử có một động cơ DC có 2 đầu A và B, nối 2 đầu dây này với một nguồn điện DC (ắc
qui điện – battery). Nếu nối A với cực (+), B với cực (-) mà động cơ chạy theo chiều thuận (kim
đồng hồ) thì khi đảo cực đấu dây (A với (-), B với (+) thì động cơ sẽ đảo chiều quay , mạch cầu H
(H-Bridge Circuit) sẽ giúp bạn. Như thế, mạch cầu H chỉ là một mạch điện giúp đảo chiều dòng
điện qua một đối tượng .
10

Mạch cầu H.
Trong hình 2 đầu V và GND là 2 đầu (+) và (-) của ắc qui, “đối tượng” là động cơ DC

mà chúng ta cần điều khiển, “đối tượng” này có 2 đầu A và B, mục đích điều khiển là cho phép
dòng điện qua “đối tượng” theo chiều A đến B hoặc B đến A. Thành phần chính tạo nên mạch cầu
H của chúng ta chính là 4 “khóa” L1, L2, R1 và R2 (L: Left, R:Right). Ở điều kiện bình thường 4
khóa này “mở”, mạch cầu H không hoạt động. Chúng ta sẽ khảo sát hoạt động của mạch cầu H
thông qua các hình minh họa có hình dạng dưới đây :
11

Nguyên lý hoạt động mạch cầu H.
Giả sử bằng cách nào đó mà 2 khóa L1 và R2 được “đóng lại” (L2 và R1 vẫn mở), dễ
dàng hình dung có một dòng điện chạy từ V qua khóa L1 đến đầu A và xuyên qua đối tượng đến
đầu B của nó trước khi qua khóa R2 và về GND (như hình a). Như thế, với giả sử này sẽ có dòng
điện chạy qua đối tượng theo chiều từ A đến B. Bây giờ hãy giả sử khác đi rằng R1 và L2 đóng
trong khi L1 và R2 mở, dòng điện lại xuất hiện và lần này nó sẽ chạy qua đối tượng theo chiều từ B
đến A như trong hình b (V->R1->B->A->L2->GND). Chúng ta có thể dùng mạch cầu H để đảo
chiều dòng điện qua một “đối tượng” (hay cụ thể, đảo chiều quay động cơ) bằng “một cách nào
đó”.
Nếu đóng đồng thời 2 khóa ở cùng một bên (L1 và L2 hoặc R1 và R2) hoặc thậm chí đóng
cả 4 khóa thì sẽ xảy ra hiện tượng “ngắn mạch” (short circuit), V và GND gần như nối trực tiếp với
nhau và hiển nhiên ắc qui sẽ bị hỏng hoặc nguy hiểm hơn là cháy nổ mạch xảy ra. Cách đóng các
khóa như thế này sẽ làm ảnh hưởng đối với mạch cầu H
5. Động cơ 1 chiều
Độ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. 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.
12

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.

6. Mạch nguồn 7805
Linh Kiện : IC 7805 là IC ổn áp 5V
Với những mạch điện không đòi hỏi độ ổn định của điện áp quá cao, sử dụng IC ổn áp
thường được người thiết kế sử dụng vì mạch điện khá đơn giản. Các loại ổn áp thường được
sử dụng là IC 78xx, với xx là điện áp cần ổn áp
Sơ đồ phía dưới IC 7805 có 3 chân:
13

Ngõ ra OUT luôn ổn định ở 5V dù điện áp từ nguồn cung cấp thay đổi. Mạch này
dùng để bảo vệ những mạch điện chỉ hoạt động ở điện áp 5V (các loại IC thường hoạt động ở
điện áp này). Nếu nguồn điện có sự cố đột ngột: điện áp tăng cao thì mạch điện vẫn hoạt
động ổn định nhờ có IC 7805 vẫn giữ được điện áp ở ngõ ra OUT 5V không đổi .
Mạch trên lấy nguồn một chiều từ một máy biến áp với điện áp từ 7V đến 9V để đưa
vào ngõ IN. Khi kết nối mạch điện, do nhiều nguyên nhân, người dùng dễ nhầm lẫn cực tính
của nguồn cung cấp khi đấu nối vào mạch, trong trường hợp này rất dễ ảnh hưởng đến các
linh kiện trên board mạch. Vì lí do đó một diode cầu được lắp thêm vào mạch, diode cầu đảm
bảo cực tính của nguồn cấp cho mạch theo một chiều duy nhất, và nguời dùng cũng không
cần quan tâm đến cực tính của nguồn khi nối vào ngõ IN nữa.
Điện áp đặt trước IC7805 phải lớn hơn điện áp cần ổn áp từ 1.5V đến 2V
7. Sơ đồ nguyên lý
Sơ đồ khối
14

Tín hiệu vào
Khối điều khiển
trung tâm
Mạch cầu H Motor DC
Khối nguồn 5V
Sơ đồ nguyên lý
15


Lưu đồ thuật toán :
Y
N
Y
N
Y
N
Y
N
Y
N
16

BEGIN
Khởi tạo cấu hình xung PWM
Xử lý quay thuận
Quay thuận
Quay nghịch
Tăng tốc
Giảm tốc
Xử lý quay nghịch
Xử lý tốc độ tăng
Xử lý tốc độ giảm
Điều khiển động cơ quay
END
Ngừng động cơ
Stop
8. Chương trình
#include <regx52.h>

char duty=0,pwm=0;// Gia tri toc do ban dau
unsigned char t=0;
bit enable_pwm=0,rl=0;
void left(void);
void right(void);
void init_timer()//khoi tao ban dau cho ngat
{
// thiet lap tna so bus
TMOD=0x22;//chon timer 0 che do 8 bit tu lap lai
TH0=0x00;//thoi gian ngat ~140us
TL0=0xFC;//thoi gian ngat ~140us
ET0=1;// Cho phep ngat timer 0
TR0=1;//khoi dong timer 0
EA=1;//cho phep ngat toan cuc
}
void timer_int_0(void) interrupt 1// Ham xu li ngat timer 0
{
TF0=0;
if(enable_pwm==1)// <-> Pwm=4.7619Khz
{
if(duty<pwm && pwm>=0)
{
if(rl==0) P2_3=1;// Quay trai
else P2_6=1;// Quay phai
}
17

else if(duty>pwm && duty<100)
{
P2_3=0;// Thoi gian off

P2_6=0;
}
duty++;
if(duty==100)
{
duty=0;// Xoa ve 0
}
}
t++;
if(t==100)
{
//
if(P3_0==0)// Neu an quay trai
{
left();
}
else if(P3_1==0)// Neu an quay phai
{
right();
}
else if(P3_2==0)// Neu an giam toc

{
18

if(pwm>0)
{
pwm ;// Tang toc
}
}

else if(P3_3==0)// Neu an tang toc
{
if(pwm<99)
{
pwm++;// Giam toc
}
}
else if(P3_4==0)// Neu an Stop
{
pwm=0;
}
t=0;
}
}
void left(void)// Ham quay trai
{//5 3
enable_pwm=0;
P2_3=0;// Tat pwm
P2_6=0;// Tat pwm
P2_7=1;// Khoa van tren
P2_5=0;// Mo van tren
rl=0;// Quay trai
19

enable_pwm=1;
}
void right(void)// Ham quay phai
{//7 6
enable_pwm=0;
P2_3=0;// Tat pwm

P2_6=0;// Tat pwm
P2_5=1;// Khoa van tren
P2_7=0;// Mo van tren
rl=1;// Quay phai
enable_pwm=1;
}
void main()
{
init_timer();

P3=0xFF;// Lay Port3 lam dau vao
P0=0xFF;
P1=0xFF;
P2=0xFF;
left();// Quay trai

while(1)
{

}
}
20

9. Mạch in
Chúng em xin chân thành cám ơn
THE END
21

×