![]() |
|
Tài trợ cho PIC Vietnam |
Cơ bản về vi điều khiển và PIC Những bài hướng dẫn cơ bản nhất để làm quen với vi điều khiển PIC |
|
Ðiều Chỉnh | Xếp Bài |
![]() |
#1 |
Nhập môn đệ tử
Tham gia ngày: Jan 2013
Bài gửi: 2
: |
đọc encoder với pic
Tính Vận tốc động cơ
Vấn đề của bạn bao gồm 2 phần sau: Thứ nhất: Đọc được xung từ encoder, biết được chiều quay của encoder. Thứ hai: Tính toán vận tốc của động cơ dựa vào encoder đó. 1. Đọc xung từ encoder: Ở đây mình dùng ví dụ bạn dùng encoder có 2 kênh đó là A,B (còn A,B là gì thì bạn chịu khó đọc ở link hocavr ở trên). Kết nối phần cứng: -1 chân ngắt ngoài của PIC nối vào kênh A (hoặc B). -1 chân I/O của PIC nối vào kênh còn lại.(config cho nó là INPUT) -gọi là chân DIR (hướng) Phần mềm: -Kích hoạt chức năng ngắt ngoài của PIC trên chân đó. -Trong chương trình xử lý ngắt: bạn kiểm tra xem chân DIR nó là 0 thì tăng biến đếm encoder lên 1, bằng 1 thì giảm biến đếm encoder xuống 1, hoặc ngược lại cũng được. Code: void interrupt_isr(void) { Motor_EncoderDir = PIND.4; //PIND.4 là đọc giá trị từ chân D.4 if(!Motor_EncoderDir) MotorEncoder++; else MotorEncoder--; //MotorEncoder: tổng số xung encoder đã đếm được } các pro cho e hỏi tý, em muốn đo tốc độ động cơ encoder dùng 2 chân tín hiệu đưa vào vi điều khiển? e tìm được dòng code trên, nhưng chưa hiểu? vì chân tín hiệu là xung vuông, như dòng code ở trên thì biến motorEncoder ko thay đổi có phải khơne mới vào nghề,mong các pro giải thích cụ thể hơn! thanks. |
![]() |
![]() |
|
|