步进电机正反转的单片机程序问题

我要做一个步进电机正反转程序,要求先正转5秒,然后停顿1秒,再反转5秒,再停顿1秒,如此自动循环,能有程序码?电机是五线步进电机!,我就这么多分了!
还有没有更完整点的程序??转速是300PPS,电机是7.5度的!

第1个回答  推荐于2016-03-18
code uchar Tab_Run[9] = {0x37, ........, 0x00};//不同电机,方式不一样,这里自己看电机的资料填。以8拍为例,前8个字节是电机转动状态,最后一个是断电停止。
void Run(uchar runMode){
static uchar runNum = 0;
switch(runMode){
case Run_Left :
runNum = (runNum + 1) % 8; //0-7 +
P0 = Tab_Run[runNum];
break;
case Run_Right :
runNum = (runNum + 7) % 8; //0-7 -
P0 = Tab_Run[runNum];
break;
case Run_Stop :
P0 = Tab_Run[8];
break;
}
RunStatus = runMode; //全局变量:电机当前状态
}

void ScanRun(){ //1ms 执行一次
Run(RunStatus);
}本回答被提问者和网友采纳
第2个回答  2012-07-17
到我的文库里去下一个,你只需要在加个定时器T0/T1就行了

单片机C语音控制步进电机正反转程序
首先,定义步进电机的四相绕组为A、B、C、D,通过脉冲控制其正反转。正转控制代码示例:c include define DELAY_1 0.001s void delay(int n){ int i;for (i = 0; i < n; i++);} void main(){ while (1){ \/\/ AB→BC→CD→DA→AB顺序脉冲输入 \/\/ 步进电机正转 P1 = 0x01; ...

步进电机正反转的单片机程序问题
code uchar Tab_Run[9] = {0x37, ..., 0x00};\/\/不同电机,方式不一样,这里自己看电机的资料填。以8拍为例,前8个字节是电机转动状态,最后一个是断电停止。void Run(uchar runMode){ static uchar runNum = 0;switch(runMode){ case Run_Left :runNum = (runNum + 1) % 8; \/...

51单片机步进电机正反转程序
单片机控制步进电机,我想你说的是两相步进电机,一般是控制其相序分配的顺逆从而控制正反转,一般而言,步进电机相序分配你可以做成一个数组比如step[]={0x03,0x06,0x0c,0x09},这样来说可以假设P0口是步进电机控制口,那么可以按如下方式来控制: while(1) { for(i=0;i<4;i++) { if(fx==1...

用单片机控制步进电机正反转,简单易懂的C语言程序,最好带注释,步进电机...
第1行设置由输入端X1作为启动,Y1输出3万个脉冲,脉冲频率600赫兹(每秒600个脉冲的频率),由于只有Y1输出脉冲,没有设置方向输出端,所以电机正转。第3、4行由X2同时启动两行作为反转,Y1输出3万个脉冲,频率为800赫兹,Y1输出脉冲的同时方向输出端Y2同时输出方向信号,因此,电机反转。反转的3万个...

单片机控制步进电机有那些程序问题?
1、相序分配问题,对2\/4相步进电机来说,会有全步、半步之分,较高级的控制还有进一步的细分控制。2、速度控制问题,体现相序变化的快慢,用定时器中断控制的话应该很好实现。3、正反控制问题,这个问题也很好解决,如果将相序分配做成一个数组的话,假如指针递增为正转,那么指针递减就反转了。从控制...

51单片机控制步进电机正反转、加减速
51单片机控制步进电机正反转、加减速 我本来想实现步进电机自由调速的,可现在的程序如果先加速就不能减速了,如果先减速就不能加速了并且减几下就变得很慢了(经测试上下限都是可以正常速度运转的)求各位路过的大侠指点... 我本来想实现步进电机自由调速的,可现在的程序如果先加速就不能减速了,如果先减速就不能...

单片机控制电机正反转动的c语言程序
首先要看你的电机是直流电机还是步进电机。直流电机就简单了,只有两根线,电机两端电压正负极改变就可以实现正转反转。不过要加电机驱动芯片,或者H桥电路,电机驱动芯片可以选择L298N,加上适当的外围电路就可以直接用单片机控制电机了。比如让单片机P1.0 = 0,P1.1 = 1;(单片机I\/0口要与电机驱动...

这是一个单片机控制步进电机正反转的程序,但是只能转3圈,谁能改成一直...
你这个程序是受按键控制的 按一个正转几圈,按另一个反转几圈。如果想改成按一个一直转下去,然后按其他键还有反应,需要修改程序架构。当然如果不需要按键反应,按照楼上所说在某处加一个while(1)就结束了

如何用单片机控制步进电机的正反转,同时又有相应的灯亮,求那位大佬告知...
步进电机旋转是需要一定的脉冲序列的。比如四相步进电机有A+A-B+B-四根电机接线。如果要步进电机旋转起来就需要给这四根线一定的脉冲。电机正转时以正序列给以脉冲信号,电机反转反之。模拟电机运行时可以直接使用单片机驱动,实际需要加三极管扩流。led指示正反转则使用单片机管脚 ...

51单片机控制步进电机能够正转却不能反转?
这可能与你步进电机的停止步距角有点关系,既然正转从0x40开始没问题,你试试反转也从此开始。试试如下修改。uchar code B_Rotation[4]={x040,0x08,0x10,0x20};\/\/反转表格

相似回答