1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > 51单片机 驱动步进电机 C语言 lcd 基于51单片机的步进电机驱动程序

51单片机 驱动步进电机 C语言 lcd 基于51单片机的步进电机驱动程序

时间:2019-03-02 15:07:24

相关推荐

51单片机 驱动步进电机 C语言 lcd 基于51单片机的步进电机驱动程序

一、步进电机分类

1.按构造分类

①反应式;

由定子和转子构成,定子上有绕组,转子由软磁材料制成。

②永磁式;

转子由永磁体制成,转子极数与定子极数相等。

③混合式

定子有多相绕组,转子由永磁体构成,转子与定子间齿轮接触,提高精度与稳定性,输出大力矩。

2.按定子上相数来分

单相、二相、三相、四相、五相。

两相四线需选择双极性驱动;两相六线可选择双极性驱动和单极性驱动。

单极性驱动▼

双极性驱动▼

写驱动程序时,直接按照以上图片左侧表格,写相关状态码,前往第三大点。

二、步进电机相关参数

1.步距角

步进电机在一个脉冲下的角位移(转了多少角度)。

就四线单极性驱动来说

unsigned char code Zhenzhuan[4]={0x02,0x04,0x08,0x10}; //由表格可得转一圈的状态 正转0000 0010,0000 0100,0000 1000,0001 0000

数组中一个元素就是一个脉冲。

2.分辨率

含义步进电机转一圈需要的脉冲数。

市面上常见的步进电机,有28步(如28byj-48)、42步进电机(3D打印机、写字机器人常用)。

分辨率=360/步距角。

三、四相单极性驱动及例程

#include

unsigned char code Zhenzhuan[4]={0x02,0x04,0x08,0x10}; //由表格可得转一圈的状态 正转0000 0010,0000 0100,0000 1000,0001 0000

unsigned char code Fanzhuan[4]={0x01,0x08,0x04,0x02}; //反转 0001 0000,0000 1000,0000 0100,0000 0010

/******************************************************************/

/* 延时函数 */

/******************************************************************/

void Delay(unsigned int i)//延时

{

while(--i);

}

/******************************************************************/

/* 主函数 */

/******************************************************************/

main()

{

unsigned char i;

while(1)

{

for(i=0;i<4;i++) //4相

{

P1=Zhenzhuan[i]; //

Delay(500); //该参数可以调整电机转速 ,数字越小,转速越大,输出脉冲的频率

}

}

}

四、技巧及疑问

1.有类似下面图片的步进电机如何写驱动。(图片中是28byj-48)

①看图,5根线,一个循环(不是转一圈)需要8个脉冲。

则脉冲代码如下:

uchar code zheng_zhuan[8]={0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09}; //逆时钟旋转相序表

uchar code fan_zhuan[8]={0x09,0x01,0x03,0x02,0x06,0x04,0x0c,0x08}; //顺时针旋转相序表

②28BYJ-48步进电机,分辨率28,则转一圈需要28个脉冲。

当要控制该步进电机转动一圈时,两种办法,一、在数组中按照顺序从前到后复制28个代码(最容易实现)。二、在循环中实现。

for(j=1;j<5;j++)

{

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

{

P1= zheng_zhuan[i];

delay(300);

if(j==4&&i=3)i=7;

}

}

2.确定脉冲发送频率

① 舵机基本算是 10ms;

② 查看步进电机参数;

③ 通过在延时函数中改变延时时间来试出来。

3.步进电机振动时说明脉冲频率过高或者电压过低;

4.疑问:如何精确确定步进电机脉冲频率?

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。