51单片机
如何采用uln2003模块来链接步进电机?
51
单片机是如何控制步进电机正反转的?
回帖(1)
2021-10-13 14:17:30
此次采用uln2003模块来链接步进电机;
## 步进电机工作原理
步进电机是一种将电脉冲信号转换成相应角位移或线位移的电动机。每输入一个脉冲信号,转子就转动一个角度或前进一步,其输出的角位移或线位移与输入的脉冲数成正比,转速与脉冲频率成正比。
步进电动机的结构形式和分类方法较多,一般按励磁方式分为磁阻式、永磁式和混磁式三种;按相数可分为单相、两相、三相和多相等形式。
因此我们可以控制单片机I/O口的电平来控制步进电机,此次设计中采用四相单拍工作方式,在这种工作方式下,A、B、C、D 三相轮流通电,电流切换三次,磁场旋转一周,转子向前转过一个齿距角。因此这种通电方式叫做四相单四拍工作方式。
- 电机正转代码 unsigned char code tableZ[8]={0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09};
- 电机反转代码 unsigned char code tableF[8]={0x09,0x01,0x03,0x02,0x06,0x04,0x0c,0x08};
代码如下
/=========自动调压控制程序=========================================
#include //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
***it KEY1=P3^3;//高端行程开关自定义
***it KEY2=P3^4;//低端行程开关自定义
***it LED1=P1^0;//定义电机正转驱动端口
***it LED2=P1^1;//定义电机反转驱动端口
//*------------------------------------------------
//------------ 主函数------------------------------------*/
void main (void)
{
P1=0x00;//程序初始化
P1=0xFF;//P1口置1
LED1=1;
LED2=0;//初始化电机正机正转
while (1) //主循环
{
if(!KEY1)//是否检测到高端行程开关若是电机反转
{
LED1=0; //电机反转控制
LED2=1;
}
if(!KEY2)//电机反转是否检测到低端行程开关
{
LED1=1;//若是电机正转
LED2=0;
}
}
}
protel仿真图如下
此次采用uln2003模块来链接步进电机;
## 步进电机工作原理
步进电机是一种将电脉冲信号转换成相应角位移或线位移的电动机。每输入一个脉冲信号,转子就转动一个角度或前进一步,其输出的角位移或线位移与输入的脉冲数成正比,转速与脉冲频率成正比。
步进电动机的结构形式和分类方法较多,一般按励磁方式分为磁阻式、永磁式和混磁式三种;按相数可分为单相、两相、三相和多相等形式。
因此我们可以控制单片机I/O口的电平来控制步进电机,此次设计中采用四相单拍工作方式,在这种工作方式下,A、B、C、D 三相轮流通电,电流切换三次,磁场旋转一周,转子向前转过一个齿距角。因此这种通电方式叫做四相单四拍工作方式。
- 电机正转代码 unsigned char code tableZ[8]={0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09};
- 电机反转代码 unsigned char code tableF[8]={0x09,0x01,0x03,0x02,0x06,0x04,0x0c,0x08};
代码如下
/=========自动调压控制程序=========================================
#include //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
***it KEY1=P3^3;//高端行程开关自定义
***it KEY2=P3^4;//低端行程开关自定义
***it LED1=P1^0;//定义电机正转驱动端口
***it LED2=P1^1;//定义电机反转驱动端口
//*------------------------------------------------
//------------ 主函数------------------------------------*/
void main (void)
{
P1=0x00;//程序初始化
P1=0xFF;//P1口置1
LED1=1;
LED2=0;//初始化电机正机正转
while (1) //主循环
{
if(!KEY1)//是否检测到高端行程开关若是电机反转
{
LED1=0; //电机反转控制
LED2=1;
}
if(!KEY2)//电机反转是否检测到低端行程开关
{
LED1=1;//若是电机正转
LED2=0;
}
}
}
protel仿真图如下
1
举报
更多回帖