YÊU CẦU:
•
Dùng PIC 16F877A điều khiển 1
động cơ DC quay thuận, quay
nghịch, dùng nút nhấn điều khiển,
có thể thay đổi tốc độ dùng
phương pháp điều khiển độ rộng
xung, dùng ngôn ngữ C.
PP ĐIỀU KHIỂN 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 PIC16F877A điều khiển
động cơ quay thuận-nghịch và thay đổi tốc
độ, ta sử dụng bộ điều chế độ rộng xung
(PWM) tích hợp sẵn bên trong PIC với 2 ngõ
ra xung tại hai chân CCP1(17) và CCP2 (16)
. Tại các chân này khi hoạt động sẽ xuất
chuỗi xung vuông , độ rộng điều chỉnh được
- Postscale là số (116) để xác định có bao
nhiêu lần reset trước một ngắt: 1 có nghĩa là 1
lần, 2 nghĩa là 2 lần…
Chức năng của lệnh này là tạo ra chu kỳ
xung và được tính như sau:
T = (1/fosc)*4*t2_div*(period+1)
•
Xét ví dụ:
Lệnh: setup_timer_2(T2_div_by_4,0xc0,2)
với thạch anh 10MHz , Timer2 sẽ tăng mỗi 1.6us
( 4*4*1/10e6), sẽ bị tràn mỗi 307.2us (1.6*192),
và sẽ bị ngắt mỗi 714.4us ( 307.2*2).
Ở đây chu kỳ xung là T = (1/10e6)*4*4*(192+1)
= 153.6us.
Cụ thể trong bài, muốn tạo chu kỳ xung 1ms ta
khởi tạo Timer2 như sau:
setup_timer_2(T2_div_by_16,154,1)
Khi ấy T= (1/10e6)*4*16*(154+1) = 0.992ms =
1ms.
•
Tiếp theo, tạo xung bằng lệnh:
set_pwmx_duty(value) với x = 1, 2
- value là biến hoặc hằng ,giá trị 8 hoặc 16 bit.
Lệnh này dùng để set duty trong chế độ PWM
.Nó ghi 10 bit giá trị vào thanh ghi CCPx. Nếu
giá trị chỉ là 8 bit thì nó tự dịch lên với 2 bit zero
ở vị trí LSB để đủ 10 bit nạp vào CCPx . Giá trị
này để xác định lượng thời gian tín hiệu PWM ở
- T1 : kết nối với chân : 36 RB3/PG
- T2 : kết nối với chân : 37 RB4
- T3 : kết nối với chân : 38 RB5
- T4 : kết nối với chân : 39 RB6/PGC
- T5 : kết nối với chân : 40 RB7/PGD
Nguồn 5V, thạch anh 20MHz.
MẠCH ĐIỀU KHIỂN ĐỘNG CƠ DC:
•
Mạch gồm các Transistor, điện trở và Diode.
Nguyên lý như sau :
- Khi A, B cùng ở mức 1 : Q1, Q2 dẫn làm cho
Q5, Q6 dẫn, Q3, Q4 không dẫn, điện áp ở 2 cực
động cơ bằng nhau nên động cơ đứng yên.
- khi A, B cùng ở mức thấp : Q1, Q2 không dẫn
làm cho Q3, Q4 dẫn, Q5, Q6 không dẫn, động
cơ đứng yên.
- Khi A ở mức cao, B ở mức thấp : Q4, Q5 dẫn,
động cơ quay.
- Khi B ở mức cao, A ở mức thấp : Q3, Q6
dẫn, động cơ quay theo chiểu ngược lại.
LƯU ĐỒ:
Begin
Khởi tạo cấu hình 2 bộ
PWM
Nhấn nút
chạy
thuận
Nhấn nút