历史上的今天
今天是:2025年07月26日(星期六)
2021年07月26日 | 51单片机学习笔记【八】——步进电机
2021-07-26 来源:eefocus
一.步进电机基础
1.定义
步进电机是将电脉冲转化为角位移的执行机构,主要使用永磁性步进电机,本实验使用的步进电机为四线双性步进电机;
步进电机的相数指产生不同极性N,S磁场的激磁线圈对数,常用m表示;
步进电机的拍数指完成一个磁场周期性变化所需脉冲数,以四线二相电机为例:
单向四拍:A/-B-A-B/
双向四拍:A/B-AB-AB/-A/B/
单&双八拍:A/-A/B-B-AB-A-AB/-B/-A/B/
步进角指定子没改变一次通电状态,转子转过的角度,与磁极数,定子相数,通电方式节拍成负相关。计算
360/(m*Z*C)
m–定子向数
Z–转子磁极数
C–通电方式
C=1 单或双轮流通电
C=2 单和双轮流通电
2.步进电机步进方式
(1).单拍方式:每次仅给一个绕组通电,使转子转动,并运动到转子永磁体与具有相反极性的绕组对齐的位置
(2).双拍方式:同时给两个绕组通电使转子旋转,优点是比单拍获得更多输出力矩,缺点消耗更多能量;
(3).半拍方式:工作时则让两个绕组和单个绕组通电方式交替进行;
3.四线双性步进电机原理图

4.UDN2916介绍
UDN2916LB是SANKEN公司推出的一款两相步进电机双极驱动集成电路芯片,能够驱动双绕组双极步进电机,适用的电机电压范围为10~45V,逻辑电压不能超过7V;通过内部脉宽调制控制器(PWM)可实现最大750mA的输出电流;内置1/3和2/3分割器;逻辑输入实现1相/2相/W1-2phase激励模式;内置过热和交叉电流保护功能;内置防止低压误操作等保护功能。UDN2916LB内部结构如图所示,芯片有两组电路构成,每组电路由PWM控制器、电桥及辅助电路组成。

5.实验说明
本实验通过控制步进电机以半步八拍的方式转动,学习步进电机的原理与引用。接线为步进电机接M_OUT,P1–P1.0,P2–P1.1,I01–P1.2,I02–P1.3,I11–P1.4,I12–P1.5。
6.例程源代码
/**************************************
> File Name: 四线双极性步进电机
> Author: pengshp
> Mail: pengshp3@outlook.com
> Date: 2015年 7 月 26 日
***************************************/
#include #define uchar unsigned char #define uint unsigned int sbit PH1=P1^0;//A线圈电流控制 sbit PH2=P1^1;//B线圈电流控制 sbit T01=P1^2;//UDN2916电流控制 sbit T02=P1^3; sbit T11=P1^4; sbit T12=P1^5; void Delay(uchar t)//延时函数 { uchar a; while(t--) { for(a=70;a>0;a--); } } /*半步八拍节拍控制函数*/ void Step() { /*A/ A拍反向电流*/ PH1=0;//PH1为0,A组线圈为反向电流 T01=0;//以最大电流输出 T11=0; PH2=1;//PH2为1,B线圈为正向电流 T02=1;//关闭电流输出 T12=1; Delay(2); /*A/B AB拍,A为反向电流,B为正向电流*/ PH1=1;//PH1为1,A组线圈为正向电流 T01=0;//以最大电流输出 T11=0; PH2=1;//PH2为1,B线圈为正向电流 T02=1;//关闭电流输出 T12=1; Delay(2); /*B B为正向电流*/ PH1=0;//PH1为0,A组线圈为反向电流 T01=1;//关闭电流输出 T11=1; PH2=1;//PH2为1,B线圈为正向电流 T02=0;// T12=0; Delay(2); /*AB AB都为正向电流*/ PH1=1;//PH1为1,A组线圈为正向电流 T01=0;//以最大电流输出 T11=0; PH2=1;//PH2为1,B线圈为正向电流 T02=0;//以最大电流输出 T12=0; Delay(2); /*A A为正向电流*/ PH1=1;//PH1为1,A组线圈为正向电流 T01=0;//以最大电流输出 T11=0; PH2=1;//PH2为1,B线圈为正向电流 T02=1;//关闭电流输出 T12=1; Delay(2); /*AB/ A为正向电流,B为反向电流*/ PH1=1;//PH1为1,A组线圈为正向电流 T01=0;//以最大电流输出 T11=0; PH2=0;//PH为0,B线圈为反向电流 T02=0;//以最大电流输出 T12=0; Delay(2); /*B/ B为反向电流*/ PH1=1;//PH1为1,A组线圈为正向电流 T01=1;//关闭电流输出 T11=1; PH2=0;//PH2为0,B线圈为反向电流 T02=0;//关闭电流输出 T12=0; Delay(2); /*A/B/ AB都为反向电流*/ PH1=0;//PH1为0,A组线圈为反向电流 T01=0;//以最大电流输出 T11=0; PH2=0;//PH2为0,B线圈为反向电流 T02=0;//以最大电流输出 T12=0; Delay(2); } void main() { while(1) { Step(); } }
下一篇:基于51单片机的贪吃蛇游戏设计
史海拾趣
|
现在用的ARM920T, 400M的cpu,Bitblt 640*480的 位图 用时0.5ms。太慢了,画面有明显的从上到下显示的感觉。 大家贴位图都是怎么贴的?有更快的方法吗? 还有一个疑问,系统的窗口为什么能显示的那么快,而没有从上到下显示的感觉? 或者需要更 ...… 查看全部问答> |
|
如何去掉WinCE系统中打开对话框程序时候的由小变大的动画效果 我在做一个程序,方式是通过一个程序打开另一个程序,实现两个程序的无缝对接,但是在WINce5.0中,打开一个对话框时会出现一个从小到大的动画效果,这样就不能到达无缝对接的目的了,请问有什么方式去掉这种效果? 在windows xp 系统注册表中,有 ...… 查看全部问答> |
|
Error (10207): Verilog HDL error at liftime.v(132): can\'t resolve reference to object \"interrput\"是为什么啊? 程序这是调用语句always @ ( posedge clk) if(oflag) led_ro = interrput(ios,iom, ...… 查看全部问答> |




