●指针转动平稳,即指针从当前位置到目标位置之间的走位要平稳,正、反转都不能出现抖动;
根据技术参数可知,采用两相四拍和两相八拍时的步距角为10o和5o,在300o的范围内只能作30和60个刻度划分,在实际应用中,会发现指针步距角不能满足要求而且抖动不可避免。为了实现指针高精度的准确走位和平稳运转,要对步进电机步距进行高分辨率细分,这也是设计的难点所在。
步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下,电机转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机某相线圈加一脉冲信号,电机则转过一个步距角。这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点,使得在速度、位置等控制领域用步进电机来控制变得非常简单。虽然步进电机已被广泛地应用,但步进电机并不像普通的直流电机、交流电机那样在常规下使用。它必须在双环形脉冲信号、功率驱动电路等组成控制系统下使用。
仪表步进电机属于步进电机中体积、功耗较小的类别,可以由单片机或专用芯片的引脚直接驱动,不需外接驱动器,因而在仪表中被用于指针的旋转控制。
步进电机的细分技术是一种电子阻尼技术,其主要目的是提高电机的运转精度,实现步进电机步距角的高精度细分。其基本概念为:步进电机通过细分驱动器的驱动,其步距角变小了。如驱动器工作在10细分状态时,其步距角只为电机固有步距角的十分之一。两相步进电机以两相四拍为例:当电机工作在不细分的整步状态时,控制系统每发一个步进脉冲,电机转动10o;而用细分驱动器工作在10细分状态时,电机只转动了1o。细分功能完全是由驱动器或单片机靠控制电机的相电流所实现的,与电机本身无关。
从以上的分析可知,两相四拍是整步运转不细分,两相八拍其实是2细分。合成的磁场和电流矢量夹角以90o和45o的方式变化,如此往复循环。
参考相关资料后不难发现:细分驱动技术常用近似正弦波的阶梯型电流代替矩形波电流,产生一个微步旋转磁场,从而带动电机以更小的步距角转动,其电流波形和旋转磁场矢量如图1所示。同时由于正弦波电流变化平滑,使电机运行更平稳、噪声更小。即通过改变相邻两相(A,B)电流的大小和方向(A相正弦波和B相余弦波矢量叠加),以改变合成磁场的夹角,通过电流矢量合成的方式来控制步进电机运转。
根据细分原理可知,对于两相步进电机,需要同时控制两组线圈的电压大小和方向才能达到合成电流矢量控制的目的,控制线圈的电流大小有两种方案:其一是通过单片机写入数字量,由数模转换器件输出模拟电压,控制线圈电流大小;其二是通过某些单片机自带的PWM引脚输出占空比可控的方波,用其交流有效值控制线圈电流大小。很显然,按照正弦规律变化的占空比决定了线圈电流大小也按照相同的正弦规律变化。线圈的电压施加方向可以通过逻辑门电路来实现。
综上,选用具有两路16位精度PWM功能的ATMEGA48单片机,外围硬件电路设计如图2。
使用该单片机具有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。
由于仪表指针从当前角指向目标角时,变化量会有不同。为保证指针响应灵敏、无抖动,必须在正、反转时考虑加、减速控制。程序中,可以根据变化量的大小和正负设定几个控制区间,分别写入不同的延时参数,根据此延时参数来控制电流大小、方向(改变PWM_A和PWM_B、DIR_A和DIR_B)变化时间,就达到了加、减速的控制的目的。
通过双PWM方式控制两相步进电机,既达到了高精度细分的目的,又在硬件成本上得到了优化。在现有电路的后级增加功率驱动电路并作程序的少量修改,就可以做成高精度、多细分步进电机驱动器。
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
关于“为何AVR使用写1作为清0中断标志位的手段”这个问题我看过很多的相关资料。在AVR的手册中并没有给出为什么的解释,只是强调了“写1清0中断标志位”。同时我也看到很多新的芯片,如DSP等,也是采用写1清零标志位的。但没有找到更专业的,或从根源上的说明,如果那位有这方面的知识或资料,欢迎深入的讨论学习。下面是我个人的分析和解释,供参考。1、首先从硬件上的考虑,通常的读写处理单元是以8BIT字节为单位的,因为数据总线位的倍数。这样对位的操作就不方便,不能直接写1位(会改变其它的位),需要先读到寄存器,然后改动1位,后回写,需要更多的时间。2、对于RAM操作一般采用直接写的方式,所以对RAM基本上没有直接的位操作指令。而对
#includeiom16v.h#includemacros.h#define uchar unsigned char#define uint unsigned int#define beep_0 (PORTD = PORTD&0x7F)#define beep_1 (PORTD = PORTD0x80)#define RS_0 PORTC &= ~(1PC0)#define RS_1 PORTC = (1PC0)#define RW_0 PORTC &= ~(1PC1)#define RW_1 PORTC = (1
在AVR单片机烧写的过程中,难免有弄错熔丝位的时候,结果是AVR单片机无法读写了!这时我们该怎么办呢,将昂贵的芯片丢掉,再用一块新的。其实这一般是没有必要的,写错熔丝位而导致单片机不能读写,一般不外乎(个人愚见)设设置错了时钟模式,比如说本来是用内部晶振的,结果弄成了外部晶振,而单片机的外部有没有接晶振,这时单片机没有了时钟信号,当然就没有办法在读写了,两相步进电机估计大家也猜到了怎么办了吧,是的,就是由外部提供时钟源。有张图的时钟选择,我们就知道我们得准多种时钟源:高频石英/陶瓷晶振,这个直接接在 单片机 晶振位置就可以了,注意频率不要太高,4~5M的就可以了,不放心的线P的电容也行!低频晶振,和上面的插补多,也就
,因此需要较复杂的控制逻辑,本文采用CPLD器件EPM7128来解决这一问题,通过软件编程简化硬件设计。处理器及外围控制电路处理器部分是系统的核心,它具有控制和处理两个功能。外围控制接口电路包括讯响部分、空调控制显示部分和串口电路。电源电路设计以尽量减小功耗为目的,整个系统采用了两种供电电源:3.3V 和 5V。3.3V稳压模块采用的是CZ1585CT,5V稳压模块采用的是MC7805T。由于现在稳压电源集成度比较高,电路组成也比较简单,在此就不给出原理图了。软件程序的设计由于整个系统有 单片机 的控制与数据处理,也有PC机的图形处理,还有接口逻辑设计,因此软件调试既包括AVR单片机程序调试,也包括PC机程序的调试
采用了在ATmega16引脚XTAL1和XTAL2上外接由石英晶体和电容组成的谐振回路,并配合片内的OSC(Oscillator)振荡电路构成的振荡源作为系统时钟源的。更简单的电路是直接使用片内的4M的RC振荡源,这样就可以将C1、C2、R2和4M晶体省掉,引脚XTAL1和XTAL2悬空,当然此时系统时钟频率精准度不如采用外部晶体的方式,而且也易受到温度变化的影响。AVR的复位源和复位方式:复位是单片机芯片本身的硬件初始化操作,例如,单片机在上电开机时都需要复位,以便CPU以及其它内部功能部件都处于一个确定的初始状态,并从这个初始状态开始工作。AVR单片机的复位操作,其主要功能是把程序计数器PC初始化为$0000(指非BOOT
使用一体化的红外接收头,直接就解码出来了,平时红外接收头输出的是高电平,当有红外数据的时候,就会根据发送的红外数据有相应的电平转换。大家可以随便找个遥控板,测一下红外接收波形,看看高低电平的表示,便于计数及接收步骤。这次用的遥控板的红外协议是这样的:0.6ms高电平+0.48ms低电平表示0,接收解码出来是0.6ms低电平+0.48ms高电平。0.6ms高电平+1.66ms低电平表示1,接收解码出来是0.6ms低电平+1.66ms高电平。调制38kHz,占空比1/3.遥控发送数据先是9ms高电平,4.5ms低电平,然后是两个字节的识别码,接着是一个字节的数据和一个字节的数据反码。单片机解码0和1只用计数接收到的低电平长度就行了
有奖直播 厉害了!TI MSP430 又出新品, 配有更低成本超声波水表案例和快速应用指南!
有奖直播|TI Sitara 产品在多协议工业通信中的应用
STM32L5微控制器在线+微控制器新品,功耗与成本敏感型智能嵌入式应用更适用
ARM单片机嵌入式系统汽车电子消费电子数据处理视频教程电子百科其他技术STM32MSP430单片机资源下载单片机习题与教程北京市海淀区知春路23号集成电路设计园量子银座1305
以上信息由无锡惠斯通电机科技有限公司整理编辑,了解更多步进电机,两相步进电机,混合式步进电机信息请访问http://www.huistong.com