摘要:本節(jié)介紹實(shí)現(xiàn)步進(jìn)電機(jī)S曲線運(yùn)動(dòng)的代碼
一、目標(biāo)功能
實(shí)現(xiàn)步進(jìn)電機(jī)轉(zhuǎn)動(dòng)總角度720°,其中加減速各90°
加速段:加速類型:S曲線
加速角度:角度為90°
起步速度:30RPM,
終止速度:500RPM
勻速段:勻速角度:角度為540°
勻速速度:500RPM
減速段:減速類型:S曲線
減速角度:角度為90°
起步速度:500RPM
終止速度:60RPM
二、生成器計(jì)算
加速參數(shù)計(jì)算
勻速參數(shù)計(jì)算,主要計(jì)算電機(jī)步數(shù)
減速參數(shù)計(jì)算
三、程序代碼
//加速、勻速、減速步數(shù)#define step0 100#define step1 600#define step2 100unsigned int n=0;//步數(shù)計(jì)數(shù)變量unsigned int flag=0;//標(biāo)志位,0:加速段 1:勻速段 2:減速段//加速段90°,30RPM-500RPMconst unsigned char codeTimeH0[100]={0XEC,0XEC,0XEC,0XED,0XED,0XED,0XEE,0XEE,0XEE,0XEF,0XEF,0XF0,0XF0,0XF1,0XF1,0XF2,0XF2,0XF3,0XF3,0XF4,0XF4,0XF5,0XF5,0XF6,0XF6,0XF7,0XF7,0XF8,0XF8,0XF8,0XF9,0XF9,0XFA,0XFA,0XFA,0XFB,0XFB,0XFB,0XFB,0XFC,0XFC,0XFC,0XFC,0XFD,0XFD,0XFD,0XFD,0XFD,0XFD,0XFD,0XFD,0XFD,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE};const unsigned char codeTimeL0[100]={0X78,0XB4,0XF5,0X3B,0X86,0XD6,0X2A,0X84,0XE4,0X48,0XB1,0X1F,0X92,0X9,0X83,0X1,0X82,0X5,0X8A,0X10,0X96,0X1C,0XA0,0X24,0XA5,0X23,0X9E,0X15,0X88,0XF7,0X61,0XC5,0X25,0X80,0XD5,0X26,0X71,0XB7,0XF9,0X36,0X6E,0XA3,0XD3,0X0,0X29,0X4F,0X71,0X91,0XAE,0XC9,0XE1,0XF8,0XC,0X1F,0X2F,0X3F,0X4D,0X59,0X65,0X6F,0X79,0X82,0X8A,0X91,0X97,0X9D,0XA2,0XA7,0XAB,0XAF,0XB3,0XB6,0XB9,0XBC,0XBE,0XC1,0XC2,0XC4,0XC6,0XC7,0XC9,0XCA,0XCB,0XCC,0XCD,0XCE,0XCE,0XCF,0XD0,0XD0,0XD1,0XD1,0XD2,0XD2,0XD2,0XD3,0XD3,0XD3,0XD3,0XD4};//減速段90°,500RPM-60RPMconst unsigned char code TimeH2[100]={0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFD,0XFD,0XFD,0XFD,0XFD,0XFD,0XFD,0XFD,0XFD,0XFD,0XFC,0XFC,0XFC,0XFC,0XFC,0XFB,0XFB,0XFB,0XFB,0XFB,0XFA,0XFA,0XFA,0XFA,0XFA,0XF9,0XF9,0XF9,0XF9,0XF8,0XF8,0XF8,0XF8,0XF8,0XF7,0XF7,0XF7,0XF7,0XF7,0XF7,0XF7,0XF6,0XF6,0XF6,0XF6,0XF6,0XF6,0XF6,0XF6,0XF6,0XF6,0XF6};const unsigned char codeTimeL2[100]={0XD4,0XD3,0XD3,0XD3,0XD3,0XD2,0XD2,0XD2,0XD1,0XD1,0XD0,0XD0,0XCF,0XCE,0XCE,0XCD,0XCC,0XCB,0XCA,0XC8,0XC7,0XC6,0XC4,0XC2,0XC0,0XBE,0XBB,0XB9,0XB6,0XB2,0XAF,0XAB,0XA6,0XA1,0X9C,0X96,0X90,0X88,0X81,0X78,0X6F,0X64,0X59,0X4D,0X3F,0X31,0X21,0XF,0XFD,0XE8,0XD2,0XBA,0XA0,0X84,0X66,0X46,0X24,0X0,0XD9,0XB0,0X85,0X58,0X28,0XF7,0XC4,0X8F,0X59,0X21,0XE8,0XAE,0X74,0X3A,0X0,0XC6,0X8D,0X54,0X1D,0XE7,0XB3,0X81,0X50,0X22,0XF6,0XCB,0XA4,0X7E,0X5A,0X39,0X1A,0XFD,0XE2,0XC9,0XB2,0X9D,0X89,0X77,0X66,0X57,0X48,0X3C}; void main(){ while(1) { }}//定時(shí)器0中斷程序void time0_int() interrupt 1{ //產(chǎn)生一個(gè)脈沖 PUL=1; _nop_();_nop_();nop_();nop_(); PUL=0; n++;//步數(shù)加1 switch (flag)//判斷運(yùn)動(dòng)狀態(tài) { case0://加速段 { if(n==step0)//加速段完成 { n=0; flag=1; TH0=TimeH2[0];//裝載定時(shí)寄存器勻速段初值 TL0=TimeL2[0]; } else { TH0=TimeH0[n];//裝載定時(shí)寄存器加速段初值 TL0=TimeL0[n]; } }break; case1://勻速段 { TH0=TimeH2[0];//裝載定時(shí)寄存器勻速段初值 TL0=TimeL2[0]; if(n==step1)//勻速段完成 { n=0; flag=2; TH0=TimeH2[n];//裝載定時(shí)寄存器減速段初值 TL0=TimeL2[n]; } }break; case 2://減速段 { if(n==step2)//減速段完成 { n=0; flag=0; TR0=0; //電機(jī)停止 } else { TH0=TimeH2[n];//裝載定時(shí)寄存器減速段初值 TL0=TimeL2[n]; } }break; default: break; }}
四.總結(jié)
通過上述計(jì)算,完成S曲線加減速運(yùn)動(dòng)。通過調(diào)整勻速運(yùn)動(dòng)的角度,加減速過程不變,可以實(shí)現(xiàn)總轉(zhuǎn)動(dòng)角度的變化,適用于總轉(zhuǎn)角需要變化且需要較高速度的情況,并且滿足總轉(zhuǎn)角應(yīng)大于加減速轉(zhuǎn)角之和。
對(duì)于大多數(shù)情況,加減速的過程可以合并,即用S加速的逆過程去實(shí)現(xiàn)減速,可以實(shí)現(xiàn)代碼的簡(jiǎn)化。
-
步進(jìn)電機(jī)
+關(guān)注
關(guān)注
152文章
3152瀏覽量
149049 -
生成器
+關(guān)注
關(guān)注
7文章
322瀏覽量
21644 -
s曲線
+關(guān)注
關(guān)注
0文章
6瀏覽量
5736
發(fā)布評(píng)論請(qǐng)先 登錄
如何使用脈沖加方向方式對(duì)步進(jìn)電機(jī)進(jìn)行位置的自由控制
基于凌陽16位單片機(jī)SPCE061A懸掛運(yùn)動(dòng)控制系統(tǒng)
有沒有stm32,l6205驅(qū)動(dòng)步進(jìn)電機(jī)pid或者s曲線動(dòng)態(tài)計(jì)算的實(shí)現(xiàn)代碼,求上傳!!!!!
步進(jìn)電機(jī)S型曲線加減速算法是什么?如何去實(shí)現(xiàn)?
怎樣去生成步進(jìn)電機(jī)S曲線運(yùn)動(dòng)數(shù)組代碼程序語言
步進(jìn)電機(jī)加減速曲線(S型)
步進(jìn)電機(jī)s曲線驅(qū)動(dòng)源碼下載

如何使用S曲線進(jìn)行步進(jìn)電機(jī)加減速的控制設(shè)計(jì)資料說明

STM32步進(jìn)電機(jī)S曲線加速的源代碼資料免費(fèi)下載

步進(jìn)電機(jī)S型曲線加速的實(shí)現(xiàn)

步進(jìn)電機(jī)S曲線生成器的計(jì)算以及使用

評(píng)論