访问手机版页面
你的位置:老古开发网 > 51单片机与步进电机 > 正文  
51单片机学习笔记:步进电机控制,正转反转等
内容导读:
步进电机应用广泛,例如打印机、磁盘驱动器、玩具、汽车雨刷、手机震动、机械夹具、刻录机等各种机械控制场合一些概念:拍数N定子控制绕组每改变一次通电方式,即为一拍一个磁场通电周期是 A-B-C-D-A完成一个磁场周期性

步进电机应用广泛,

例如打印机、磁盘驱动器、玩具、汽车雨刷、手机震动、机械夹具、刻录机等各种机械控制场合

一些概念:

拍数N
定子控制绕组每改变一次通电方式,即为一拍
一个磁场通电周期是 A-B-C-D-A
完成一个磁场周期性变化所需脉冲数,
也指电机转过一个齿距角所需脉冲数,用N表示
拍数又等于相数的1倍或2倍,
以四相电机为例,
有4相4拍, A-B-C-D-A...
4相8拍, A-AB-B-BC-C-CD-D-DA-A...


齿距角θz
一个通电循环周期(比如4拍)转子转过一个齿距角
齿距角又等于360除以转子齿数Z, θz=360/Z


步距角θs
步距角,即在没有减速齿轮的情况下,对于一个脉冲信号,转子所转过的机械角度.
也就是说,每一拍转子转过的角度称之为步距角,通常用θs表示
θs=齿距角/拍数
θs=360/(N*Z)
 
步距角的误差不会长期积累,只与输入脉冲信号数相对应,
可以组成结构较为简单而又具有一定精度的开环控制系统,
也可以在要求更高精度时组成闭环系统。


转速X
每分钟电机转了多少转?设脉冲频率f
一个脉冲,转子转过角度为1/(ZN),
X=60*f/(ZN) 拍数与齿数表示法
=(f*θs)/6 步距角表示法

以上都是网上搜到的,整理了下,有不对的敬请指出,谢谢.

---------------------------------------------------------




我手上用到的步进电机

24BYJ48-5v 减速永磁步进电机

功能特点:
采用ULN2003驱动,使用方便,带齿轮减速,噪音低,运转平稳,5V即可驱动,
器件参数:
1.额定电压:5-10V DC
2.直流电阻:60Ω±7%(25℃).
3.减速比:1/64
4.步距角:5.625°*(1/64), 含减速比
5.驱动方式:4相8拍
6.牵入转距:≥350gf.cm(工作频率:100PPS)
7.打滑扭力:800~1300gf.cm
8.温升:≤55K(5VDC 工作频率:100PPS)
9.噪音:≤35dB(空载,100PPS,水平距马达10cm)
10.绝缘耐压:600V AC/1秒
11.引线拉力强度:1Kgf/条
12.接线方式:5线4相
1.VCC 红色
2.A 橙色
3.B 黄色
4.C 粉色
5.D 蓝色
============================================================

C代码

#include"my51.h"

//4相8拍

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

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

sbitS3=P3^5;//反转按键

sbitS4=P3^6;//正转按键

sbitS5=P3^4;//停止按键

voidmotorTurn_ccw()//转1圈,逆时针

{

u8i,j;

for(j=0;j<8;j++)//电机内部的转子旋转一周

{

if(S5==0)//按键没处理抖动

{

break;//如果停止键按下,退出此循环

}

for(i=0;i<8;i++)//旋转45度,8*5.625°=45°

{

P1=tableCCW[i];

delayms(2);//调节转速

}

}

}

voidmotorTurn_cw()//转1圈,顺时针

{

u8i,j;

for(j=0;j<8;j++)//8*45°=360°

{

if(S5==0)

{

break;//如果停止键按下,退出此循环

}

for(i=0;i<8;i++)//旋转45度,8*5.625°=45°

{

P1=tableCW[i];

delayms(2);//调节转速

}

}

}

voidmain()

{

u8r;

u8N=64;//减速步进电机,减速比1/64,所以N=64时,步进电机外主轴转一圈

P1=0xff;_nop_();

ledLock=LOCK;//我们的P1口接有8个led灯,先锁定,不要让它们亮,节能环保

while(1)

{

if(S3==0)//按键了

{

for(r=0;r

{

motorTurn_ccw();//电机逆时针转

if(S5==0)

{

break;//俺S5键立马停止

}

}

}

elseif(S4==0)

{

for(r=0;r

{

motorTurn_cw();//电机顺时针转

if(S5==0)

{

break;

}

}

}

else

{

P1=0xf0;//平时也是停止的

}

}

}


标签: 51单片机,步进电机控制,正转反转,
来源:互联网 作者:karen 时间:2019/1/15 10:00:01
相关阅读
推荐阅读
阅读排行
最近更新
商品推荐