PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   Cảm biến (http://www.picvietnam.com/forum/forumdisplay.php?f=18)
-   -   Encoder: absolute và incremental? Dùng loại nào? (http://www.picvietnam.com/forum/showthread.php?t=224)

lequocbao 28-05-2009 01:18 PM

mình đọc encoder bằng timer1(counter) qua rc0 của thằng 77a.vậy là pó tay hả bác?

dongdu2907 27-09-2009 12:52 AM

[QUOTE=falleaf;1069]

Kết quả, nếu đĩa encoder có đến 10 vòng lỗ, thì chúng ta sẽ quản lý được đến 1/(2^10) tức là đến 1/1024 vòng. Hay người ta nói là độ phân giải của encoder là 1024 xung trên vòng (pulse per revolution - ppr).



Anh felleaf: em muốn hỏi anh là như anh nói thì số xung của encoder phu thuộc vào số vòng rãnh đúng ko anh. Em có 1 cái encoder chỉ có 1 vòng rãnh như thế tức là encoder của em chỉ có 2 xung trên một vòng theo cách tính của anh, nhưng em được người bán hàng nói là encoder đó là 50 xung / vòng. Vậy thì anh có thể giải thích cho em biết vì sao lại có sự sai khác như vậy được không? Cám ơn anh rất nhiều

falleaf 27-09-2009 08:38 AM

[QUOTE=dongdu2907;29838]
Trích:

Nguyên văn bởi falleaf (Post 1069)

Kết quả, nếu đĩa encoder có đến 10 vòng lỗ, thì chúng ta sẽ quản lý được đến 1/(2^10) tức là đến 1/1024 vòng. Hay người ta nói là độ phân giải của encoder là 1024 xung trên vòng (pulse per revolution - ppr).



Anh felleaf: em muốn hỏi anh là như anh nói thì số xung của encoder phu thuộc vào số vòng rãnh đúng ko anh. Em có 1 cái encoder chỉ có 1 vòng rãnh như thế tức là encoder của em chỉ có 2 xung trên một vòng theo cách tính của anh, nhưng em được người bán hàng nói là encoder đó là 50 xung / vòng. Vậy thì anh có thể giải thích cho em biết vì sao lại có sự sai khác như vậy được không? Cám ơn anh rất nhiều

Em phân biệt 2 loại encoder Incremental (loại của em) và Absolute (loại em đang trích dẫn bài của anh).

Nên đọc kỹ và hiểu từ từ, đừng trích dẫn lung tung và đọc trước bỏ sau.

Chúc vui

trungmaidinh 14-01-2010 02:01 AM

Thưa các anh, mảng encoder mà các anh đang thảo luận là encoder quang, hoạt động theo nguyên tắc thu phát. Tức là có một led phát sáng chiếu qua lỗ encoder rồi phía bên kia sẽ có sensor thu tín hiệu (hiểu nôm na là thế). Em đọc trong một số tài liệu thì thấy còn có loại encoder quang PHẢN XẠ, hoạt động trên nguyên tắc phản xạ ánh sáng, tuy nhiên tài liệu nói quá sơ sài về phần này. Mong các anh giải thích nguyên lý hoạt động của loại này cho em được không ạ. Cảm ơn các anh rất nhiều.

121388th 28-04-2010 08:42 AM

bai viet nay hay lam hi hi

121388th 28-04-2010 09:17 AM

anh ơi em muôn hỏi các dạng đầu ra của encoder cho motor có 12 loại đầu ra
đó là A,B,C, và các tín hiệu phủ định cuat nó và tín hiệu V,U,W( cái này là phụ thuộc vào số cực của động cơ ) vậy nó phụ thuộc như thế nào ? dùng để làm j ??? hu hu hu

chimcon 11-11-2010 11:11 AM

encoder
 
void right_motor_forward(int value)
{
MOTOR_RIGHT_DIR=0;
setup_timer_2(T2_DIV_BY_4,124,1); // Dieu xung 10kHz
setup_ccp1(CCP_PWM);
set_pwm1_duty(value);
}
void left_motor_forward(int value)
{
MOTOR_left_DIR=0;
setup_timer_2(T2_DIV_BY_4,124,1); // Dieu xung 10kHz
setup_ccp2(CCP_PWM);
set_pwm2_duty(value);
}
void left_motor_reverse(int value)
{
MOTOR_LEFT_DIR=1;
setup_timer_2(T2_DIV_BY_4,124,1); // Dieu xung 10kHz
setup_ccp2(CCP_PWM);
set_pwm2_duty(value);
}
void right_motor_reverse(int value)
{
MOTOR_right_DIR=1;
setup_timer_2(T2_DIV_BY_4,124,1); // Dieu xung 10kHz
setup_ccp2(CCP_PWM);
set_pwm2_duty(value);
}
void left_motor_stop()
{
setup_ccp1(CCP_OFF);
}
void right_motor_stop()
{
setup_ccp1(CCP_OFF);
}
void left_motor_stop()
{
setup_ccp1(CCP_OFF);
}
void right_motor_stop()
{
setup_ccp1(CCP_OFF);
} // Chương trình xử lý tốc độ 2
động cơ
// 0:Stop,100:FORWARD 100%,-100:Reverse 100%
void speed (signed int left_motor_speed, signed int right_motor_speed)
{
int left_pwm_value=0,right_pwm_value=0;
/* Left motor */
if( left_motor_speed >= 0 )
{
left_pwm_value = 1.25*left_motor_speed; // (125*left_motor_speed/100)
left_motor_forward(left_pwm_value);
}
else
{
left_motor_speed = -left_motor_speed;
left_pwm_value = 1.25*left_motor_speed; // (125*left_motor_speed/100)
left_motor_reverse(left_pwm_value);
}
/* Right motor */
if( right_motor_speed >= 0 )
{
right_pwm_value = 1.25*right_motor_speed; // (125*left_motor_speed/100)
right_motor_forward(right_pwm_value);
}
else
{
right_motor_speed = -right_motor_speed;
right_pwm_value = 1.25*right_motor_speed; // (125*left_motor_speed/100)
right_motor_reverse(right_pwm_value);
}
}

windfeast 04-12-2010 08:23 AM

Encoder 1 vòng rãnh nhưng có 3 đầu dây ra?
 
1 Attachment(s)
Hôm vừa rồi mình mua được cái động cơ có gắn sẵn Encoder này, 80k. Nhưng hỏi người bán thì người ta cũng ko biết nó bao nhiêu xung/giây. Trên thân động cơ có ghi 11K0575/22/C95X, mình tra trên mạng cũng ko thấy.
Ngõ ra của nó có 5 dây, 2 dây xanh lam và đỏ là nguồn mass cho động cơ, còn lại 3 dây, 1 lục, 1 xám, 1 trắng. Lúc đầu mình nghĩ là 3 kênh A, B và I (hoặc Z), nhưng coi lại thì thấy trên đĩa tròn của Encoder chỉ có 1 vòng rãnh (khoảng 68 lỗ trên 1 vòng duy nhất)...
Ai có kinh nhiệm gì về con này thì giúp mình với. Độ phân giải bao nhiêu và tác dụng của từng dây ngõ ra?
Thanks mọi người!
Ủa mà ngõ ra từ Encoder mình cho trực tiếp vào VXL hay có cần phải qua cái gỉ nữa ko nhỷ?

shakespeare_a18 20-12-2010 02:14 AM

@windfeast: 3 dây còn lại là +5, GND cho led phát của encoder, dây còn lại lấy tín hiệu về.
Còn dây nào là dây nào thì bạn phải kiểm tra mới biết. Đa số đầu ra encoder có thể đưa vào vxl trực tiếp được.
Còn bao nhiêu xung/vòng, nếu bạn tháo ra đếm dc thì tốt, còn ko thì lập trình cho vxl đếm xung, rồi quay 1 vòng xme khoảng bao nhiêu xung.

phamquocgia 30-03-2011 11:44 PM

Trích:

Nguyên văn bởi shakespeare_a18 (Post 40964)
@windfeast: 3 dây còn lại là +5, GND cho led phát của encoder, dây còn lại lấy tín hiệu về.
Còn dây nào là dây nào thì bạn phải kiểm tra mới biết. Đa số đầu ra encoder có thể đưa vào vxl trực tiếp được.
Còn bao nhiêu xung/vòng, nếu bạn tháo ra đếm dc thì tốt, còn ko thì lập trình cho vxl đếm xung, rồi quay 1 vòng xme khoảng bao nhiêu xung.

Bạn có thể chỉ mình cách kiểm tra được ko?
Mình mua cái động cơ có encoder 400xung/vòng, đĩa quay có 1 vòng lỗ. có 2 dây cấp cho động cơ. còn chỗ encoder có 1 cái bus 4 chân. nhìn sâu vào thì thấy có 2 chân được nối với nhau = 1 cái tụ dán thì phải! bạn chỉ mình cách để xác định nha!

robocon1 21-05-2011 01:55 PM

Xác định số vòng quay rpm
 
Chào các bạn. Mình có mạch đếm số vòng quay của encoder. Mạch đếm từ 0 -> 32768 thì quay lại 0.
Tần số trích mẫu của mình là 500HZ. Các bạn chỉ giúp mình công thức để tính số vòng quay của động cơ được không?

Theo nguyên lý thì: Số vòng quay = [w(k)-w(k-1)]*60/(2*pi*T)
Trong đó
w(k) là con số nhận được từ mạch đếm ở thời điểm hiện tại
w(k-1) là con số nhận được từ mạch đếm ở thời điểm lấy mẫu phía trước
T là tần số lấy mẫu.
Sau khi có số vòng quay mình đưa qua một mạch lọc thông thấp (LPF) nhưng kết quả không đúng.
Bạn nào có kinh nghiệm chỉ ra giúp mình xem phương pháp trên bị sai ở chỗ nào. Cám ơn các bạn nhiều.


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

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