![]() |
|
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. |
![]() |
![]() |
![]() |
#2 |
Nhập môn đệ tử
Tham gia ngày: Feb 2013
Bài gửi: 9
: |
muốn encoder tăng bao nhìu thì thêm phần if bấy nhiu thôi mà bạn,dễ mà
Thiết kế bếp đẹp Thiết kế bếp hiện đại Lang cang cầu thang kính Thiết kế kiến trúc nhà phố |
![]() |
![]() |
![]() |
Ðiều Chỉnh | |
Xếp Bài | |
|
|