单片机对仪表步进电机的细分控制

发布者:TranquilMind88最新更新时间:2016-10-09 来源: eepw关键字:单片机  步进电机  细分控制 手机看文章 扫描二维码
随时随地手机看文章
  仪表步进电机

  步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下,电机转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机某相线圈加一脉冲信号,电机则转过一个步距角。这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点,使得在速度、位置等控制领域用步进电机来控制变得非常简单。虽然步进电机已被广泛地应用,但步进电机并不像普通的直流电机、交流电机那样在常规下使用。它必须在双环形脉冲信号、功率驱动电路等组成控制系统下使用。

  仪表步进电机属于步进电机中体积、功耗较小的类别,可以由单片机或专用芯片的引脚直接驱动,不需外接驱动器,因而在仪表中被用于指针的旋转控制。

  需求分析

  本方案中使用的仪表具有如下特点和设计参数:

  ●指针响应灵敏、走位准确,即收到驱动脉冲后不能丢步;

  ●指针转动平稳,即指针从当前位置到目标位置之间的走位要平稳,正、反转都不能出现抖动;

  ●两相、步距角10o、转动范围300o。

  根据技术参数可知,采用两相四拍和两相八拍时的步距角为10o和5o,在300o的范围内只能作30和60个刻度划分,在实际应用中,会发现指针步距角不能满足要求而且抖动不可避免。为了实现指针高精度的准确走位和平稳运转,要对步进电机步距进行高分辨率细分,这也是设计的难点所在。

  步进电机的细分技术是一种电子阻尼技术,其主要目的是提高电机的运转精度,实现步进电机步距角的高精度细分。其基本概念为:步进电机通过细分驱动器的驱动,其步距角变小了。如驱动器工作在10细分状态时,其步距角只为电机固有步距角的十分之一。以两相四拍为例:当电机工作在不细分的整步状态时,控制系统每发一个步进脉冲,电机转动10o;而用细分驱动器工作在10细分状态时,电机只转动了1o。细分功能完全是由驱动器或单片机靠精确控制电机的相电流所实现的,与电机本身无关。

  细分原理

  两相四拍A、B、/A、/B的驱动状态表如表1所示。

1.jpg 

  两相八拍A、B、/A、/B的驱动状态表如表2所示。

  从以上的分析可知,两相四拍是整步运转不细分,两相八拍其实是2细分。合成的磁场和电流矢量夹角以90o和45o的方式变化,如此往复循环。

  参考相关资料后不难发现:细分驱动技术常用近似正弦波的阶梯型电流代替矩形波电流,产生一个微步旋转磁场,从而带动电机以更小的步距角转动,其电流波形和旋转磁场矢量如图1所示。同时由于正弦波电流变化平滑,使电机运行更平稳、噪声更小。即通过改变相邻两相(A,B)电流的大小和方向(A相正弦波和B相余弦波矢量叠加),以改变合成磁场的夹角,通过电流矢量合成的方式来控制步进电机运转。

2.jpg 

  硬件设计和软件编程

  根据细分原理可知,对于两相步进电机,需要同时控制两组线圈的电压大小和方向才能达到合成电流矢量控制的目的,控制线圈的电流大小有两种方案:其一是通过单片机写入数字量,由数模转换器件输出模拟电压,控制线圈电流大小;其二是通过某些单片机自带的PWM引脚输出占空比可控的方波,用其交流有效值控制线圈电流大小。很显然,按照正弦规律变化的占空比决定了线圈电流大小也按照相同的正弦规律变化。线圈的电压施加方向可以通过逻辑门电路来实现。

  综上,选用具有两路16位精度PWM功能的ATMEGA48单片机,外围硬件电路设计如图2。

3.jpg 

  使用该单片机具有PWM功能的PB1和PB2连接PWM_A和PWM_B,使用两个普通引脚连接DIR_A和DIR_B即可实现对电机的控制。原理说明如下:电机的A、 /A、B、/B分别对应四输入与门电路的3、6、8、11引脚。在DIR_A和DIR_B为低电平时,门电路的1、9引脚为0状态,三极管Q3、Q4截止,门电路的4、12引脚由于上拉处于1状态,这样,与门电路的3、8输出为0,即A、B为0;此时与门电路的6、11输出与PWM_A和PWM_B保持一致,即/A、/B由PWM_A和PWM_B决定。在其他状态下,也具有同类特点:A和/A之间、B和/B之间的通电极性由DIR_A和DIR_B决定;A和/A之间、B和/B之间的电流大小由PWM_A和PWM_B的占空比决定。而且只要三极管Q3、Q4工作正常,与门电路就不会出现逻辑混乱的情况。

  配合硬件的设计,软件上编写了一个由64个数据组成的数组,分别对应了0~90o正弦波幅度变化的8位数字量化值(以阶梯波的方式模拟了64点正弦波抽样),每个值用来控制输出波形占空比,实际上参与了电流矢量夹角转动90o过程中其电流大小的计算。众所周知,正弦、余弦波相位相差90o,在已知0~90o正弦波幅度变化表后,同样可以得出90o~180o、180o~270o、270o~360o(0o)的正弦波、余弦波幅度变化表,所以通过 0~90o正弦波幅度变化的8位数字量化表的演化,就可以在两相八拍(二细分)的基础上把电流矢量夹角分成四个象限,配合极性的控制,在每个象限中把A或/A的正弦波和B或/B的余弦波作8种组合,在每种组合中完成电流大小的变化,最终作到两相64拍(16细分) 的控制。而且,最巧妙的一点就在于:通过选择64个数据对应每90o范围的正弦波的64个点,就可以用一个字节的大小来作为区分4个象限的标志,便于对正、余弦的角度进行演化,即0~63对应0~90o,64~127对应90o~180o,128~191对应180o~270o,192~255对应 270o~360o。

  两相64拍A、B、/A、/B的驱动状态表如表3(以B为起始状态)。

4.jpg 

  由于仪表指针从当前角指向目标角时,变化量会有不同。为保证指针响应灵敏、无抖动,必须在正、反转时考虑加、减速控制。程序中,可以根据变化量的大小和正负设定几个控制区间,分别写入不同的延时参数,根据此延时参数来控制电流大小、方向(改变PWM_A和PWM_B、DIR_A和DIR_B)变化时间,就达到了加、减速的控制的目的。

  结语

  通过双PWM方式控制两相步进电机,既达到了高精度细分的目的,又在硬件成本上得到了优化。在现有电路的后级增加功率驱动电路并作程序的少量修改,就可以做成高精度、多细分步进电机驱动器。

  参考文献:

  [1] Atmel Semiconductor. ATmega48 User`guide

  [2] 赵亮, 侯国锐.单片机C语言编程与实例[M].北京:人民邮电出版社,2004

  [3] 王辉堂, 颜自勇, 陈文芗. 基于带PWM 模块单片机的步进电机细分驱动控制技术[J], 理论与方法, 2007,26(3)

  [4] 陈子明.汽车车速里程表及其速比的计算方法[J].汽车电器, 2005(3):9-11

  [5] 刘清波,蔡树珍,孙业歧等. 基于单片机的汽车里程表设计[J]. 河北大学学报(自然科学版), 2002(9):276-278
关键字:单片机  步进电机  细分控制 引用地址:单片机对仪表步进电机的细分控制

上一篇:AVR 数码管编程
下一篇:基于可调式模拟激光脉冲的激光告警器在线检测仪

推荐阅读最新更新时间:2024-03-16 15:14

51单片机循环转移指令DJNZ简介
循环转移 指令 DJNZ Rn,rel DJNZ direct,rel 第一条指令在前面的例程中有详细的分析,这里就不多谈了。第二条指令,只是将Rn改成直接地址,其它一样,也不多说了,给一个例程。 DJNZ 10H,LOOP
[单片机]
步进电机位移的模糊PID控制设计方案
1前言 步进电机本质上是数字离散电机,直接接受数字量,将电脉冲信号转变成位移信号,即给一个脉冲信号,步进电机就转动一个角度。步进电机内部各控制变量高度非线性且相互耦合,而传统PID控制是以精确数学模型为基础的,无法有效应对系统的不确定信息,用不变的PID参数不可能达到较好的控制结果。模糊控制不需要对象的精确数学模型,对系统变化不敏感,鲁棒性好,抗干扰性强。但是由于它的模糊性,稳态精度不好。对于这种情况,可以把模糊控制和PID控制结合起来。 2混合式步进电机数学模型 本文采用两相步进电机,在忽略互感、漏磁、磁滞、涡流、饱和等影响的情况下,我们采用可以对于一相用一等值有效RL电路绕组进行分析。 选用
[工业控制]
PIC10F202单片机制作的双色车灯控制源程序
PIC10F202 制作的双色车灯 GP2用作开关检测,GP0,GP1分别控制二路LED,上电亮GP0正白灯珠,开关掉电一次,切换为GP1暖白灯珠,开关再掉电一次为交替闪烁。 单片机源程序如下: #include pic.h __CONFIG(0X010); #define uchar unsigned char #define uint unsigned int #define TIME_MAX 1000 uint key2_time_cnt;//按键去抖计数器 uchar num; uchar key_flag; void Delay_mS(uint n) { uint j; uchar k; for(j=0;
[单片机]
爱特梅尔公司推出CAP7L可定制微控制
爱特梅尔公司 (Atmel® Corporation) 推出CAP7L可定制微控制器,可让无晶圆厂(fabless) 的半导体公司以缩短至12周的交付周期、仅为7.5万美元的一次性支出 (NRE) 及低至5美元的单位成本,且无需自ARM公司获取单独许可,便可实现基于ARM7™ 处理器的系统级芯片(systems-on-chip, SoC)。 CAP7L提供了目前最低的NRE成本,为产量为1万单位的项目提供良好的经济效益,完全摊销后的单位成本为17美元;而对于产量为 5万个单位的项目,摊销后的单位成本仅为7美元,并已经包括了NRE和IP的支出在内。 AT91CAP7L 器件是标准微控制器产品,具有多达20
[单片机]
爱特梅尔公司推出CAP7L可定制<font color='red'>微控制</font>器
单片机结构化编程
模块划分的 划 是规划的意思,意指怎样合理的将一个很大的软件划分为一系列功能独立的部分合作完成系统的需求。C语言作为一种结构化的程序设计语言,在模块的划分上主要依据功能(依功能进行划分在面向对象设计中成为一个错误,牛顿定律遇到了 相对论), C语言模块化程序设计需理解如下概念: (1) 模块即是一个.c文件和一个.h文件的结合,头文件(.h)中是对于该模块接口的声明; (2) 某模块提供给其它模块调用的外部函数及数据需在.h中文件中冠以extern关键字声明; (3) 模块内的函数和全局变量需在.c文件开头冠以static关键字声明; (4) 永远不要在.h文件中定义变量!定义变量和声明变量的区别在于定义会产生内存分配的操作,是汇
[单片机]
瑞萨RX65N系列MCU获得运行AWS上的Amazon FreeRTOS 资格认证
全球领先的半导体解决方案供应商瑞萨电子株式会社(TSE:6723)今日宣布,其 RX65N系列微控制器 (MCU)获得运行Amazon Web Services (AWS)上的Amazon FreeRTOS 资格认证。瑞萨电子 RX65N系列MCU 与Amazon FreeRTOS的完美结合,使嵌入式系统设计者能够轻松地为基于传感器的端点设备创建更安全的端到端物联网(IoT)云解决方案。基于 RX65N 的设计可以通过 Wi-Fi 或以太网传输传感器数据,并允许用户使用 PC 仪表盘监控智能仪表及楼宇和工业自动化系统。 开发人员可以使用瑞萨电子 RX65N 入门套件快速启动他们的设计,套件中包括带有2MB 代码闪存的 RX65
[单片机]
用proteus+keil-C51入门单片机
网上有用面包板入门单片机的,有自己焊板子入门单片机的,但很少有文章介绍用proteus入门单片机的。为什么呢,因为商人要赚钱,如果你不买他的硬件,买正版proteus赚的也不会到他的口袋里,所以商人绝对不会推广这种廉价而且高效的单片机入门方式。 之前我也尝试着焊一个单片机最小系统,结果电脑死活检测不到我焊的设备。又因为严重缺乏硬件调试的经验,单片机的自制之旅就暂时搁浅了。proteus在自制的期间就装好了,可是不会用,也就没有发现它的强大之处。 用了proteus,就可以省下买硬件的钱,对于入门级的爱好者来说,首先要搞清楚一些原理,对芯片和外设没有要求,所以使用proteus元件库中的器件就可以开始做仿真实验了,和在真板子上
[单片机]
微控制器的FSMC到底是咋回事?(下)
摘要:上一篇文章我们具体讲解了FSMC的原理配置,这一章主要是关于使用FSMC的SRAM初始化流程,以及使用STM32CubeMX对FSMC进行配置。 一、SRAM初始化流程 通过上面的讲解,通过对 FSMC 相关的寄存器的描述,大家对 FSMC 的原理有了一个初步的认识,如果还不熟悉的朋友,请一定要搜索网络资料理解FSMC的原理。只有理解了原理,使用库函数才可以得心应手。那么在库函数中是怎么实现FSMC的配置的呢?FSMC_BCRx,FSMC_BTRx 寄存器在库函数是通过什么函数来配置的呢?下面我们来讲解一下 FSMC 相关的库函数: 1.1 使能FSMC时钟 要使用FSMC,当然首先得开启其时钟。然后需要把
[单片机]
<font color='red'>微控制</font>器的FSMC到底是咋回事?(下)
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved