PDA

View Full Version : Các bác cho em hỏi ????????


manhha2799
22-06-2008, 02:03 AM
- Thứ 1:Để đo giá trị 1 encoder thì mình thường dùng ngắt ngoài,hoặc ngắt Rb ( sau khoảng thời gian nhất định) sẽ xác định được số vòng quay của động cơ. Nhưng với pic 16f877a thì chỉ có 1 ngắt ngoài. Vậy cho em hỏi,làm sao xác định vận tốc của 2 encoder được.
- Thứ 2:Mình có thể dùng các cách sau không
+ cách 1 :chức năng capture ccp1,ccp2 để đo vận tốc của 2 encoder được không.
+ cách 2: dùng encoder 1 cho ngắt ngoài, encoder 2 cho ngắt Rb. Không biết nó co cho giá trị tương đương nhau không?
+ cách 3: Encoder 1 Dùng timer0 để đếm sau khoảng thời gian timer1 thì xác định vận tốc + Encoder 2 cho ngắt ngoài.
- Em tính đo tốc độ của 2 động cơ Dc dùng encoder, mong các bác chỉ giúp.

david
22-06-2008, 11:00 AM
Bạn định dùng chức năng input capture để đo tốc độ động cơ như thế nào nhỉ? Nếu dùng cả 2 chân ccp1,ccp2 thì bạn sẽ không còn chân nào để băm xung nữa.
Bạn có thể dùng ngắt RB để đếm 2 encoder, nhưng lúc này số lần ngắt trong 1 phút là rất lớn, bạn cần xử lý để tránh tràn số đếm.
Nếu bạn chỉ đo tốc độ thôi thì bạn có thể sử dụng cả 3 Timer của 16F877A mà

cuong86vt
22-06-2008, 12:18 PM
Còn 2 chân T0CKI và T1CKI là 2 chân input của bộ đếm counter của timer0 và timer1, bạn có thể dùng 2 chân phát xung của 2 Encoder đưa vào đây, 2 bộ đếm counter sẽ đọc liên tục và lưu giá trị thời gian liên tục để ghi vào 2 timer, bạn có thể tính được...
Còn dùng ngắt ngoài RB là phương pháp giải quyết tạm thời, nếu Encoder của bạn phát xung cỡ 500 - 1000 xung/s thôi thì ngắt RB đọc liên tục như vậy liệu chương trình chính trong main của bạn còn thời gian đâu để chạy nổi nữa...

manhha2799
02-07-2008, 11:42 PM
- Cho em hỏi nếu em điều xung PWM cho 2 động cơ có encoder thì phải dùng timer2 kèm theo 2 chân ccp1,ccp2.
- Khi em dùng timer 0,timer 1 làm bộ đếm cho encoder thì em có thể sử dụng timer2 để định khoảng thời gian đọc giá trị lấy mẫu của encoder không?.
--> Như vậy không biết timer2 khi điều xung cho động cơ và timer 2 để định thời gian đọc encoder có trùng nhau ko. Chương trình của em điều khiển 2 động cơ, và đọc giá trị của 2 encoder cùng lúc sau mỗi khoảng thời gian định sẵn.

namqn
03-07-2008, 12:11 AM
- Cho em hỏi nếu em điều xung PWM cho 2 động cơ có encoder thì phải dùng timer2 kèm theo 2 chân ccp1,ccp2.
- Khi em dùng timer 0,timer 1 làm bộ đếm cho encoder thì em có thể sử dụng timer2 để định khoảng thời gian đọc giá trị lấy mẫu của encoder không?.
--> Như vậy không biết timer2 khi điều xung cho động cơ và timer 2 để định thời gian đọc encoder có trùng nhau ko. Chương trình của em điều khiển 2 động cơ, và đọc giá trị của 2 encoder cùng lúc sau mỗi khoảng thời gian định sẵn.
Các module CCPx của PIC không có bộ đếm dành riêng, do đó timer2 để tạo PWM và timer2 để định thời chỉ là một.

Việc dùng timer2 để làm time base cho CCP và định thời gian lấy mẫu encoder là có thể. Hiện thực ra sao tùy vào khả năng viết code của bạn.

Thân,