OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5181|回复: 10

怎么确定有霍尔方式驱动电机的位置?

[复制链接]

5

主题

32

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
272
金钱
272
注册时间
2019-9-16
在线时间
67 小时
发表于 2020-10-9 18:28:43 | 显示全部楼层 |阅读模式
1金钱
最近遇到一个问题,有霍尔的方式驱动电机,电机的位置怎么确定?
单片机是F030,Ha、Hb、Hc 接到TIM1的CH1~CH3上的,但是听大佬说可以用中断的方式,但是不明白怎么确定位置。

大佬给的参考代码是F103的,有那个STM32f10x_hall.c这个驱动,但F0的没有,很懵。



最佳答案

查看完整内容[请看2#楼]

电机霍尔3线,可以组成2的3次方共计8中组合,其中全0 和全1不会出现,剩余6中状态, 6组状态根据6步方波驱动即可转动,通过更改驱动PWM可以实现调速,调速方式可以采用PI(D)方式调速。 至于说的用中断方式:当电机转动时候电机霍尔3线在任一时刻只有一相会有电平反转,采用中断在反转时候给下一步时序即可;
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

68

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4082
金钱
4082
注册时间
2016-7-22
在线时间
572 小时
发表于 2020-10-9 18:28:44 | 显示全部楼层
电机霍尔3线,可以组成2的3次方共计8中组合,其中全0 和全1不会出现,剩余6中状态,
6组状态根据6步方波驱动即可转动,通过更改驱动PWM可以实现调速,调速方式可以采用PI(D)方式调速。
至于说的用中断方式:当电机转动时候电机霍尔3线在任一时刻只有一相会有电平反转,采用中断在反转时候给下一步时序即可;
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165508
金钱
165508
注册时间
2010-12-1
在线时间
2115 小时
发表于 2020-10-10 01:51:57 | 显示全部楼层
帮顶
回复

使用道具 举报

11

主题

2143

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4880
金钱
4880
注册时间
2015-1-10
在线时间
611 小时
发表于 2020-10-10 08:35:13 | 显示全部楼层
你可以把驱动的代码打包发上来,我们帮你分析分析
回复

使用道具 举报

5

主题

32

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
272
金钱
272
注册时间
2019-9-16
在线时间
67 小时
 楼主| 发表于 2020-10-10 09:14:19 | 显示全部楼层

辛苦了 凌晨了还在为论坛加砖添瓦
回复

使用道具 举报

22

主题

2251

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4478
金钱
4478
注册时间
2013-4-22
在线时间
337 小时
发表于 2020-10-10 10:42:44 | 显示全部楼层
你想确定是什么位置,不明白
回复

使用道具 举报

5

主题

32

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
272
金钱
272
注册时间
2019-9-16
在线时间
67 小时
 楼主| 发表于 2020-10-10 10:49:26 | 显示全部楼层
冻结的鱼 发表于 2020-10-10 08:41
电机霍尔3线,可以组成2的3次方共计8中组合,其中全0 和全1不会出现,剩余6中状态,
6组状态根据6步方波驱 ...

谢谢,说的很清楚。

现在疑惑的点是,这6种状态与电机位置的关系,大概是有个角度的吧。本科电信的,没学过电机学相关的知识。
回复

使用道具 举报

5

主题

32

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
272
金钱
272
注册时间
2019-9-16
在线时间
67 小时
 楼主| 发表于 2020-10-10 11:04:40 | 显示全部楼层
三叶草 发表于 2020-10-10 10:42
你想确定是什么位置,不明白

呃。。。 打个比方,我用这个电机去控制一个旋转门,就一个扇形区域,弧形的中点是关门位置。往左边是向外开门,外右边是向内开门。

类似这种。
回复

使用道具 举报

2

主题

68

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4082
金钱
4082
注册时间
2016-7-22
在线时间
572 小时
发表于 2020-10-12 08:22:15 | 显示全部楼层
lgouds 发表于 2020-10-10 10:49
谢谢,说的很清楚。

现在疑惑的点是,这6种状态与电机位置的关系,大概是有个角度的吧。本科电信的, ...

电机是有电角度,但是至于你的这个扇区旋转门位置,电机是无法知晓的,只能通过外部某一位置传感器来实现,你可以这么做:
1、在扇区中间位置放置一个霍尔,在你的电机输出轴的结构上放置一个磁铁,当霍尔感应到磁铁表示此时扇区处于中间位置,需要向外开门则电机正转,记录电机转动的6步方波个数,来实现控制向外开门的大小;向内开门同理;
2、在扇区中间位置,以及向外开门外置,向内开门位置均放置一个霍尔,这样电机转动时候判断这3个霍尔的状态即可知道当前的位置。
回复

使用道具 举报

5

主题

32

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
272
金钱
272
注册时间
2019-9-16
在线时间
67 小时
 楼主| 发表于 2020-10-12 11:00:11 | 显示全部楼层
冻结的鱼 发表于 2020-10-12 08:22
电机是有电角度,但是至于你的这个扇区旋转门位置,电机是无法知晓的,只能通过外部某一位置传感器来实现 ...

谢谢,我已经整出来了。

顺便给需要要的,说明一下。

我下降沿触发,基本在STATE1->STATE2->STATE4 这几个状态,很少进 5 3 6状态就不管这三种状态了(上升沿触发基本在这三种状态)。

大概逻辑:记录上一次状态,在当前为状态1时,如果上次状态为4,说明是正向,hall_position++。如果是状态2,说明反向,hall_position--。状态2、4同理。就把一圈的位置量化了。
回复

使用道具 举报

2

主题

68

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4082
金钱
4082
注册时间
2016-7-22
在线时间
572 小时
发表于 2020-10-12 18:49:46 | 显示全部楼层
lgouds 发表于 2020-10-12 11:00
谢谢,我已经整出来了。

顺便给需要要的,说明一下。

建议改为边缘触发的,即上升沿和下降沿都触发,这样就是先6不控制;
当然你只下降沿触发,电机力气会缩小,效率会下降;
你自己权衡是否更改,我是建议更改,做技术的严谨一点好。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-17 13:56

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表