Chữ chạy

"Con đường đến với tri thức không dễ dàng, nhưng nếu chúng ta quyết đi sẽ đến được bến bờ tri thức !". Chào mừng các bạn đến với trang thông tin của Võ Hoàng Tâm - GV Khoa Điện Điện tử - Trường Đại học SPKT Vĩnh Long. Trang cung cấp thông tin - tài liệu học tập cho các bạn học viên và sinh viên. Chúc các bạn thành công trên hành trình đi tìm tri thức ...

Mạch điều khiển động cơ DC (Thiết kế xe điều khiển) sử dụng 89C51 và code sử dụng asembly

Dùng 8 phím trên cảng 1 để điều khiển các động thái của một motor DC

Trước hết tìm hiểu nguyên lý vận hành của các thành phần dùng trong mạch điện:

1. Tìm hiểu ic điều khiển motor:
 IC BA6209 có 10 chân, công dụng của các chân như sau:

Chân 1 cho nối masse, chân 7 cho nối nguồn VCC1, chân 8 lấy nguồn VCC2 qua một điện trở 10 ohm. Mức áp chuẩn định tốc độ quay chọn theo diode Zener trên chân số 4. Chân số 3 và số 9 mắc tụ lọc và chân số 2 và chân số 10 cấp điện cho motor. Ngang motor gắn một tụ lọc nhiễu ồn phát ra từ motor. Tín hiệu điều khiển đưa vào trên chân 5 và chân 6. Bản logic cho thấy:



* Khi chân 5 Fin và chân 6 Rin đều ở mức áp thấp, thì mức áp ngả ra trên chân 2, 10 đều ở mức áp thấp: Motor không quay.

* Khi chân Fin ở mức áp cao, chân Rin ở mức áp thấp, thì chân 2 ở mức cao và chân 10 ở mức áp thấp: Motor quay thuận.

* Khi chân Fin ở mức áp thấp, chân Rin ở mức áp cao, thì chân 2 ở mức thấp và chân 10 ở mức áp cao: Motor quay ngược.

* Khi chân 5 Fin và chân 6 Rin đều ở mức áp cao, thì mức áp ngả ra trên chân 2, 10 đều ở mức áp thấp: Motor không quay. 

Phân tích trên cho thấy, chúng ta có thể dùng 3 chân 4, 5, 6 của ic lập trình để điều khiển các trạng thái quay của motor

 2. Tìm hiểu nguyên lý làm việc của motor DC.

Motor DC gồm có:

* Phần tĩnh là một nam châm vĩnh cữu, đặt cố định, một bên là cực nam thì bên kia là cực bắc.

* Phần quay gồm có các cuộn dây ứng quấn trên các từ cực. Trên trục quay người ta đặt một cổ lấy điện bằng các vòng đồng, dùng chổi than đè lên cổ lấy điện để cấp điện cho các cuộn dây ứng đặt trên phần quay, cuộn dây có điện sẽ trở thành các nam châm điện.

Do tương tác, các nam châm (ở đây là nam châm vĩnh cữu của phần tĩnh và nam châm điện trên phần quay) đặt gần nhau, khi có tên cực giống nhau sẽ đẩy nhau và khác tên thì sẽ hút nhau, điều này sẽ làm quay phần ứng, khi phần ứng quay nó đồng thời làm quay cổ lấy điện, điều này sẽ làm đảo chiều dòng chảy qua các cuộn dây ứng, như vậy các nam châm sẽ lại đổi cực tính, do vậy cuộn dây sẽ luôn phải ở trạng thái quay.




 Chúng ta biết, khi được cấp điện thì motor DC sẽ quay, mức áp cấp cho motor càng cao thì motor quay càng nhanh. Và nếu Bạn dùng lực làm quay một motor DC thì trên 2 cực của motor DC sẽ phát ra điện áp ứng, nếu motor bị kéo quay càng nhanh thì mức điện áp ứng phát ra càng cao. Điều này cho thấy motor DC khi được cấp điện nó sẽ quay, và khi bị kèo quay nó sẽ phát ra điện. Dùng luật ohm, chúng ta có thể viết hệ thức sau:

                          dòng điện I = (điện áp cung cấp) - (điện áp ứng) / điện trở R của cuộn ứng

Trong đó:   

(điện áp ứng) là một hàm của tốc độ quay. Khi motor quay càng chậm, điện áp ứng phát ra càng yếu và ngược lại. 

(lực quay) là một hàm của dòng điện I. Khi dòng điện càng lớn thì lực kéo càng mạnh.

Điều này cho thấy: Khi bị tải nặng, tốc độ quay của motor sẽ có khuynh hướng bị chậm lại, tốc độ quay giảm sẽ làm cho điện áp ứng giảm, hệ thức trên cho thấy dòng điện I sẽ tăng lên, dòng điện I tăng sẽ gia tăng khả năng mang tải của motor DC, nhờ phản ứng này, mà motor DC có khả năng mang tải rất tốt. 
  
Khi dùng motor DC chúng ta chú ý các điểm sau:

* Điện áp DC cấp cho motor DC càng cao, motor quay càng nhanh.

* Đảo chiều điện áp cấp điện, chiều quay của motor sẽ đổi chiều quay.

* Điện trở phần ứng càng nhò, dòng chảy qua motor DC càng lớn, lực quay sẽ càng mạnh.

* Khi motor DC quay, từ hai chổi quét điện sẽ luôn phát ra nhiễu ồn rất lớn, phải dùng tụ và cuộn dây để lọc nhiễu.

* Không để motor bị kẹt trục không quay, điều này sẽ khiến cho dòng chảy qua motor sẽ rất lớn, motor có thể bị cháy.

3. Phân tích sơ đồ điều khiển các động thái của motor dùng ic AT89C51

Mạch điện cho thấy: 

8 nút nhấn dùng điều khiển 2 motor DC gắn trên xe đều cho kết nối trên cảng p1. Motor DC gắn bên phải qua ic BA6209, chân p3.0 điều khiển chiều quay thuận, chân p3.1 điều khiển chiều quay nghịch và chân p3.2 điều khiển tốc độ quay. Motor DC gắn bên trái qua ic BA6209, với chân p3.3 điều khiển chiều quay thuận, chân p3.4 điều khiển chiều quay ngược và chân p3.5 điều khiển tốc độ quay.

4. Viết chương trình nguồn theo yêu cầu trên:

org 0000h
qua0:  
       jb p1.0, qua1
        call del   ; gọi trình làm trể, tránh ảnh hưởng rung phím        jnb p1.0, $
        jmp chay_toi ; Cho chạy tới, 2 motor quay cùng chiều

qua1:  
        jb p1.1, qua2
        call del
        jnb p1.1, $
        jmp chay_lui ; chạy lùi, 2 motor cho quay ngược chiều

qua2:  
       jb p1.2, qua3
        call del
        jnb p1.2, $
        jmp queo_trai ; quẹo trái, motor trái dừng, motor phải quay tới

qua3:  
        jb p1.3, qua4
        call del
        jnb p1.3, $
        jmp queo_phai ; quẹo phải, motor phải dừng và motor trái quay tới 

qua4:  
        jb p1.4, qua5
        call del
        jnb p1.4, $
        jmp dung  ; dừng, cả 2 motor đều dừng, không quay

qua5:  
        jb p1.5, qua6
        call del
        jnb p1.5, $
        jmp cham_lai ; chậm lại, 2 motor quay với tốc độ chậm 

qua6:  
       jb p1.6, qua7
        call del
        jnb p1.6, $
        jmp quay_trai ; quay vòng qua trái, motor trái quay ngược, motor phải quay thuận

qua7:  
        jb p1.7, qua0
        call del
        jnb p1.7, $
        jmp quay_phai
 ; quay vòng qua phải, motor trái quay thuận, motor phải quay ngược

chay_toi: ; trình cho chạy tới        setb p3.0
        clr p3.1
        setb p3.2
        setb p3.3
        clr p3.4
        setb p3.5
        jmp qua0  ;
 trở lại chương trình qué phím

chay_lui: ; trình cho chạy lùi         clr p3.0
        setb p3.1
        setb p3.2
        clr p3.3
        setb p3.4
        setb p3.5
        jmp qua0  ; 
trở lại trình quét phím

queo_trai: ; cho quẹo trái          setb p3.0
        clr p3.1
        setb p3.2
        setb p3.3
        clr p3.4
        clr p3.5
        jmp qua0  ; 
trở lại trình quét phím

queo_phai: ; cho quẹo phải         setb p3.0
        clr p3.1
        clr p3.2
        setb p3.3
        clr p3.4
        setb p3.5
        jmp qua0  ; 
trở lại trình quét phím

dung:  ;  cho dừng        setb p3.0
        clr p3.1
        clr p3.2
        setb p3.3
        clr p3.4
        clr p3.5
        jmp qua0  ; 
trở lại trình quét phím

cham_lai: ;  cho chậm lại         setb p3.0
        clr p3.1
        setb p3.3
        clr p3.4
        mov r4, #100
llai:   setb p3.2
        setb p3.5
        call delay
        clr p3.2
        clr p3.5
        call delay
        djnz r4, llai
        jmp qua0  ; 
trở lại trình quét phím

quay_trai: ; cho quay vòng qua trái         setb p3.0
        clr p3.1
        setb p3.2
        clr p3.3
        setb p3.4
        setb p3.5
        jmp qua0  ; 
trở lại trình quét phím

quay_phai: ; cho quay vòng qua phải          clr p3.0
        setb p3.1
        setb p3.2
        setb p3.3
        clr p3.4
        setb p3.5
        jmp qua0  ; 
trở lại trình quét phím

del:   ; đặt tên nhãn dùng cho lệnh nhẩy
      mov r3, # 10  ; nạp trị 10 vào thanh ghi r3
      mov r4, #200  ; nạp trị 200 vào thanh ghi r4
v_r4:   ; đặt tên nhãn dùng cho lệnh nhẩy
      djnz r4, $  ; giảm -1 đến khi trị trong r4 băng 0
      djnz r3, v_r4  ; giảm trị trong r3 theo bước -1, r3 0?, định hướng nhẩy
      ret  ; quay lại sau lệnh call del

delay:   ; đặt tên nhãn cho trình làm trể        mov r5, #100  ; 
nạp trị 100 vào thanh ghi r5
v_r6:   ; đặt tên nhãn dùng cho lệnh nhẩy
        mov r6, #250  ; nạp trị 250 vào thanh ghi r5        djnz r6, $ ; giảm theo bước -1 cho đến khi bằng 0 
        djnz r5, v_r6 ; giảm r5 theo bước -1, r5=0? chọn hướng nhẩy        ret   ; quay lại sau lệnh call delayend  ; dừng biên dịch tại dòng này