步進電機驅動程序(二相四線可使用4、8節拍)


二相四線可使用4、8節拍

驅動步進電機,無非是給電機A和B組輪流給連續的脈沖,步進電機就可以驅動了。比如第一步電機的A+先給高電平其他口低電平,第二步B+高電平其他口低電平,第三步A-高電平其他口低電平,第四步B-高電平其他口低電平。這樣就完成了四拍的電機驅動。 

以下是STM32F1的代碼部分(我是按照8拍的方式寫的)

硬件的連線方式單片機IO口PB12   電機A+

                                           PB13   電機A-

                                           PB14   電機B+

                                           PB14   電機B-

#define AA_H GPIO_SetBits(GPIOB, GPIO_Pin_12 );
#define AA_L GPIO_ResetBits(GPIOB, GPIO_Pin_12 );
#define AD_H GPIO_SetBits(GPIOB, GPIO_Pin_13 );
#define AD_L GPIO_ResetBits(GPIOB, GPIO_Pin_13 );
#define BA_H GPIO_SetBits(GPIOB, GPIO_Pin_14 );
#define BA_L GPIO_ResetBits(GPIOB, GPIO_Pin_14 );
#define BD_H GPIO_SetBits(GPIOB, GPIO_Pin_15 );
#define BD_L GPIO_ResetBits(GPIOB, GPIO_Pin_15 );

void motor_run(void)
{
AA_H;
AD_L;
BA_L;
BD_L;
delay_ms(5);
AA_H;
AD_L;
BA_H;
BD_L;
delay_ms(5);
AA_L;
AD_L;
BA_H;
BD_L;
delay_ms(5);
AA_L;
AD_H;
BA_H;
BD_L;
delay_ms(5);
AA_L;
AD_H;
BA_L;
BD_L;
delay_ms(5);
AA_L;
AD_H;
BA_L;
BD_H;
delay_ms(5);
AA_L;
AD_L;
BA_L;
BD_H;
delay_ms(5);
AA_H;
AD_L;
BA_L;
BD_H;
delay_ms(5);
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM