TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI
KHOA ĐIỆN – ĐIỆN TỬ
BÀI TẬP LỚN
VI XỬ LÝ
Thiết kế mạch điều khiển tốc độ của động cơ một
chiều, bao gồm các chức năng điều khiển quay
thuận, nghịch, tăng tốc độ , giảm tốc độ, dừng.
Giáo viên hướng dẫn : Nhóm sinh viên:
TS. Trần Văn Hưng
: Ngyên Quý Tuấn Anh
: Cao Văn Đức
: Triệu Trung Hiếu
Lớp: Kỹ thuật viễn thông_K52
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.
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à một 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.
Trên cơ sở những kiến thức đã học từ môn vi xử lý. Chúng em đã thực hiện
bài tập: Điều khiển động cơ một chiều (DC).
Chúng em cám ơn thầy Trần Văn Hưng đã hướng dẫn chúng em làm bài tập
này!
BTL-VXL
Điều khiển động cơ một chiều.
2
I. Thiết kế sơ đồ nguyên lý
1. Yêu cầu
1.1. Nhiệm vụ
theo chiều ngược lại với chiều đang được cấp dòng thì động cơ sẽ đổi chiều
quay. Tuy nhiên chú ý phải dừng động cơ, đợi trễ rồi mới đảo chiều quay
nếu không sẽ bị giật (rung lắc mạnh) ảnh hưởng tới mạch. Khi tác động
điều khiển chiều quay động cơ thuận hay nghịch, ta mở chéo dẫn thông
các cặp khoá (K1 và K4) hoặc (K2 và K3).
Chú ý:
Tác động nhầm khoá sẽ dẫn thông dòng thẳng từ nguồn xống GND
gây chập mạch.
Ta nên để thời gian trễ khi tác động các cặp khoá cỡ vài chục ms, ví
dụ để tác động động cơ quay thuận ta thực hiện 3 thao tác: mở K1, trễ, mở
K4.
1.2.4. Diot
Diode trong mạch cầu H mắc song song với cực CE để tránh hiện
tượng phóng điện làm hỏng khóa Q.
1.2.5. IC ổn áp
BTL-VXL
Điều khiển động cơ một chiều.
5
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. Ví dụ 7805 ổn áp 5V, 7812 ổn áp 12V. Việc dùng các loại IC ổn áp
78xx tương tự nhau, dưới đây là minh họa cho IC ổn áp 7812 và 7805.
IC 7812
IC 7805
Sơ đồ phía dưới IC 78xx có 3 chân: chân số 1 là chân IN, chân số 2 là
chân GND và chân số 3 là chân OUT. Ngõ ra OUT luôn ổn định ở 5V/12V
dù điện áp từ nguồn cung cấp thay đổi. Mạch này dùng để bảo vệ những
1.1. Yêu cầu
Thiết kế mạch điều khiển động cơ một chiều với yêu cầu: quay
thuận, quay nghịch và 3 tốc độ khác nhau nhưng nhóm chúng em đã tối
ưu bằng cách thiết kế mạch với yêu cầu: “dừng, quay thuận, quay nghịch,
tăng tốc và giảm tốc”.
1.2. Nhiệm vụ
Thiết kế 5 node với 5 chế độ: Dừng-Thuận-Nghịch-Tăng tốc-
Giảm tốc.
BTL-VXL
Điều khiển động cơ một chiều.
8
Để thay đổi tốc độ ta sử dụng phương pháp điều chế độ rộng xung
PWM, hoạt động dựa theo nguyên tắc cấp nguồn cho mô tơ bằng chuỗi
xung đóng mở với tốc độ nhanh. Nguồn DC được chuyển đổi thành tín hiệu
xung vuông rồi cấp cho động cơ. Dòng điều khiển tốc độ quay sẽ là đường
điện áp trung bình của dãy xung này. Nếu tấn số chuyển mạch đủ lớn mô
tơ sẽ chạy với tốc độ đều đặn phụ thuộc vào mô men của trục quay. Với
phương pháp PWM điều chỉnh tốc độ của mô tơ thông qua việc điều chế
độ rộng của xung, tức là thời gian “đầy xung” (“on”) của chuỗi xung
vuông cấp cho mô tơ. Việc điều chỉnh này sẽ tác động đến công suất trung
bình cấp cho mô tơ và do đó sẽ thay đổi tốc độ của mô tơ cần điều khiển.
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. Cụ thể, muốn thay đổi
tốc độ ta sử dụng Timer cấp điện đóng mở các cặp khoá theo dạng xung với
chu kỳ cố định.
- Muốn tăng tốc động cơ ta cho tác động sườn dương nhiều,
sườn âm ít.
- Muốn giảm tốc động cơ ta cho tác động sườn dương ít, sườn
Tạo PWM có chu kì max: 100us
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.
BTL-VXL
Điều khiển động cơ một chiều.
11
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%
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ẽ
void timer0(void) interrupt 1 //Ngat timer 0
{
TR0=0; // Dung chay timer0
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 timer0
}
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.
BTL-VXL
Điều khiển động cơ một chiều.
13
2. Sơ đồ khối toàn chương trình
P0_0=0;
P0_1=PWM;
P0_2=PWM;
P0_3=0;
exit
Tăng tốc
Giảm tốc phantram_PWM phantram_PWM++
Phục vụ ngắt
Timer0
P1_
exit
P1_
exit
P1_
exit
P1_
exit
BTL-VXL
Điều khiển động cơ một chiều.
14
TR0=1; // cho timer0 chay
ET0=1; // cho phep ngat timer0
}
// Ngat tao ra PWM
void ngat_timer0(void) interrupt 1 //Ngat timer 0
{
TR0=0; // Dung chay timer0
TF0=0; // Xoa co, o che do co tu duoc xoa
dem++;
if(dem>=phantram_PWM)
{
PWM=1;
BTL-VXL
Điều khiển động cơ một chiều.
15
} // Neu bien dem < phan tram xung thi dua gia
tri 1 ra chan, xung 5V
else
{
PWM=0;
}
if(dem==20) dem=0; // Neu dem du 20 thi gan
lai bang 0 de bat dau chu ki moi
TR0=1; // Cho chay timer0
}
// Ham stop dong co
void stopdc(void)
}
BTL-VXL
Điều khiển động cơ một chiều.
16
phantram_PWM ;
delay(100);
if(phantram_PWM<1)
{
phantram_PWM=1;
}
}
return (phantram_PWM);
}
// Ham dieu khien giam toc do
unsigned char giamtoc(void)
{
if(giam==0)
{
while(giam==0)
{
;
} //khong lam gi ca
phantram_PWM++;
delay(100);
if(phantram_PWM>20)
{
phantram_PWM=20;
}
tangtoc();
giamtoc();
chonchedo();
}
}
III. Kết quả
1. Mô phỏng
Quay thuận
Quay nghịch:
BTL-VXL
Điều khiển động cơ một chiều.
18
Dừng:
2. Mạch thật
BTL-VXL
Điều khiển động cơ một chiều.
19