步进电机297 298驱动程序

步进电机297 298驱动程序,第1张

最近正好自己在搞一个小车,经过测试了,可用,有不懂得地方再联系:

驱动用的l298n。

#include<reg52h>

#define uchar unsigned char

#define uint unsigned int

uchar rec_int_flag=0;

void delay_ms(uint x);

void motor_con(uchar angle,uchar speed ,uchar back,uchar direction);

uchar code Fan[8]={0, 0x0b, 0x09, 0x0d, 0x05, 0x07, 0x06, 0x0e};

//1010 ,1011, 1001 ,1101,0101,0111,0110, 1110

uchar code Zhen[8] ={0x0e, 0x06, 0x07, 0x05, 0x0d, 0x09, 0x0b, 0};

// 1110 ,0110 ,0111, 0101,1101,1001,1011,1010

void main()

{

while(1)

{

motor_con(1,20,0,2);

if(rec_int_flag==1)

{

while(1);

}

}

}

void delay_ms(uint x)

{

uchar i,j;

for(i=0;i<x;i++)

for(j=0;j<120;j++);

}

void rev_int(void) interrupt 0

{

rec_int_flag=1;

}

/

函数说明:

direction==0时左轮动,为1时右轮动,为2时直行。

转动角度为(72度angle)。

back==1时代表后退,back==0时代表前进。

speed用于延时speed毫秒来调速。

P0为左轮电机,P1为右轮电机

/

void motor_con(uchar angle,uchar speed ,uchar back,uchar direction)

{

uchar m,n;

switch(back)

{

case 1: //判断前进后退与否 0代表前进

{

for(m=0;m<angle;m++) //前进角度

{

for(n=0;n<8;n++)

{

if(direction==0) P1=Fan[n]; //左转右转或直行。

else if(direction==1) P0=Fan[n];

else {P1=Fan[n];P0=Fan[n];}

delay_ms(speed); //调速

}

}

}break;

case 0:

{

for(m=0;m<angle;m++)

{

for(n=0;n<8;n++)

{

if(direction==0) P1=Zhen[n];

else if(direction==1) P0=Zhen[n];

else {P1=Zhen[n];P0=Zhen[n];}

delay_ms(speed);

}

}

}break;

default: break;

}

}

一样型号的当然不用换了,如果换了,由于分几种情况可,如果电机的类型没变,比如都是两相混合式电机,只要改变相应的驱动电流就可以了,如果类型都变了,比如两相的变成

五相

,三相的,那连硬件

驱动电路

都要变了

以上就是关于步进电机297 298驱动程序全部的内容,包括:步进电机297 298驱动程序、更换了步进电机,驱动程序需要改变吗、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9831838.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存