PDA

View Full Version : đọc encoder với pic


trongtanuet2010
08-04-2013, 12:27 AM
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.

tramnn92
08-04-2013, 11:49 AM
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 (http://kientrucminhtuan.com/home/loaisanpham/7/1/Thiet-Ke-Va-Thi-Cong-Bep)
Thiết kế bếp hiện đại (http://kientrucminhtuan.com/home/loaisanpham/7/1/Thiet-Ke-Va-Thi-Cong-Bep)
Lang cang cầu thang kính (http://kientrucminhtuan.com/home/loaisanpham/1/1/Cau-Thang---Lan-Can)
Thiết kế kiến trúc nhà phố (http://kientrucminhtuan.com/home/loaisanpham/8/1/Kien-Truc-Nha-Pho)