Điều khiển 6 motor sử dụng button with CCS

1:34:00 AM
Hello mọi người …^^.!
Hôm nay mình up lên bài động cơ DC để anh em nào mới tìm hiểu về điều khiển động cơ như mình cùng tham khảo và thảo luận.
Bài toán của mình là điều khiển động cơ DC đã có gắn sẵn Encoder, sử dụng vi điều khiển PIC16F877A, những việc cần phải xử lý:
- Đo tốc độ động cơ và hiển thị giá trị lên LCD1602 (dùng Encoder).
- Sử dụng nút bấm để thay đổi tốc độ động cơ ( dùng PWM) và chiều quay của động cơ (dùng IC L298).
Vậy trước tiên mình sẽ giới thiệu sơ qua về Encoder và IC L298.
I.ENCODER.
Động cơ của mình sử dụng Encoder tương đối là loại được sử dụng rộng rãi nhất hiện nay.


enconder

- Khối Encoder sẽ có 2 phần là:​
- Đĩa quay: cấu tạo gồm N rãnh hoặc lỗ (hay độ phân giải của Encoder)
Các cặp thu phát hồng ngoại.



[​IMG]

Khi động cơ quay khối Encoder sẽ xuất ra 2 tín hiệu dạng xung A và B cùng tần số, lệch pha 90 độ (do sự bố trị lệch nhau của 2 cặp thu phát hồng ngoại). Với 2 tín hiệu A, B này mình sẽ xác định được tốc độ và chiều quay của động cơ tại 1 thời điểm.
-Nguyên lý đo tốc độ động cơ
Khi tia hồng ngoại từ Led phát đi qua 1 rãnh trên đĩa Encoder đến Led thu thì trên kênh A (B) sẽ tạo ra 1 xung vuông, như vậy khi đĩa quay quay được 1 vòng thì trên kênh A (B)sẽ có N xung. Gọi tốc độ động cơ là V(vòng/s), số xung Encoder đếm được trong 1s là n, ta có công thức tính tốc độ động cơ:

V=n/N (vòng/s)
-Cách xác định chiều quay của động cơ :
Như trên đã nói, khối Encoder xuất ra 2 xung A,B lệch pha 90 độ, từ đặc điểm này, khi động cơ đang ở 1 vị trí bất kỳ mình sẽ xác định được chiều quay của động cơ:

[​IMG]
- Quay thuận: Kênh B ở trạng thái mức cao khi kênh A có cạnh xuống.
- Quay nghịch: Kênh B ở trạng thái mức thấp khi kênh A có cạnh xuống.
(trong bài toán của mình không có cái này).
Tóm lại, để đo được tốc độ động cơ, bạn chỉ cần đếm được trong 1s Encoder xuất ra bao nhiêu xung hay nói cách khác chúng ta quy về bài toán đo tần số xung vuông trên kênh A (hoặc kênh B) của Encoder.
II.IC L298.
IC L298 là một IC tích hợp nguyên khối gồm 2 mạch cầu H bên trong. Với điện áp làm tăng công suất đầu ra từ 5V – 47V , dòng lên đến 4A, L298 rất thích hợp trong những ứng dụng công suất nhỏ như động cơ DC loại vừa …
Mình tóm tắt qua chức năng các chân của L298: 
- 4 chân INPUT: IN1, IN2, IN3, IN4 được nối lần lượt với các chân 5, 7, 10, 12 của L298. Đây là các chân nhận tín hiệu điều khiển.
- 4 chân OUTPUT: OUT1, OUT2, OUT3, OUT4 (tương ứng với các chân INPUT) được nối với các chân 2, 3, 13, 14 của L298. Các chân này sẽ được nối với động cơ.
- Hai chân ENA và ENB dung để điều khiển các mạch cầu H trong L298. Nếu ở mức logic “1” (nối với nguồn 5V) thì cho phép mạch cầu H hoạt động, nếu ở mức logic “0” thì mạch cầu H không hoạt động.
Với bài toán của mình ở trên, các bạn chỉ cần lưu ý đến cách điều khiển chiều quay với L298:
-Khi ENA = 0: Động cơ không quay với mọi đầu vào .
-Khi ENA = 1: 
- INT1 = 1; INT2 = 0: động cơ quay thuân.
- INT1 = 0; INT2 = 1: động cơ quay nghịch.
- INT1 = INT2: động cơ dừng ngay tức thì.
(tương tự với các chân ENB, INT3, INT4). 
Tham khảo thêm datasheet ở cuối bài nhé…^^
Trong bài toán này mình sử dụng module L298 V1 để điều khiển chiều quay của động cơ DC.
Sơ đồ nguyên lý:

[​IMG]

Video mô phỏng.


Link download project.

Share this

Related Posts

Previous
Next Post »