掌桥专利:专业的专利平台
掌桥专利
首页

技术领域

本发明涉及一种模拟步进电机,该装置采用霍尔传感器来计量磁铁盘上转动的若干块磁铁来达到对电机转轴转动角度进行控制的目的,并用单片机程序代码来完成具体的电路控制工作。本发明涉及电子工程、程序设计、机械设计等技术领域。

背景技术

步进电机是电机的一种,该类电机一般采用偶数组绕组组成的定子,通过为线圈顺序通电的方式使得电机可以精确地旋转设定的角度值。该类电机广泛应用于机床控制、机器人、3D打印机等领域。在很多需要低转速、大扭矩的场合,该类电机一般还要配合适当的变速装置使用。该类电机存在的主要问题是:与普通的直流电机相比具体的型号较少,用户可选择范围较小,结构复杂,价格也比较高。此外,该类电机需要较多的控制引脚,对单片机引脚资源的占用也比较严重。以四相五线步进电机为例,该电机有四条控制线和一条正极电源线。在使用电机驱动芯片的情况下需要占用四个单片机的引脚。对于五相步进电机的话其引出线可以多达10条,这对单片机引脚资源的占用是非常严重的。上述步进电机的现状极大地限制了其应用范围。

发明内容

为了克服传统步进电机的上述不足之处,本发明采用霍尔传感器来计量磁铁盘上转动的若干块磁铁来达到对电机转轴转动角度进行控制的目的,并用单片机程序代码来完成具体的电路控制工作,具体的技术方案如下所述。

本发明的技术方案为:一种模拟步进电机,其特征在于在直流减速电机(4)的动力输出轴上装配有磁铁盘(5),磁铁盘(5)内安装有磁体(6),控制电路板(1)的前端焊接有一个双极锁存霍尔元件(2),该双极锁存霍尔元件(2)工作区被置于磁铁盘(5)的后部;优选的所述的控制电路板(1)上设计有五个接线端,其中Mp1与Mp2为电机接线端,out为双极锁存霍尔元件(2)脉冲输出端,其余两个为正、负极电源接线端。

本发明的有益效果是可以在现有所有型号的直流电机基础上进行改造,将其变为“步进电机”,故“步进电机”的型号和规格得以拓展,且电路控制部分也比较简单,只需占用三个控制引脚,节省单片机引脚资源。装置结构简单、实现成本低、应用潜力大。

附图说明

下面结合附图和实例对本发明进一步说明。

图1本装置立体图

图2本装置零部件爆炸图

图3 电机外罩件

图4硬件电路连接图

其中,图2中1.控制电路板,2.双极锁存霍尔元件,3. 电机外罩件,4.直流减速电机,5. 磁铁盘,6.磁铁;图4中的R1为电阻。

具体实施方式

装配过程:首先按照图2所示装配好本发明的主体部分,再按照图4所示将电路部分与单片机连接好(此处以Arduino Aano单片机为例来说明,电机驱动芯片采用L293D)。注:直流减速电机(4)自带减速装置,减速装置的存在一方面可以降低电机的输出转速,提高输出扭矩,另一方面也抑制了电机转动中突然断电产生的惯性转动现象,而惯性转动现象会影响本装置转动的精度。

软件及程序:本发明以Arduino IDE集成开发环境为例进行C语言程序的编写。其示例的程序代码如下。

int z=12;//正向转动变量

int f=6;//反向转动变量

int n=0;//定义脉冲宽度记录变量

int m=0;//定义脉冲计数变量

void setup() {

Serial.begin(9600);//设定系统波特率

pinMode(4,OUTPUT); //设定4号引脚为输出模式

pinMode(5,OUTPUT); //设定5号引脚为输出模式

pinMode(6,OUTPUT); //设定6号引脚为输出模式

pinMode(A6,INPUT); //设定A6号引脚为输入模式,用以侦测脉冲信号

}

void loop() {

if(m < z){ //m值小于设定的Z值时电机正向转动

digitalWrite(4,LOW);

digitalWrite(5,HIGH);

analogWrite(6,255);//设定电机转速

}

if(z<=m){ //m值大于或等于设定的Z值时电机反向转动

digitalWrite(4,HIGH);

digitalWrite(5,LOW);

analogWrite(6,255);//设定电机转速

}

if((z+f)<=m){ //m值大于或等于设定的Z和f值之和时电机停止转动

digitalWrite(4,LOW);

digitalWrite(5,LOW);

analogWrite(6,0);//设定电机转速

}

n = pulseIn(A6, HIGH);//控制电路板的out端绑定A6号引脚,pulseIn()函数用来读取A6引脚的脉冲值

if(n!=0) //当n不等于零时说明有脉冲产生

{

m=m+1; //使用m值对脉冲进行计数

}

Serial.println(m);//将计数值打印在端口监视器上以便进行调试

}

具体工作原理:在上述程序中z值代表正向转动的角度,由于磁铁盘(5)中可以同时安装5块磁铁(6)故本例中一个脉冲值会产生72度的转动,当Z=12时,直流减速电机(4)的动力输出轴会转动864度即2.4圈,同理f=6意味着之后马达会反方向再转动1.2圈。为z及f设置不同的整数值转轴将会在相应的转动方向上转动。

在程序中“pulseIn()”函数的使用尤为重要,该函数用于侦测脉冲信号,如果侦测到引脚上存在周期变化的电脉冲则会返回一个脉冲宽度值,此时将这个值赋值给变量n,n此时便不再为零。故“if(n!=0)”语句条件成立,“m=m+1;”开始为脉冲计数。当m值小于设定的Z值时电机正向转动;当m值大于或等于设定的Z值时电机反向转动;当m值大于或等于设定的Z和f值之和时电机停止转动。

脉冲波主要是依靠磁铁盘(5)上的磁铁(6)扫过双极锁存霍尔元件(2)后使得该元件产生周期性的导通和截止两个状态的变化,从而在其输出端out输出电压脉冲信号,该端被连接到Arduino Aano单片机的A6号引脚,单片机便可根据设定侦测到此脉冲,从而配合上述程序对马达的转动方向及转动角度进行精确的控制。

相关技术
  • 一种模拟步进电机
  • 一种基于模拟闭环的步进电机位置控制系统
技术分类

06120112833466