用五一单片机来控制步进电机的几种转动方式
原理图:
1 单四拍工作的源程序
2 双四拍工作的源程序
3 半步八拍方式的源程序
4 细分的源程序
技术资料\
271398.pdf
2916应用.pdf
UDN2916应用.pdf
UDN2916英文1.pdf
步进电机细分.pdf
局部原理图.jpg
步进电机接线图.jpg
这是其中的一个单片机源程序:
- /*************************************************************************************
- * 标题: 步进电机试验三(半步八拍) *
- * 通过本例程了解步进马达使用及驱动程序编写 *
- *; 半步八拍工作方式: *
- *; 正转:A/ A/B B AB A AB/ B/ A/B/
- * 反转:A/B/ B/ AB/ A AB B A/B A/ *
- * UDN2916电流控制真值表:
- * I0 I1 输出电流
- * L L 最大
- * H L 最大*2/3
- * L H 最大*1/3
- * H H 0 *
- * 请学员一定要消化掉本例程 *
- J14短路冒需断开 *
- **************************************************************************************/
- #include "reg52.h"
- #define speed 2
- //Motor
- sbit PH1 = P1^0; //定义管脚
- sbit PH2 = P1^1;
- sbit I01 = P1^2;
- sbit I11 = P1^3;
- sbit I02 = P1^4;
- sbit I12 = P1^5;
- void delay(int time);
- /***************************************
- 函数功能:产生脉冲控制步进机
- 正转:A/ A/B B AB A AB/ B/ A/B/
- I0 I1 均为0 以最大电流输出(没有四分) 均为1不输出电流
- **************************************/
- void Go()
- {
- //A/ A拍反向电流
- PH1 = 0; //PH1为0 A组线圈为反向电流
- I01 = 0;
- I11 = 0; //以最大电流输出(没细分) 以下相同 均是此意思
-
-
- PH2 = 1; //PH2为1 B组线圈为正向电流
- I02 = 1;
- I12 = 1; //关闭电流输出,以下相同均是此意思
-
-
- delay(speed);
- // A/B AB拍 A为反向电流 B为正向电流
- PH1 = 0; //PH1为0 A组线圈为反向电流
- I01 = 0;
- I11 = 0;
-
- PH2 = 1; //PH2为1 B组线圈为正向电流
- I02 = 0;
- I12 = 0;
-
- delay(speed);
- //B B拍 B为正向电流
- PH1 = 1;
- I01 = 1;
- I11 = 1;
-
- PH2 = 1;
- I02 = 0;
- I12 = 0;
-
- delay(speed);
- //AB AB拍 均为正向电流
- ……………………
- …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
四线双极性.rar
(4.09 MB, 下载次数: 147)
|