Trích:
Nguyên văn bởi teemo
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