![]() |
發布時間: 2019-6-14 12:45
正文摘要:是電路連接出錯?還是程序有毛病呢?程序如下 #include <reg52.h>#define uint unsigned int#define uchar unsigned charuchar code FFW[]={ 0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09}; ... |
相位變換的時間太短了,因為電機屬于惰性器件,不能馬上響應你的指令,需要延遲時間 |
語句執行也需要時間,適當增加延時時間試試 |
可能是延時時間太短了。還沒來的及轉就跳到下一條指令去了 |
驅動電流夠不夠 |
如果步進的時序沒有問題,你就要考慮是不是相位變化的時間間隔太快了,馬達還沒來得及不進一步呢,下一個相位脈沖就過來了. 你在j循環中執行P1 = FFW[j];,增大P1 = FFW[j]之間的時間間隔,你現在的代碼,如果沒有按鍵按下,循環周期是DelayMS(50);,是不是太短了? |
有沒有虛擬示波器,用示波器測量一下P1.0--P1.3,看看時序是否正確 |