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)
-   -   pic16f877a và động cơ bước 2 phase unbipolar (http://www.picvietnam.com/forum/showthread.php?t=34437)

teemo 16-09-2015 09:03 AM

pic16f877a và động cơ bước 2 phase unbipolar
 
Chào anh em. anh em cho hỏi code mình như vầy tại sao motor vẫn bị rung/ trượt mình đã mô phỏng và chạy thực tế điều cho kết quả như nhau nếu thây đổi delay_ms() lớn quá thì nó lại chạy chậm mặc dù motor đó có thể chạy nhanh được mà không bị rung, với lại còn một hiện tượng nữa là xung vuông xuất ra không ở mức 0-5v tương ứng với logic 0-1 mà nó chỉ ở với mức -1 đến 4v mà thôi, cái thứ hai là cạnh lên của xung nó không lên hết mà một nữa thì nó lên hết một nữa thì nó lên mấp mé, cạnh xuống cũng vậy. Đã kiểm tra trong mô phỏng và trong thực tế mình đo bằng oscillocope thì nó vẫn có các hiện tượng như vậy. Dưới đây là code của mình, chạy nữa bước, sử dụng module L298N để điều khiển.

#include <16f877a.h>
#device *=16 adc=10
#fuses hs, nowdt,nobrownout
#use delay(clock=20000000)
#use fast_io(b)
#byte portb=0x06

void main(){
set_tris_b(0);
while(true){
output_b(0b00000001);
delay_ms(22);
output_b(0b00000011);
delay_ms(22);
output_b(0b00000010);
delay_ms(22);
output_b(0b00000110);
delay_ms(22);
output_b(0b00000100);
delay_ms(22);
output_b(0b00001100);
delay_ms(22);
output_b(0b00001000);
delay_ms(22);
output_b(0b00001001);
delay_ms(22);
}
}

teemo 18-09-2015 11:16 AM

Trích:

Nguyên văn bởi teemo (Post 86058)
Chào anh em. anh em cho hỏi code mình như vầy tại sao motor vẫn bị rung/ trượt mình đã mô phỏng và chạy thực tế điều cho kết quả như nhau nếu thây đổi delay_ms() lớn quá thì nó lại chạy chậm mặc dù motor đó có thể chạy nhanh được mà không bị rung, với lại còn một hiện tượng nữa là xung vuông xuất ra không ở mức 0-5v tương ứng với logic 0-1 mà nó chỉ ở với mức -1 đến 4v mà thôi, cái thứ hai là cạnh lên của xung nó không lên hết mà một nữa thì nó lên hết một nữa thì nó lên mấp mé, cạnh xuống cũng vậy. Đã kiểm tra trong mô phỏng và trong thực tế mình đo bằng oscillocope thì nó vẫn có các hiện tượng như vậy. Dưới đây là code của mình, chạy nữa bước, sử dụng module L298N để điều khiển.

#include <16f877a.h>
#device *=16 adc=10
#fuses hs, nowdt,nobrownout
#use delay(clock=20000000)
#use fast_io(b)
#byte portb=0x06

void main(){
set_tris_b(0);
while(true){
output_b(0b00000001);
delay_ms(22);
output_b(0b00000011);
delay_ms(22);
output_b(0b00000010);
delay_ms(22);
output_b(0b00000110);
delay_ms(22);
output_b(0b00000100);
delay_ms(22);
output_b(0b00001100);
delay_ms(22);
output_b(0b00001000);
delay_ms(22);
output_b(0b00001001);
delay_ms(22);
}
}

Mọi người hết dùng pic rồi sao


Múi giờ GMT. Hiện tại là 01:19 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