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

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

3天内不再提示

基于STM32的正交编码器驱动电机设计

西西 ? 来源:博客园 ? 作者:鸽纸 ? 2020-09-10 16:25 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

1。编码器原理

什么是正交?如果两个信号相位相差90度,则这两个信号称为正交。由于两个信号相差90度,因此可以根据两个信号哪个先哪个后来判断方向。

这里使用了TI12模式,例如当T1上升沿,T2在低电平时;T1下降沿,T2在高电平时,向上计数,这样的好处是当有毛刺产生的时候,会自动+1 -1过滤掉毛刺。

2。编码器的中断

由于编码器是基于定时器的,所以编码器的中断实际上就是定时器的中断。也就是说定时器是每隔一定时间加一个数(或减一个数 ),当数到达预设值时就产生中断,而编码器是每一个有效脉冲就加一个数(或减一个数 ),当数到达预设值时就产生中断。若预设值为1000则编码器与定时器中断不同的是,当编码器反转时值到达999产生一次中断,而当编码器正转到达0时同 样产生一次中断。在硬件上这两个中断是没法区分的,这也就造成了有种情况的误判。

3。STM32编码器没有考虑的情况

想象一下,如果编码器的预设值为1000,当某次我们使得编码器正转产生中断后,立即反转则又该怎么办呢?根据上面的说法,这时候会产生两次一样的中断。 如果在算法上没有处理的话,极有可能认为是行走了两次正向。但实际上并没有。所以这个时候必须结合方向来判断行走的情况(判断方向使用的是DIR寄存器 位)或者在产生中断后读一次count寄存器位(看看是999还是0,以此来判断当前的方向)。只有上一次为正且这一次同样为正,距离才是相加的。

4。STM32f1系列定时器16位的问题

我用STM32的定时器3工作于编码器方式,可以正常得到编码器位置,但由于现在只有16位计数,位数不够,我想扩展到32位,可以先用定时器内部连接,将定时器3 的溢出送到定时器2,用定时器2做高位,在正转的时候正常,但反向的时候出错。换了个思路,做个每10ms产生一次的中断,在中断中调用下面的代码,下述代码中MAX_COUNT是 比 10ms内可能出现的计数最大值还要大的值,ENCODER_TIM_PERIOD是定时器的period值,最好比MAX_COUNT大,然后定义一个32位的有符号变量,如currentCount,然后每隔10ms执行一次currentCount += Enc_GetCount();只需要去读取currentCount的值就可以得到位移信息了。

s16 Enc_GetCount(void)

{

static u16 lastCount = 0;

u16 curCount = ENCODER_TIM-》CNT;

s32 dAngle = curCount - lastCount;

if(dAngle 》= MAX_COUNT){

dAngle -= ENCODER_TIM_PERIOD;

}else if(dAngle 《 -MAX_COUNT){

dAngle += ENCODER_TIM_PERIOD;

}

lastCount = curCount;

return (s16)dAngle;

}

5。其它一些得到的信息

1.编码器有个转速上限,超过这个上限是不能正常工作的,这个是硬件的限制,原则上线数越多转速就越低,这点在选型时要注意,编码器的输出一般是开漏的,所以单片机的io一定要上拉输入状态。

2.定时器初始化好以后,任何时候CNT寄存器的值就是编码器的位置信息,正转他会加反转他会减这部分是不需要软件干预的,初始化时给的TIM_Period 值应该是码盘整圈的刻度值,在减溢出会自动修正为这个数。加超过此数值就回0.

3.如果要扩展成多圈计数需要溢出中断,程序上圈计数加减方向位就行了。

4.每个定时器的输入脚可以通过软件设定滤波

5.应用中如果没有绝对位置信号或者初始化完成后还没有收到绝对位置信号前的计数只能是相对计数。收到绝对位置信号后重新修改一次CNT的值就行了。码盘一般都有零位置信号,结合到定时器捕获输入就行。上电以后要往返运动一下找到这个位置。

6.即便有滤波计数值偶尔也会有出错误的情况,一圈多计一个或少计一个数都是很正常的特别是转速比较高的时候尤其明显,有个绝对位置信号做修正是很有必要的。绝对位置信号不需要一定在零位置点,收到这个信号就将CNT修正为一个固定的数值即可。

7.开启定时器的输入中断可以达到每个步计数都作处理的效果,但是高速运转的时候你可能处理不过来.

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

    关注

    45

    文章

    3822

    浏览量

    138398
  • STM32
    +关注

    关注

    2295

    文章

    11034

    浏览量

    365934
  • 定时器
    +关注

    关注

    23

    文章

    3302

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    三菱伺服电机怎么设定无编码器

    要将三菱伺服电机设置为无编码器模式(也称为开环控制模式),需要遵循一定的步骤和注意事项。以下是一个详细的指南: 一、了解无编码器模式 无编码器模式是指伺服
    的头像 发表于 03-20 07:41 ?665次阅读

    创新伺服电机使用的多圈绝对式旋转编码器

    为了适应越来越短伺服驱动器的设计,使用多圈 绝对值旋转编码器的长度和直径也必须减少。 机器人和数控机床制造商比以往任何时候都 需要具有更高效率更精确和更紧凑型驱动器。为 了满足这些未来的需求,史陶
    发表于 03-12 16:58

    伺服电机编码器怎么选型

    伺服电机编码器的选型是一个综合性的过程,需要考虑多个因素以确保所选编码器能够满足系统的性能要求。以下是一些关键的选型步骤和考虑因素: 一、明确应用需求 首先,需要明确伺服电机
    的头像 发表于 03-11 12:01 ?802次阅读
    伺服<b class='flag-5'>电机</b><b class='flag-5'>编码器</b>怎么选型

    从步进电机到智能系统,编码器究竟如何选择?

    从步进电机到智能系统,编码器的选择是一个关键决策,它直接影响到系统的性能和精度。以下是一些关于如何选择编码器的建议: 一、明确应用场景和需求 首先,需要明确编码器的应用场景和需求。不同
    的头像 发表于 03-05 07:34 ?498次阅读
    从步进<b class='flag-5'>电机</b>到智能系统,<b class='flag-5'>编码器</b>究竟如何选择?

    绝对式编码器在伺服电机控制中的应用与优势分析

    ? ? ? 绝对式编码器在伺服电机控制中的应用广泛且重要,其优势显著,以下是对其应用与优势的详细分析: ? ? ??一、绝对式编码器在伺服电机控制中的应用 ? ? ? 绝对式
    的头像 发表于 02-06 09:46 ?785次阅读
    绝对式<b class='flag-5'>编码器</b>在伺服<b class='flag-5'>电机</b>控制中的应用与优势分析

    伺服电机编码器故障及维修

    伺服电机编码器故障及维修,伺服电机编码器4大常见故障,编码器信号丢失或不稳定,编码器零点偏移,
    的头像 发表于 01-21 14:49 ?1986次阅读
    伺服<b class='flag-5'>电机</b><b class='flag-5'>编码器</b>故障及维修

    伺服电机编码器

    在现代工业自动化和控制系统中,伺服电机编码器扮演着至关重要的角色。它能够精确测量电机的位置、速度和方向,为系统提供准确的反馈信息,实现高精度的运动控制。伺服电机
    的头像 发表于 01-20 14:01 ?932次阅读
    伺服<b class='flag-5'>电机</b><b class='flag-5'>编码器</b>

    定期进行维护保养伺服电机编码器,常见故障及其维修方法

    伺服电机作为关键驱动元件,其性能直接影响到整个系统的精度和效率。而伺服电机编码器则是其关键组成部分,负责实时反馈电机的转动位置和速度。
    的头像 发表于 12-27 16:24 ?1669次阅读
    定期进行维护保养伺服<b class='flag-5'>电机</b><b class='flag-5'>编码器</b>,常见故障及其维修方法

    智能化升级趋势下,磁编码器电机控制系统中的重要性凸显

    、优化系统性能等优势。 ? 从物理介质的不同来分,伺服电机编码器可以分为光电编码器和磁电编码器,另外旋转变压也算一种特殊的伺服
    的头像 发表于 12-11 00:20 ?3166次阅读

    电机编码器故障与处理方法 如何维护和保养编码器

    ? ? ? 电机编码器属于精密仪器,在使用过程中难免会出现一些故障,比较常见的故障有元器件故障、连接电缆故障、电源电压过低、电池电压下降、电缆屏蔽线未接或脱落、安装松动、光栅污染等,维修人员可以通过
    的头像 发表于 12-02 01:03 ?3317次阅读

    其利天下技术·伺服电机编码器的作用及工作原理·低压伺服电机驱动方案开发

    电机系统中起着至关重要的作用,是实现高效、稳定和精确控制的核心组件。编码器的作用是什么呢?它的工作原理又是怎样的?其利天下·伺服电机驱动方案编码器
    的头像 发表于 11-02 10:38 ?1067次阅读
    其利天下技术·伺服<b class='flag-5'>电机</b><b class='flag-5'>编码器</b>的作用及工作原理·低压伺服<b class='flag-5'>电机</b><b class='flag-5'>驱动</b>方案开发

    电机控制系统绝对值编码器正交分频输出Abs2QEP PTO基于F28004x的软件实现

    电子发烧友网站提供《电机控制系统绝对值编码器正交分频输出Abs2QEP PTO基于F28004x的软件实现.pdf》资料免费下载
    发表于 10-31 10:28 ?0次下载

    磁电编码器和光电编码器的区别

    磁电编码器和光电编码器是两种不同类型的编码器,它们在原理、结构、性能和应用领域上都有所不同。 磁电编码器和光电编码器的区别 1. 引言
    的头像 发表于 10-12 09:54 ?3246次阅读

    电机控制系统绝对值编码器正交分频输出Abs2QEP PTO(Pulse Train Output)基于F28004x的软件实现

    电子发烧友网站提供《电机控制系统绝对值编码器正交分频输出Abs2QEP PTO(Pulse Train Output)基于F28004x的软件实现.pdf》资料免费下载
    发表于 09-27 10:15 ?0次下载
    <b class='flag-5'>电机</b>控制系统绝对值<b class='flag-5'>编码器</b><b class='flag-5'>正交</b>分频输出Abs2QEP PTO(Pulse Train Output)基于F28004x的软件实现

    具有Endat 2.2绝对编码器反馈、采用EtherCAT连接的电机驱动系统

    电子发烧友网站提供《具有Endat 2.2绝对编码器反馈、采用EtherCAT连接的电机驱动系统.pdf》资料免费下载
    发表于 09-02 09:32 ?0次下载
    具有Endat 2.2绝对<b class='flag-5'>编码器</b>反馈、采用EtherCAT连接的<b class='flag-5'>电机</b><b class='flag-5'>驱动</b>系统