cấp cứu động cơ bước
1 Attachment(s)
em đang thực hiện mô phỏng động cơ bước, chỉ đơn giản là dùng bảng dịch trạng thái động cơ bước điều khiển nửa bước
code: #include <stdio.h> #include <stdlib.h> #include <p18f452.h> #include<delays.h> #pragma config WDT = OFF, OSC = HS void main() { TRISC=0x00; PORTC=0x00; TRISD=0xff; while(1) { if(PORTDbits.RD0==0){ PORTC=0x10; Delay10TCYx(2); PORTC=0x50; Delay10TCYx(2); PORTC=0x40; Delay10TCYx(2); PORTC=0x60; Delay10TCYx(2); PORTC=0x20; Delay10TCYx(2); PORTC=0xa0; Delay10TCYx(2); PORTC=0x80; Delay10TCYx(2); PORTC=0x90; Delay10TCYx(2); } //cambio di rotazione if(PORTDbits.RD1==0){ PORTC=0x90; Delay10TCYx(2); PORTC=0x80; Delay10TCYx(2); PORTC=0xa0; Delay10TCYx(2); PORTC=0x20; Delay10TCYx(2); PORTC=0x60; Delay10TCYx(2); PORTC=0x40; Delay10TCYx(2); PORTC=0x50; Delay10TCYx(2); PORTC=0x10; Delay10TCYx(2); } } } nhưng động cơ ko chạy, trễ khi nhấn nút rất nhiều, mong mọi người giúp đỡ |
mọi người vào xem cho ý kiến với ạ:(
|
Mô phỏng thì gắn zậy được chứ ở ngoài mà gắn z chax cháy PIC wá.thứ nhất động cơ trong hình bạn xài là loại bipolar nên phải xài cầu H để điều khiển công suất , với loại này để chạy nửa bước thì bạn xài mảng này :half_step[]={2,10,8,9,1,5,4,6}; xài loại unipolar thì dễ hơn chỉ xài 4 transistor bật tắt luân phiên 4phase theo mảng này : half_step[] = {1,3,2,6,4,12,8};. Thứ 2 thời gian delay giữa mỗi bước phải phù hợp với tmin của động cơ , có nhiều động cơ đáp ứng nhanh nên thành gian này nhỏ khoảng 1ms , còn trước giờ t xài máy cái step thấy thời gian này vào khoảng 4ms. Thứ 3 , khi không nhấn nút thì nên đưa port C về 0 để tiết kiệm điện!
|
Múi giờ GMT. Hiện tại là 03:58 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