II. Sơ đồ lập trình:
2. Các trƣờng hợp của cảm biến do đƣờng khi hoạt động:
31H P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 30H VXL điều chỉnh P1,P2 thơng qua CT tạo xung
X X X 0 0 X X X P1 = P2 (robo chạy thẳng cân bằng) X X X X 0 0 X X P1>P2 (robo hơi sang trái) X X X X X 0 0 X P1>>P2 (robo hơi lệch sang trái) X X X X X X 0 0 P1>>>P2 (robo lệch sang trái) X X X X X X X 0 P1>>>>P2 (robo lệch hẳn sang trái) X X 0 0 X X X X P1<P2 (robo hơi sang phải) X 0 0 X X X X X P1<<P2 (robo hơi lệch sang phải)
0 0 X X X X X X P1<<<P2 (robo lệch sang phải) 0 X X X X X X X P1<<<<P2 (robo lệch hẳn sang phải)
Vì cơng suất của motor phụ thuộc vào TON của xung tại motor. Vậy muốn cho motor chạy nhanh hoặc chạy chậm ta chỉ cần thay đổi TON của xung tại motor. Nĩi cách khác là ta thay đổi 30H, 31H trong chƣơng trình tạo xung của P0.5, P0.7 trong Vi xử lý.
Chƣơng trình cân bằng sẽ xử lý tất cả các trƣờng hợp dị đƣờng trên để tìm ra giá tri 30H, 31H thích hợp đƣa từ giá trị R3 vào chƣơng trình tạo xung. Nhƣ vậy, với Chƣơng trình cân bằng này, ta cĩ thể điều chỉnh tốc độ chạy tới của robo một cách linh hoạt bằng cách nhập giá trị cho R3. R3 càng lớn tốc độ chạy của robo càng cao và ngƣợc lại.
Chú ý: chƣơng trình này chỉ đƣợc sử dụng khi robo chạy tới do đƣờng.
II. Sơ đồ lập trình :
Cũng giống nhƣ chƣơng tạo xung, khi kết hợp với chƣơng trình chính, ta phải viết lại chƣơng trình cân bằng thành một chƣơng trình con. Mỗi khi gọi chƣơng trình con cân bằng này ra thì nĩ chỉ quét 1 chu kì quét, dựa vào cảm biến do đƣờng để tìm ra giá trị 30H, 31H thích hợp rồi tạo ra một chu kì xung T = TON + TOFF cho P0.5 và P0.7 bằng chƣơng trình con tao xung, sau đĩ thốt ra quay lại chƣơng trình chính.
Giá trị R3 đƣợc mov vào trong chƣơng trình chính, cụ thể hơn là trong các chƣơng trình điều khiển tốc độ cho robo.
Sơ đồ giải thuật:
LUẬN ÁN TỐT NGHIỆP
BEGIN
Tìm giá trị 33H,32H từ R3 sao cho P1 = P2 P0.2 or P0.3 = 0 P0.2 = 0 P0.3 = 0 P0.1 = 0 P0.4 = 0 P0.0 = 0 P0.6 = 0 06H = 0 07H = 0 P0 = 111111XX ROBOCON 2007
Robo hơi sang phải SETB 06H Giảm 33H sao cho SETB 07H
P1>P2
Robo hơi sang trái SETB 06H Giảm 32H sao cho SETB 07H
P1>P2
Robo bị hơi lệch phải SETB 06H Giảm 33H sao cho SETB 07H
P1>>P2
Robo bị hơi lệch trái SETB 06H Giảm 32H sao cho SETB 07H
P1<<P2
Robo lệch sang phải CLR 06H Giảm 33H sao cho SETB 07H
P1>>>P2
Robo lệch sang trái SETB 06H Giảm 32H sao cho CLR 07H
P1<<<P2 Robo lệch hẳn sang phải
Giảm 33H sao cho P1>>P2
Robo lệch hẳn sang trái Giảm 32H sao cho
P1<<P2
Robo không dò được lai MT=MP=7/10(33H)
Mov 30H,32H Lcall tao xung Mov 31H,33H
LUẬN ÁN TỐT NGHIỆP ROBOCON 2007
Bài 3: CHƢƠNG TRÌNH ĐIỂU KHIỂN MOTOR TỐC ĐỘ - LÙI - THẮNG - QUẸO TRÁI - QUEO PHẢI