PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   Cơ bản về vi điều khiển và PIC (http://www.picvietnam.com/forum/forumdisplay.php?f=8)
-   -   đọc encoder với pic (http://www.picvietnam.com/forum/showthread.php?t=32076)

trongtanuet2010 08-04-2013 12:27 AM

đọ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.

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
Thiết kế bếp hiện đại
Lang cang cầu thang kính
Thiết kế kiến trúc nhà phố


Múi giờ GMT. Hiện tại là 07:58 PM.

Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam