View Single Post
Old 02-01-2008, 11:48 PM   #1
uydanh
Đệ tử 4 túi
 
Tham gia ngày: Jan 2007
Bài gửi: 79
:
Cách xác định tốc độ động cơ chính xác? Viết bằng Mplab.

Chào mọi người!
Mình xác định tốc độ động cơ DC như sau : đọc xung encoder phát ra cứ mỗi 1ms một lần, dùng timer0, từ số xung đó xác định tốc độ hiện tại của động cơ. Chương trình viết bằng mplab và chạy tốt nhưng có một nhược điểm lớn như sau:vì xung đọc về chỉ toàn là số nguyên (tất nhiên ko thể có phần thập phân) nên về bản chất của giải thuật trên cho ra một tốc độ động cơ ko thể nào chính xác được. Sai số sẽ rất lớn nếu hệ số nhân vào để quy đổi từ số xung ra tốc độ thực càng lớn.
Động cơ của mình ở tốc độ tối đa đếm được 6 xung/1ms (quy đổi 3336 vòng/phút). Ở các tốc độ thấp hơn thì số xung chỉ có thể là 5 ,4,3,2,1 hoặc 0 và tương ứng nếu thể hiện ra led 7 đoạn thì dù động cơ quay như thế nào đi nữa thì cũng chỉ có 7 giá trị tốc độ đó. Chưa kể đến việc nếu chạy ở tốc độ thấp, trong vòng 1ms mà chưa tạo ra hoàn thiện 1 xung thì kết quả là 0 vòng/phút.
Cho mình hỏi, có cách naò để việc đọc tốc độ chính xác hơn không ?( mà không phải tăng thời gian lấy mẫu).
Một câu hỏi thêm : việc thực hiện các phép nhân các số thập phân dùng asm như thế nào? (có chương trình con luôn thì tốt quá!)
Cảm ơn mọi người.
uydanh vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn