Tài liệu hướng dẫn thực tập Vi điều khiển MSC-51 - Bài 6: Điều khiển Motor - Relay
Bài thực hành nhắm giúp học viên:
- Nắm nguyên tắc cấu tạo và hoạt động của motor DC;
- Hiểu và viết được chương trình điều khiển motor DC: đóng ngắt, quay thuận,
và quay nghịch.
- Hiểu và viết được chương trình điều khiển on/off Relay dùng trong điều khiển
công suất.
Bài 6: ðiều khiển Motor DC Trang VI-1 BÀI 6: ðIỀU KHIỂN MOTOR - RELAY I. Mục ñích bài thí nghiệm Bài thực hành nhắm giúp học viên: - Nắm nguyên tắc cấu tạo và hoạt ñộng của motor DC; - Hiểu và viết ñược chương trình ñiều khiển motor DC: ñóng ngắt, quay thuận, và quay nghịch. - Hiểu và viết ñược chương trình ñiều khiển on/off Relay dùng trong ñiều khiển công suất. II. Cơ sở lý thuyết a. Sơ lược Motor DC Motor DC ñược sử dụng rộng rãi trên thị trường do có ñặc ñiểm: giá rẻ, momen lớn. Do tốc ñộ quay tương ñối lớn nên khi sử dụng, cần có bộ phận giảm tốc, cũng là ñể tăng lực kéo cho motor. Khi dòng ñiện DC chạy qua cuộn dây, lực từ tác dụng lên cuộn dây làm quay rotor. ðể thay ñổi chiều quay, ta phải ñảo chiều dòng ñiện cấp vào motor. ðiều chỉnh ñộ rộng xung kích, ta có thể ñiều chỉnh ñược tốc ñộ, hay công suất hoạt ñộng của motor. Thông thường người ta ñiều khiển tốc ñộ Motor DC theo phương thức biến ñiệu ñộ rộng xung PWM, chính sự thay ñổi ñộ rộng xung này sẽ làm cho thay ñổi tốc ñộng cung như công suất của motor DC. Bài 6: ðiều khiển Motor DC Trang VI-2 b. Sơ lược về Relay Relay hoạt ñộng như một công tắc ñiện tử bao gồm một chân thường ñóng (NC – Normally Closed: chân 5) và một chân thường mở (NO - Normal Open: chân 4). Khi có dòng ñiện ñi qua cuộn dây (1-2) của Relay, vị trí của công tắc sẽ thay ñổi từ NC sang NO. Như vậy, khi không có dòng ñiện qua cuộn dây thì chân 3 nối với chân 5 và 2 1 Hình 1 Bài 6: ðiều khiển Motor DC Trang VI-3 khi có dòng ñiện thì chân 3 nối với chân 4. Dạng của Relay và sơ ñồ mạch cho như hình vẽ. c. ðiều khiển hoạt ñộng: ðể motor quay thuận hoặc nghịch, ta sẽ lập trình ñiều khiển trạng thái logic của các chân P0 và P1 như Bảng 1. Bảng 1: Các trạng thái ñiều khiển Motor Px.0 Px.1 Trạng thái Motor 0 0 Dừng 0 1 Quay thuận 1 0 Quay nghịch 1 1 Dừng III. Phần thực hành Thiết bị thực hành: - Bộ thí nghiệm ET-LAB3A MCS51 (board thí nghiệm, bộ nguồn và các dây bus ñể kết nối các port của vi ñiều khiển với các mạch ñiều khiển motor. - Sinh viên nhìn vào chương trình ñể xác ñịnh PORT nào ñược sử dụng trong vi ñiều khiển. Dùng dây bus kết nối các PORT của vi ñiều khiển với các module ñiều khiển. Ví dụ sử dụng Port 2 của vi ñiều khiển (học viên có thể chọn Port 0, Port 1 hoặc Port 3). - Bật SW trong sơ ñồ nguyên lý hình 1 sang vị trí 2. 1. ðiều khiển ñóng ngắt Relay. Viết chương trình ñiều khiển Relay on/off mỗi khi ấn công tắc SW1 a. Chương trình mẫu gợi ý. ORG 0000H JMP MAIN MAIN: SETB P3.2 ; set P3.2 là ngõ vào của SW1 – công tắc Bài 6: ðiều khiển Motor DC Trang VI-1 BEGIN: JB P3.2, $ ; ðợi SW1 ấn CALL DELAY CPL P2.4 ; Kết nối với Relay JMP BEGIN DELAY: MOV R7,#255 DELAY1: MOV R6,#255 DJNZ R6,$ DJNZ R7,DELAY1 RET END b. Yêu cầu: - Chú ý: SW1 = Px.2 và SW = Px.3; Px.4 dùng ñể kết nối ñiều khiển Relay - Cho thực thi chương trình ñể kiểm chứng. - Sửa ñổi ñổi chương trình sao cho mỗi khi SW1 ñược ấn thì thời gian ON của RELAY sẽ lâu hơn. - Sửa ñổi chương trình sao cho mỗi khi ấn SW1 một lần thì Relay sẽ on/off 10 lần. - Thêm vào một nút nhấn tại P3.3 kết nối SW2, viết chương trình ñiều khiển ñể khi nhấn SW1 thì ñóng Relay, nhấn SW2 thì ngắt Relay. - Sửa lại chương trình sao cho khi ấn SW1 thi Relay ON 1 phút, khi ñó trong lúc này SW2 bị vô hiệu hoá và chỉ khi hết thời gian ON của Relay thì SW1 mới có tác dụng. Khi ñó nếu SW2 ñược ấn thì Relay sẽ ON/OFF ở tần số 1Hz. - Sửa lại chương trình dùng SW1 và SW2 ñể ñiều khiển Relay theo nguyên tắc của cổng EX-OR (khi SW1 và SW2 cùng trạng thái thì Relay OFF, khi SW1 và SW2 khác trạng thái thì Relay ON) 2. Chương trình ñiều khiển motor DC. Bài 1: ðể motor quay, ta viết chương trình xuất dữ liệu ñiều khiển các chân P0 và P1 (chú ý P0 và P1 là các ñường ñiều khiển ngõ vào, không phải là PORT0 và PORT1 của vi ñiều khiển) như ñã mô tả trong Bảng 1. a. Chương trình mẫu gợi ý. ORG 0000H JMP MAIN ;không sử dụng ngắt nên không cần ;ñể dành 30H bytes ñầu MAIN: MOV SP, #256-32 ;define stack 32 bytes CLR EA ;cấm tất cả các ngắt LOOP: MOV P3, #0FEH ;cho motor quay JMP $ END b. Yêu cầu: - Chạy chương trình quan sát kết quả trên motor. - Sửa ñổi chương trình cho motor quay thuận 1 phút rồi dùng lại. Bài 6: ðiều khiển Motor DC Trang VI-5 - Sửa lại ñoạn chương trình trên ñể motor cứ quay 30s thì dừng 30s và lặp lại? - Sửa chương trình cho motor quay theo chiều ngược lại. - Sửa lại chương trình cho motor quay thuận 30s sau ñó quay ngược 30s. Chu trình này ñược lặp lại. - Sửa lại chương trình khi thêm vào 2 nút nhấn SW1, SW2 (SW1 = Px.2 và SW = Px.3). Viết chương trình ñiều khiển ñể khi nhấn SW1 thì Motor quay theo chiều thuận, khi ấn SW2 thì motor quay theo chiều ngược lại. - Sửa lại chương trình dùng SW1 = Px.2 và SW = Px.3 ñể ñiều khiển motor theo nguyên tắc của cổng EX-OR (khi SW1 và SW2 cùng trạng thái thì motor OFF, khi SW1 và SW2 khác trạng thái thì motor quay thuận hoặc nghịch) Bài 2: Dựa vào các chương trình con sẵn có, hãy viết chương trình ñiều khiển sao cho motor quay thuận trong 5s, sau ñó ñảo chiều quay. a. Chương trình mẫu gợi ý. ORG 0000H JMP MAIN ;không sử dụng ngắt nên không cần ;ñể dành 30H bytes ñầu MAIN: MOV SP, #256-32 ;define stack 32 bytes CLR EA ;cấm tất cả các ngắt MOV P3, #0FEH ;bật cho motor quay MOV R2, #20 ;canh thời gian 5s LOOP: CALL DELAY250 ;delay 0.25s DJNZ R2, LOOP MOV P3, #0FDH ;ñảo chiều DELAY250: END b. Yêu cầu: - Chạy chương trình quan sát kết quả ñể kiểm chứng. - Sửa lại ñoạn chương trình trên ñể motor quay thuận 5s, sau ñó ñảo chiều và quay 5s rồi dừng. - Sửa lại ñoạn chương trình trên ñể motor cứ quay thuận 3s, thì quay nghịch 6s và lặp lại. - Sửa lại chương trình khi thêm vào 2 nút nhấn SW1, SW2. Viết chương trình ñiều khiển ñể khi nhấn SW1 thì Motor quay theo chiều thuận 10s, khi ấn SW2 thì motor quay theo chiều ngược lại 20s. Sau ñó dừng lại Bài 3: Dựa vào các chương trình con sẵn có, hãy viết chương trình ñiều khiển sao cho motor quay ở ¼ tốc ñộ bình thường. Bài 6: ðiều khiển Motor DC Trang VI-6 ðể giảm tốc ñộ quay của motor, ta sử dụng phương pháp PWM. Chính sự thay ñổi ñộ rộng của xung cấp cho P0 hoặc P1 sẽ làm cho motor quay hết công suất hay không. a. Chương trình mẫu gợi ý. ORG 0000H JMP MAIN ;không sử dụng ngắt nên không cần ;ñể dành 30H bytes ñầu MAIN: MOV SP, #256-32 ;define stack 32 bytes CLR EA ;cấm tất cả các ngắt LOOP: MOV P3, #0FEH ;bật motor quay 5ms CALL DELAY5 ;delay 5ms MOV P3, #0FFH ;dừng motor 15ms CALL DELAY5 CALL DELAY5 CALL DELAY5 JMP LOOP DELAY5: END b. Yêu cầu: - Chạy chương trình và quan sát kết quả. - Sửa chương trình ñể thay ñổi thời gian delay hay ñể thay ñổi ñội rộng xung. Chay chương trình và quan sát kết quả. Có nhận xét gì khi thay ñổi thời gian dẫn của motor. - Sửa lại chương trình ñể motor quay ở tốc ñộ bằng ½ tốc ñộ bình thường. - Sửa lại chương trình ñể motor quay ở tốc ñộ bằng ¾ tốc ñộ bình thường (Gợi ý: thay ñổi thời gian quay bằng 15ms và thời gian dừng là 5ms). - Sửa lại chương trình ñể motor chỉ quay trong khoảng thời gian 30 giây rồi dừng trong khoảng 30 giây và sau ñó lặp lại quá trình này. - Sửa lại chương trình ñể motor quay theo chu trình như sau: chiều thuận (quay phải) 10 giây dừng 5 giây quay theo chiều nghịch (quay trái) 10 giây. Sau ñó lặp lại quá trình này. - Sửa chương trình ñiều khiển motor bằng tay. Nếu ấn SW1 thì motor quay theo tốc ñộ 1, còn nếu ấn SW2 thì motor quay tốc ñộ 2. Dĩ nhiên tốc ñộ 1 sẽ nhỏ hơn tốc ñộ hai. -----------Hết-----------
File đính kèm:
- Tài liệu hướng dẫn thực tập Vi điều khiển MSC-51 - Bài 6 Điều khiển Motor - Relay.pdf