SimpleFOC移植STM32(九)—— ABZ编码器电机

这篇具有很好参考价值的文章主要介绍了SimpleFOC移植STM32(九)—— ABZ编码器电机。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。



SimpleFOC、ODrive和VESC 教程链接汇总:请点击

说明

在SimpleFOC代码中,ABZ信号和霍尔电机信号处理方式很像,都是信号边沿触发中断,在中断中获取状态计算角度。
本次移植驱动板103和官方代码保持一致。

驱动板405采用的是定时器计数脉冲,处理方式不同。

一、ABZ编码器介绍

  • ABZ或者ABI,叫法不同但指的都是同一种编码器,也叫增量式编码器。
  • ABZ编码器最大的优点就是接口统一,兼容性好。
  • 不像SPI接口的磁编码器,不同厂家的芯片甚至同一厂家的不同型号,通信协议各不相同,换个编码器就要重新写代码。

1.1、ABZ信号

  • A、B两相相差90度,可通过比较A相在前还是B相在前,以判断编码器的正转与反转,通过零位脉冲,可获得编码器的零位参考位。
    SimpleFOC移植STM32(九)—— ABZ编码器电机

  • 一般采用四倍频技术,比如500线的编码器,转一圈可以获得2000个脉冲信号,
    SimpleFOC移植STM32(九)—— ABZ编码器电机

文章来源地址https://www.toymoban.com/news/detail-409954.html

1.2、光电式编码器

  • 最初的ABZ编码器是光电式的,最有名的品牌是安华高( Avago),分辨率叫“线”,比如500线就是500ppr(2000cpr)。
    SimpleFOC移植STM32(九)—— ABZ编码器电机

  • 拆开后是这样的:下图
    SimpleFOC移植STM32(九)—— ABZ编码器电机
  • 500线属于正常分辨率,1000线算是比较高的,2000线的电机肯定很贵了。不像现在的磁编码器,起步就是1024ppr。

1.3、磁编码器

  • 磁编码器体积小,性能强,价格便宜,发展的很快,会越来越多的代替光电编码器。
    SimpleFOC移植STM32(九)—— ABZ编码器电机
    磁编码器购买链接:https://item.taobao.com/item.htm?ft=t&id=655599337824,图锐科技

  • 需要说明的是,有些磁编码器上电后可以输出当前绝对位置对应的脉冲数(需要配置相应的寄存器)。下图:
    SimpleFOC移植STM32(九)—— ABZ编码器电机

SimpleFOC移植STM32(九)—— ABZ编码器电机

ABZ编码器每次上电都需要校准,所以使用时会有不方便的时候,但这个功能完美的解决了校准问题。这也是光电编码器望尘莫及的功能,充分体现了磁编码器的灵活。

1.4、差分信号

  • 在传输距离比较长的情况下(比如大于1m),信号容易发生变形和干扰,需要将编码器输出的TTL信号转为差分信号,待到控制器端再转为TTL信号。
  • 工业应用中,ABZ差分信号是应用非常普遍的编码器接口。
  • 在驱动板103或者驱动板405上,可以只用A+,B+,Z+做为ABZ信号,A-,B-,Z-悬空即可。虽然不够严谨,但是做为开发学习还是可以的。
    SimpleFOC移植STM32(九)—— ABZ编码器电机


SimpleFOC移植STM32(九)—— ABZ编码器电机


二、电机驱动板103

SimpleFOC移植STM32(九)—— ABZ编码器电机

ABZ编码器电机的代码是独立的,没有与其它编码器混在一起,不需要在 myproject.h 中设置编码器类型,代码看起来更简洁。

2.1、读ABZ信号的cpr

如果你已经知道编码器的cpr,可以跳过当前小节。

2.1.1、接线

A—SCL1(PB6/TIM4_1)、B—SDA1(PB7/TIM4_2)、Z—PA12
SimpleFOC移植STM32(九)—— ABZ编码器电机

驱动板103 购买链接:https://item.taobao.com/item.htm?ft=t&id=656368067494,图锐科技
2804电机 购买链接:https://item.taobao.com/item.htm?ft=t&id=643573104607,图锐科技

2.1.2、编译,下载代码

SimpleFOC移植STM32(九)—— ABZ编码器电机

2.1.3、转动电机,观察串口打印

  • 第一次输出的cpr肯定不准确,因为电机上电为任意位置,
  • 可以发送指令“2”读取任意时刻的cpr。
    SimpleFOC移植STM32(九)—— ABZ编码器电机

2.2、驱动ABZ电机M1

2.2.1、接线

SimpleFOC移植STM32(九)—— ABZ编码器电机
驱动板103 购买链接:https://item.taobao.com/item.htm?ft=t&id=656368067494,图锐科技
2804电机 购买链接:https://item.taobao.com/item.htm?ft=t&id=643573104607,图锐科技

2.2.2、修改代码

  • 在Myproject.h 中选择是否需要使用Z信号,然后修改cpr,
    SimpleFOC移植STM32(九)—— ABZ编码器电机

  • 极对数按照实际写入,

  • voltage_sensor_align是电机零点校准时的电压值,需要根据电机功率设置,100W以内的电机基本属于小功率,可以设置的大一点,200W以上的属于大功率,设置的小一点。

  • 如果不清楚电机功率,可以多试几个值,电源有电流显示的话观察下零点校准时的电流,只要在0.2A — 0.8A这个范围内就行,电流太小电机无力,校准可能不准确,电流太大电机会发热,容易损坏电机。

  • 初次调试请选择 Type_voltage 模式,因为可以跳过电流环,电流环的PI参数非常难设置。

  • 云台电机请选择 Type_voltage 模式,电机转速低且电流小,检测电流反而增加误差。

  • 速度环的PI请自行设置,不清楚可以先把速度I参数设置为0,只用速度P参数,先让电机转起来再说。不同电机的PI参数不相同,具体请百度。

  • 以下参数针对2804电机,编译后下载,
    SimpleFOC移植STM32(九)—— ABZ编码器电机

2.2.3、串口发送指令,观察电机运行

SimpleFOC移植STM32(九)—— ABZ编码器电机

2.3、驱动ABZ电机M2

  • A—SCL2(PB10)、B—SDA2(PB11)、Z—SWD(PA13),
  • 其实最初的设计是打算接PA11引脚的,但是调试代码的时候发现PB11和PA11是同一个中断源EXTI_Line11,并且在中断代码中无法区分,所以用SWD(PA13)来代替。
  • SWD(PA13)并没有设计外部上拉电阻,反复测试后确定只要代码中打开了内部上拉也可以的。
  • 只是占用SWD后不能再用ST-link下载代码了,请大家使用串口下载。
  • 串口下载的方法在 SimpleFOC移植STM32(二)—— 开环控制 的第3.2小节有说明,不清楚的可以去查看。

接线:
SimpleFOC移植STM32(九)—— ABZ编码器电机
驱动板103 购买链接:https://item.taobao.com/item.htm?ft=t&id=656368067494,图锐科技
2804电机 购买链接:https://item.taobao.com/item.htm?ft=t&id=643573104607,图锐科技

接下来的操作与 2.2小节相同,请参考上面。

2.4、驱动双ABZ电机

SimpleFOC移植STM32(九)—— ABZ编码器电机

驱动板103 购买链接:https://item.taobao.com/item.htm?ft=t&id=656368067494,图锐科技
2804电机 购买链接:https://item.taobao.com/item.htm?ft=t&id=643573104607,图锐科技

请结合上面的2.2和2.3小节操作。
需要注意的是,控制M1的电机发送指令以 A开头,比如 A6.28;控制M2的电机发送指令以 B开头,比如 B6.28。

三、电机驱动板405

  • 驱动板405在最初设计的时候已经支持ABZ编码器,只需要在 Myproject.h 文件选择编码器类型即可。
  • 与驱动板103的中断方式处理ABZ信号不同,驱动板405使用定时器计数AB脉冲。TIM3计数M0的AB相,TIM4计数M1的AB相。
  • 定时器计数减少了中断,在角度处理的方式上与磁编码器类似,需要主动读取定时器,

四、总结

  • 光电编码器的信号输出有开漏和推挽多种形式,不确定信号类型情况下,在单片机接口上最好能接 上拉电阻,
  • 光电编码器的工作电压一般为5V,接3.3V后不工作。驱动板103没有5V电源输出。
  • 磁编码器输出的ABZ信号一般为推挽输出,有一定的驱动能力,所以有没有上拉电阻不重要。
  • 磁编码器的工作电压为3.3V-5V,接STM32单片机尽量用3.3V电源。


    (完)

到了这里,关于SimpleFOC移植STM32(九)—— ABZ编码器电机的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • stm32编码器电机测速(hal库)

    记录一下今天参考别人的代码实现了四个电机的测速。   编码器被广泛应用于电机测速,实现电机闭环控制 。所以不论是自己做小车还是后续参加各种比赛,必须要学会编码器测速。         编码电机其实就是一个带有编码器的电机,我的这个电机是一个带霍尔传感器的

    2024年02月13日
    浏览(43)
  • STM32F407 电机编码器测量

    STM32的定时器功能非常强大,根据官方手册,定时器的功能如下 高级定时器 TIM1 和 TIM8 主要特性 TIM1 和 TIM8 定时器具有以下特性: ● 16 位递增、递减、递增/递减自动重载计数器。 ● 16 位可编程预分频器,用于对计数器时钟频率进行分频(即运行时修改),分频系数 介于

    2023年04月08日
    浏览(41)
  • STM32之增量式编码器电机测速

    编码器,是一种用来测量机械旋转或位移的传感器。它能够测量机械部件在旋转或直线运动时的位移位置或速度等信息,并将其转换成一系列电信号。 . 按监测原理分类 光电编码器 光电编码器,是一种通过光电转换将输出轴上的机械几何位移量转换成脉冲或数字量的传感器

    2024年02月13日
    浏览(31)
  • Stm32-使用TB6612驱动电机及编码器测速

    最近在 学习编码电机以及尝试使用编码电机测速 。遇到了很多问题,花费了很多时间,在这里做一个记录,对自己学习到的知识进行一个总结 找了很多资料,看了很多视频,这些太多了,以至于让我不知道究竟哪一个是正确的,今天看这个,明天看这个,导致自己的学习效

    2023年04月16日
    浏览(61)
  • (STM32)PWM输出控制电机旋转并且使用编码器读取脉冲数

    目录  前言 一、pwm输出让电机转  1.电机的接线说明 2.驱动的接线说明 3.pwm输出代码  pwm.c pwm.h 4.输出pwm控制电机旋转 二、配置定时器编码器模式 1.定时器编码器模式 编码器原理 编码器相关的概念 2.编码器模式——代码部分 3.获取脉冲数 三、定时读取编码器读取的脉冲数

    2024年02月03日
    浏览(41)
  • STM32自学笔记16-步进电机驱动项目-磁编码器的校准

    上节我把MT6816的驱动给大致整明白了,接下去需要看看如何 校准 。 为什么编码器需要校准? 如上节所说,MT6816是一款 绝对值编码器 ,它为每个测量位置分配了唯一的二进制代码或字, 即使断电,也可以跟踪编码器的确切位置 。 但是由于硬件或其他因素的影响,编码器输

    2024年02月16日
    浏览(90)
  • STM32自学笔记17-步进电机驱动项目-磁编码器的正常使用

    上节有这样一句话: 步进电机旋转角度和编码器输出数据之间的关系通常是非线性的。在校准过程中,可以通过采集一系列已知角度位置的数据点,并拟合出角度与编码器数据之间的关系。这个拟合可以使用曲线拟合算法或其他数学方法来实现。通过拟合,可以建立编码器输

    2024年02月16日
    浏览(40)
  • AS5600步进电机编码器(原理图+pcb+stm32控制代码)

    AS5600是一个易于编程的磁性旋转位置传感器,具有高分辨率的12位模拟或PWM输出。这种非接触式系统测量一个直径磁化的轴上磁铁的绝对角度。 引脚如下图 他有两种供电模式:5V和3.3V 我们为了和stm32F103C8T6单片机的电压一致,也使用3.3V供电,然后开始画PCB。 使用嘉立创EDA画

    2024年02月03日
    浏览(40)
  • STM32(HAL库)——光电编码器、M/T法测量电机转速

    目录 一 编码器 二 电机测试的三种方法 三 STM32CubeMx配置 四 程序编写 五 实验结果 常见的用于电机测速的编码器有霍尔编码器和光电编码器两种。两者测速的基本原理不同,但都是输出两路相位差90°的脉冲信号。这里以光电编码器为例介绍一下测速原理。 光电编码器是由光

    2024年02月07日
    浏览(49)
  • STM32定时器编码器模式实现直流有刷电机测速(HAL库)

    最近在做一个单片机大作业,要用到直流有刷,在这里把学习编码器的知识记录一下,学习参考资料: 正点原子DMF407电机控制专题教程_V1.0 我所使用的编码器是市面上常见的 磁电增量式编码器 ,其有AB两相,用于输出电机转动时的 脉冲数 ,AB两相的先后顺序决定了电机的

    2023年04月24日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包