Chia sẻ Điều khiển động cơ bằng phương pháp PID hiển thị LCD

dcthang

Học sinh phổ thông
#21
làm thế nào để xác định chiều quay của encoder, tức là cách đọc kênh A, kênh B.
 

mta_cdt

Super Moderator
Thành viên BQT
#22
làm thế nào để xác định chiều quay của encoder, tức là cách đọc kênh A, kênh B.
download.jpg
Bạn cho A vào int đặt chế độ ngắt là sườn và kiểm tra B. Khi có ngắt chân A nếu như B=1 thì quay theo 1 chiều bạn cứ quy định là chiều thuận (xung encorder ++; ), nếu B=0 thì quay theo chiều ngược lại. (xung encorder--;) vậy thôi.
 

daotruongpro

http://vtechpro.vn
#23
Ở đây có 1 đoạn chương trình đọc chiều của Encoder. Thuật toán giống ý như mta_cdt đã đưa ra
/*******************************************************************************
Chuong trinh ngat ngoai 1 doc Encode Kenh A
*******************************************************************************/
#int_EXT1 //DAY CAM
void EXT1_isr(void)
{
EnA++;//Tang so Xung
if(!INPUT(PIN_B2)) chieu=1;
}
/*******************************************************************************
Chuong trinh ngat ngoai 2 doc Encode Kenh B
*******************************************************************************/
#int_EXT2 //DAY VANG
void EXT2_isr(void)
{
if(!INPUT(PIN_B1)) chieu=0;
}
 

nguyen huan

Học sinh trung cấp
#24
ai hiểu dòng này chỉ em với
uk=uk_1+(Kp+Ki*T/2+Kd/T)*ek;
uk=uk-(Kp-Ki*T/2+2*Kd/T)*ek_1;
uk=uk+(Kd/T)*ek_2;
 
Sửa lần cuối bởi điều hành viên:

txh.utc

Học sinh phổ thông
#26
e ms tìm hiểu về PID mấy anh cho e hỏi là giả sử em có động cơ encorder thì để tìm hàm truyền của nó bằng cách nào vậy
 

Tien.ND

Học sinh phổ thông
#29
Cho e hỏi là bài này dùng trình dịch gì cho atmega thế ạ. E dùng Codevision dịch ra xong chạy rất chậm k hiểu tại sao
 

mduc12

Học sinh phổ thông
#30
Các bác cho em hỏi vì sao lại so sánh Output với Pwm_Period và gán Output cho duty cycle?
Vì em nghĩ Output với Pwm_Period là 2 đại lượng khác nhau.
 

Quảng cáo Google