0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

PIC单片机之步进电机的工作原理及使用方法

2oON_changxuemc 来源:畅学单片机 2020-05-14 09:31 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

大家好, 通过前一期的学习, 我们已经对ICD2 仿真烧写器和增强型PIC 实验板的使用方法及学习方式有所了解与熟悉,学会了如何用单片机来控制发光管、继电器、蜂鸣器、按键、数码管RS232 串口等资源,体会到了学习板的易用性与易学性,看了前几期实例,当你实验成功后一定很兴奋,很有成就感吧!现在我们就趁热打铁,再向上跨一步,一起来学习一下步进电机工作原理及使用方法,这是我们用单片机来控制机械进行运动的开始。

步进电机是一种将电脉冲转化为角位移的执行机构。当步进驱动器接收到一个脉冲信号,它就驱动步进电机就按设定的方向转动一个固定的角度(步距角)。通过控制脉冲个数来控制角位移量,可以达到准确定位;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,达到调速的目的;可以通过改变各相的通电顺序,控制步进电动机的转动方向。

步进电机的特点

1、步进电动机的角位移与输入脉冲严格成正比,因此,它没有累计误差,具有良好的跟随性。

2、步进电动机的动态响应快,易于启停、正反转及变速。

3、速度可在相当宽的范围内平滑调节,低速下仍能保证获得较大转矩,因此,一般可以不用减速装置而直接驱动负载。

4、步进电动机只能通过脉冲电源供电才能运行,它不能直接使用交流电源和直流电源。

那我们该如何来控制步进电机转动呢?直流电机我们只要在电机两极加上电压,电机马上转动,但步进电机并非这样,它是数字控制方式,它将电脉冲信号转变成角位移,即给一个脉冲信号,步进电动机就转动一个角度,因此非常适合单片机的控制。

一般一个完整的步进电机控制系统包括控制器驱动器、电机三部分。框图如图1 所示:

图1 步进电机控制系统

现在,我们以反应式步进电机为例,介绍其基本原理与应用方法。反应式步进电机可实现大转矩输出,步进角一般为1.5 度。反应式步进电机的转子磁路由软磁材料制成,定子上有多相励磁绕组,利用磁极的变化产生转矩。常用小型步进电机的实物如图2 所示,该步进电机可以直接与我们的增强型PIC 实验板相连,完成步进电机控制实验。

图2 步进电机实物图

步进电机的励磁方式。

步进电机的励磁方式一般分为1 相励磁、2 相励磁、1-2 相励磁。

1 相励磁时,步进电动机按方式循环通电,每次只对一相通电,磁场旋转一周需要换相4 次,转子转动一个齿距角。其通电方式最为简单,转矩最小。励磁方式见表1。

表1 1相励磁方式

2 相励磁时,每次对两相同时通电,磁场旋转一周需要换相4 次,转子转动一个齿距角。在双三拍工作方式中,步进电动机正转的通电顺序为:;反转的通电顺序为:

。双三拍工作方式的优点是:

可产生较大的转矩,不易产生失步。励磁方式见表2。

表2 2相励磁方式

1-2 相励磁是1 相励磁和2 相励磁交替使用的方法。磁场旋转一周需要换相8 次,转子才转过一个步距角,属于半步的方式,也就是说1-2 相励磁时的步距角比前两种方式的步距角小一半,所以步进精度提高了一倍。1-2 相励磁方式见表3。

表3 1-2相励磁方式

步进电机应用驱动电路

步进电机的驱动电路有单极性直流驱动和H 桥驱动两种,本例的小型步进电机,采用最简单的单极性直流驱动电路,目的在于验证步进电机的使用,在正式工业控制一般较之复杂。简单驱动电路如图3所示。

图3 步进电机的单极性直流驱动电路

在实际应用中一般驱动路数不止一路,用图3的分立电路体积大,各路参数一致性难以保障。最好用现成的集成电路作为多路驱动。常用的小型步进电机驱动电路可以用ULN2003 或ULN2803。我们的实验板上用的是ULN2003。ULN2003 是高压电流达林顿晶体管阵列系列产品,具有电流增益高、工作电压高、温度范围宽、带负载能力强等特点,适应于各类要求高速大功率驱动的系统。

ULN2003A 由7 组达林顿晶体管阵列和相应的电阻网络以及钳位二极管网络构成本例实际只用其中4组。ULN2003 内部结构如图4 所示,达林顿晶体管等效电路图如图5 所示。

图4 ULN2003内部结构图

图5 达林顿晶体管等效电路图

ULN2003A 型高压大电流达林顿晶体管阵列电路的典型应用电路框图如图6 所示。钳位二极管用于保护线圈通断时的反电动势击穿集成电路,可以看出,应用ULN2003 后电路比分立元件简洁得多。

通过前文的原理介绍,我们已经对步进电机的特性以及工作原理有了大致地了解,但当我们拿到一个步进电机时要正确地应用它还是一时不知如何下手,比如我们现在要控制电机正转、反转、高速运转、低速运转时,需要怎么办呢?要控制步进电机进行正反转,已不是像直流电机这么简单,在电机两端加上正反相电源就可以了,而是通过输出不同规律的“正反转”时序脉冲来实现控制。现在,我们来一起看一下如何进行步进电机正反转以及转动速度的控制,通过一个实例,相信会给大家带来一个感性的认识。

首先,我们来看一下增强型PIC 实验板上的步进电机控制电路,因为我们需要将软件和硬件相结合进行考虑如何来编程。步进电机控制部分的电路原理图如图7 所示。PIC 单片机的RD0~RD3 为电机脉冲输出引脚,通过ULN2003 集成芯片来驱动小型步进电机,我们只要将步进电机的插头,直接插在板子J3 插座处即可。跳线J4 为我们为实验板设计的步进电机智能供电跳线,这样实验板可以适用于不同工作电压的步进电机,当跳线跳到VCC 这端,则给步进电机提供VCC +5V 的电源,我们现在做实验使用的步进电机工作电压是5V 的,所以我们跳线设置到VCC 这一端即可,如果用户使用自己的步进电机电压不是5V 的,那可以将跳线跳到VIN 这一端,即用户外部接入电源提供给步进电机工作电压。

对于单片机软件的编程,我们使用MPLab IDE软件来进行C 语言编程,它是我们的编程环境,同时我们可以通过使用ICD2 仿真烧写器和增强型PIC实验板连接进行程序的仿真调试和烧写步骤,具体的操作步骤,我们已经在前几期做了详细的说明和介绍,在此就不再重复说明,读者朋友可以参阅以前的文章或直接登陆我们的网站查看资料。现在我们可以输入程序代码进行调试了,我们在MPLabIDE 软件中新建工程,加入源程序代码,同时进行芯片型号的选择和配置位的设置,我们实验所用的芯片型号为PIC16F877A。编写的程序代码如下:

/* 步进电机演示程序 */

#include

#define key RB0

void delay(void)

{

int k;

for(k=0;k<2000;k++);

}

void main()

{

TRISD=0x00; // 设置RD 为输出口

TRISB=0xFE;

// 设置RB0 为输出口,RB1~RB7 为输入口

PORTD=0x00; // 初始化RD 输出低电平

key=1; // 设置按键为输入状态

while(1) // 主循环

{

if(key==1) // 如果没有键按下则电机正转

{

PORTD=0xFC; //1100

delay();

PORTD=0xF6; //0110

delay();

PORTD=0xF3; //0011

delay();

PORTD=0xF9; //1001

delay();

}

else // 如果有键按下则电机反转

{

PORTD=0xFC; //1100

delay();

PORTD=0xF9; //1001

delay();

PORTD=0xF3; //0011

delay();

PORTD=0xF6; //0110

delay();

}

}

}

编好程序后,读者朋友可以将编译好的HEX通过ICD2 仿真烧写器烧入单片机芯片,然后插上步进电机,上电运行,如图8 所示。这时我们可以看到步进电机已经开始正转起来,如果我们这时按下K2 按键,则步进电机开始反转,如果释放了K2按键,那么步进电机仍然继续正转,从而实现了步进电机正反转的控制。

图8 步进电机与增强型PIC实验板进行连接

前面,我们输入了这么长一段程序后,作为初学者的读者一定对有些语句会有点疑问,下面我们就来一起结果实际,看一下一些关键程序语句的作用。

#include 语句用来加载PIC 库文件,#define key RB0 这条语句将RB0 宏定义为key,void delay () 是延时函数,步进电机在输出正反转时序时进行延时,如要调整步进电机的转动速度,我们只要调速这个延时函数的延时值即可。TRISD、TRISB 相关的语句用来设置RD、RB 口的输入、输出状态,在此我们设置RD 为输出口,用来给步进电机输出时序使用,RB 口中的RB0 设置为输入口,因为该口是我们实验板上的按键,按键是输入设备。然后赋值key=1,即把RB0 初值设置为1,当没有按键按下时,RB0 的值为1,当按键被按下时,RB0 的值为0, while(1) 是死循环语句,即周而复始地执行{ } 内的语句体,我们在死循环体内不停地判断key 这个变量,如果按键有没有被按下,key 为1,同时我们在单片机RD 口输出步进电机正转的时序表,分别输出 1100 、0110、 0011、 1001 这些信号,每串信号之间用delay 函数进行延时,该延时值不能太快,否则步进电机会无法响应,具体设置多少合适,读者朋友可以通过ICD2 在线调试时,修改延时值来进行实际测试,观察步进电机的工作状态,从而实现了步进电机的速度控制;同理,如果按键被按下时,key 为0,同时我们在单片机RD 口输出步进电机反转的时序表,分别输出 1100 、1001、0011、 0110 这些信号,可以发现步进电机进行了反转运动。

看到这里,相信你现在已经可以对步进电机进行基本控制了,步进电机的原理与使用我们讲到这里,接下来几期,我们将继续一起学习增强型PIC实验板的其它各部分资源的原理与使用,使你对单片机应用的各方面知识都有所入门与提高。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6074

    文章

    45340

    浏览量

    663486
  • PIC
    PIC
    +关注

    关注

    8

    文章

    511

    浏览量

    90437
  • 步进电机
    +关注

    关注

    152

    文章

    3216

    浏览量

    151554

原文标题:PIC单片机之步进电机

文章出处:【微信号:changxuemcu,微信公众号:畅学单片机】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    单片机最小系统工作原理及搭建

    单片机最小系统是指使单片机正常运行所需的最简电路配置,它是所有单片机应用的开发基础。以下是其核心组成、工作原理及搭建指南: 一、最小系统核心组成
    的头像 发表于 08-11 10:55 2468次阅读
    <b class='flag-5'>单片机</b>最小系统<b class='flag-5'>工作原理</b>及搭建

    怎么测单片机系统频率

    单片机系统频率是指单片机工作时的时钟频率,它直接影响单片机的运行速度和处理能力,准确测量系统频率对单片机应用开发、程序调试和性能优化具有重要意义。测量
    的头像 发表于 07-25 11:39 475次阅读

    单片机怎么驱动电机

    在各类自动化设备和智能装置中,电机是重要的执行部件,而单片机作为控制核心,需要通过特定的方式驱动电机运转。单片机驱动电机并非直接连接即可,而
    的头像 发表于 07-25 09:31 438次阅读

    单片机怎么控制步进电机

    步进电机作为一种将电脉冲信号转化为角位移的执行机构,其运转依赖于脉冲信号的控制,而单片机作为控制核心,通过输出特定的脉冲信号和方向信号,实现对步进
    的头像 发表于 07-24 13:41 410次阅读

    单片机直流电机调速原理

    在工业自动化、智能设备等领域,直流电机的调速控制至关重要,而单片机凭借其灵活的控制能力,成为实现直流电机精准调速的核心部件。单片机直流电机
    的头像 发表于 07-17 13:42 489次阅读

    基于单片机步进电机式模拟器仪表系统设计

    纯分享帖,需要者可点击附件免费获取完整资料~~~*附件:基于单片机步进电机式模拟器仪表系统设计.pdf【免责声明】本文系网络转载,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请第一时间告知,删除内容!
    发表于 05-29 14:16

    数据采集卡与步进电机

    本文介绍了步进电机工作原理,以及如何使用数据采集卡控制步进电机动作。
    的头像 发表于 05-26 15:53 1092次阅读
    数据采集卡与<b class='flag-5'>步进</b><b class='flag-5'>电机</b>

    如何应对步进电机的各种干拢问题

    电机作为高频输出的设备,可能会对周围的控制系统造成干扰,特别是在有高精度传感器的精密仪器上,如血液采浆、印钞机等。这种干扰可能导致控制系统无法正常工作,甚至造成单片机死机。针对这类问
    的头像 发表于 05-11 17:38 863次阅读
    如何应对<b class='flag-5'>步进</b><b class='flag-5'>电机</b>的各种干拢问题

    基于51/32单片机按键控制步进电机正反转,A4988驱动

    基于51/32单片机按键控制步进电机正反转,A4988驱动
    发表于 04-14 15:05 6次下载

    单片机方面的大佬吗?有几个单片机方面的问题需要请教一下

    如题,有单片机方面的内容需要请教一下 (先叠个甲)纯小白 我需要一个单片机控制模块,我现在的想法是:在一个单片机上,我要让他控制一个传感器和一个步进
    发表于 03-29 18:35

    自制怠速步进电机测试器

    步进电机式怠速系统的工作原理为:由步进控制怠速进气孔的截面积来控制发动机进气管的 进气量,通过进气压力传感器来感应进气管的进气 压力,
    发表于 03-21 13:32

    步进电机的控制实现方法

          步进电机,作为一种将电脉冲信号转换为相应角位移或线位移的电动机,是现代数字控制系统中不可或缺的重要组件。其工作原理基于电磁学原理,通过接收数字控制信号(电脉冲信号)并转化为机械位移,
    的头像 发表于 01-21 16:43 2267次阅读
    <b class='flag-5'>步进</b><b class='flag-5'>电机</b>的控制实现<b class='flag-5'>方法</b>

    AN4121-采用PIC16F单片机进行系统电源控制

    电子发烧友网站提供《AN4121-采用PIC16F单片机进行系统电源控制.pdf》资料免费下载
    发表于 01-21 14:42 0次下载
    AN4121-采用<b class='flag-5'>PIC</b>16F<b class='flag-5'>单片机</b>进行系统电源控制

    TB3320-PIC单片机集成模拟外设入门

    电子发烧友网站提供《TB3320-PIC单片机集成模拟外设入门.pdf》资料免费下载
    发表于 01-21 14:01 0次下载
    TB3320-<b class='flag-5'>PIC</b><b class='flag-5'>单片机</b>集成模拟外设入门

    步进电机的详解解答

    步进电机,别名脉冲马达,是一种将电脉冲信号转变为角位移或线位移的开环控制电机。它是现代数字程序控制系统中的主要执行元件,广泛应用于数控机床、智能仪器和自动控制等领域。步进
    的头像 发表于 12-29 09:41 1566次阅读