打印

请教前辈一个问题..如何通过一个霍尔元件来检测两个位置?

[复制链接]
3914|27
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
pywmiss|  楼主 | 2011-6-10 17:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
要实现的功能是电机的上行和下行....通过一个霍尔元件来判断是在顶部还是在底部(在设备的顶部和底部都会安装一个磁铁的)

当然电机的行走是单片机控制的....

在程序里我是这样写的,上行状态时,如果检测到有霍尔元件信号就算是到了顶部位置.

                             下行状态时,如果检测到有霍尔元件信号就算是到了底部位置.

正常情况下都可以正常工作...但是当出现异常.比如突然断电时...并且电机又刚好停止在顶部位置,,,...这应该如何处理...因为只有一个霍尔元件,并且单片机刚启动后所以数据都清空了..要如何判断这个位置是顶部而不是底部呢???

有没有哪位前辈有做过类似的程序...能不能指点一下?小弟的QQ:183770398..谢谢指点啊!!!!

我目前有一个想法,就是让单片机在启动时就让电机下行500ms...那么,如果在顶部这500ms应该离开了顶部的霍尔元件位置;   如果在底部..电机动不了.还在位置上就是真正的底部了...但是这种办法如果真在底部这500ms下行,因为是堵转的..电流可能比较大.......这方法可能不太可靠.....希望能得到大家的帮助...谢谢!!!

相关帖子

沙发
tyw| | 2011-6-10 18:48 | 只看该作者
1. 加装堵转电流检测
2. 加装EEPROM,记录运行状态(相当于黑匣子)

使用特权

评论回复
板凳
pywmiss|  楼主 | 2011-6-10 19:52 | 只看该作者
本帖最后由 pywmiss 于 2011-6-10 19:56 编辑
1. 加装堵转电流检测
2. 加装EEPROM,记录运行状态(相当于黑匣子)
tyw 发表于 2011-6-10 18:48


非常感谢老大的指点,呵呵。。看到你的签名就想起下载过您上传的资料 。。呵呵!。。。我本来是有一个EEPROM的。。但是考虑成本问题才取消了。。。。只用一个霍尔元件也是有这方面的考虑。。呵呵。。现实就是这么残酷!!!
EEPROM的话。。。是不是要每隔一段时间(比如1秒或者1分钟)就存一下运行状态。。。当断电再启动时把值读出来???是这样吗???
这样的话。。。EEPROM会不会用得太频繁了???规格书上写有100万次。。。

电流检测的话。。怎么做?能不能详细介绍一下。。谢谢!

使用特权

评论回复
地板
maychang| | 2011-6-10 20:11 | 只看该作者
从成本考虑,用两个霍尔元件可能比较低。

使用特权

评论回复
5
tyw| | 2011-6-10 20:35 | 只看该作者
本帖最后由 tyw 于 2011-6-10 20:37 编辑

1. 电机每换一次向,就记录一次方向.断电时读出这个记录,供CPU判断.

2. 电流检测需在电机回路串一小的采样电阻,把电阻的采样电压放大后与设定值比较,输出供CPU判断.用LM324即可完此动作.

使用特权

评论回复
6
pywmiss|  楼主 | 2011-6-10 22:11 | 只看该作者
好的。。谢谢!
我看可能还真要用两个霍尔元件比较省事。。呵呵。
电流检测的话也要一个LM324,呵呵。。不过,可以试一下。。
再次感谢前辈的热心指导

使用特权

评论回复
7
pywmiss|  楼主 | 2011-6-11 09:32 | 只看该作者
我忘了说,还有一个霍尔元件在测速的..那么我可以通过测速来判断是否堵转.这样应该就可以了...

使用特权

评论回复
8
yewuyi| | 2011-6-11 10:04 | 只看该作者
怎么到处发帖!?

https://bbs.21ic.com/viewthread.p ... p;page=1#pid1710622里面已经回复过了。

要遵守论坛规则,不要到处发帖,否则删帖封ID

使用特权

评论回复
9
tyw| | 2011-6-11 10:11 | 只看该作者
小盆油象挤牙膏,顺便问下,刷牙挤牙膏从中间挤的,还是从下往上挤的?这跟个人性格有关.爱整洁的人一定是后者.哈哈,俺是拿起来就挤的.
7L方法可行

使用特权

评论回复
10
yewuyi| | 2011-6-11 10:41 | 只看该作者
小盆油象挤牙膏,顺便问下,刷牙挤牙膏从中间挤的,还是从下往上挤的?这跟个人性格有关.爱整洁的人一定是后者.哈哈,俺是拿起来就挤的.
7L方法可行
tyw 发表于 2011-6-11 10:11


俺是从中间挤,挤不到了才从后面向前挤,这是什么性格?

另:7楼方法不好,很难调整马达步距和响应速度等问题,霍尔检测速度也是有滞后的,响应太慢了。

使用特权

评论回复
11
tyw| | 2011-6-11 10:53 | 只看该作者
中间挤的都是性急朋友,不拘小节,不修边幅.
下面挤的都是有空照照镜子理理头发,皮鞋擦擦亮再出门朋友.
哈哈,欢迎各位自查后报告.

使用特权

评论回复
12
yewuyi| | 2011-6-11 11:24 | 只看该作者
--------------------------------------------------------------------
中间挤的都是性急朋友,不拘小节,不修边幅.
下面挤的都是有空照照镜子理理头发,皮鞋擦擦亮再出门朋友.
--------------------------------------------------------------------
俺刚买的牙膏都直接从中间来,但也不是那种不修边幅

使用特权

评论回复
13
jweiok| | 2011-6-11 11:42 | 只看该作者
时而中间挤,时而底部挤。。。

使用特权

评论回复
14
pywmiss|  楼主 | 2011-6-11 11:42 | 只看该作者
怎么到处发帖!?

https://bbs.21ic.com/viewthread.php?tid=241578&page=1#pid1710622里面已经回复过了。

要遵守论坛规则,不要到处发帖,否则删帖封ID
yewuyi 发表于 2011-6-11 10:04

我知道错了..刚开始发在那里没人回..后来想想是单片机相关的就又发到这里了..呵呵...

使用特权

评论回复
15
望断云山| | 2011-6-11 11:42 | 只看该作者
我从最后面开始挤牙膏,但从不管皮鞋是否亮堂,我会把板子洗得很干净,却好几天不刮胡子。

使用特权

评论回复
16
pywmiss|  楼主 | 2011-6-11 11:43 | 只看该作者
中间挤的都是性急朋友,不拘小节,不修边幅.
下面挤的都是有空照照镜子理理头发,皮鞋擦擦亮再出门朋友.
哈哈,欢迎各位自查后报告.
tyw 发表于 2011-6-11 10:53

我是比较喜欢从下面挤...不过,也不常穿皮鞋

使用特权

评论回复
17
pywmiss|  楼主 | 2011-6-11 11:57 | 只看该作者
还要补充一下..呵呵...电机是非常小的...供电4个AA电池...4-6V...负载也不大...
我想这样,在电机驱动程序前加一个第一次上电的初始化程序.:
1.最开始判断如果电机不在顶位,也不在底位就让电机下行,下行到底位就初始化完成.
2.如果在顶底任何位上..都让他先下行一段时间,(比如50ms,只要能让电机转动.那么他就离开了顶底检测位了)..
  A==如果在规定的短时间内离开了顶底检测位那就执行上面的下行运作直到停止在底位...初始化完成..
  B==如果在规定的短时间内不离开了顶底检测位那就判定在底位...初始化完成..
这程序我已经在线仿真了...只是结构方面还没有做出来,,现在是纯理论的试了一下,是可行了...等结构出来了就实际测试一下这个初始化的时间应该是多少,再看看电机会不会烧掉..呵呵...欢迎前辈拍砖.

使用特权

评论回复
18
pywmiss|  楼主 | 2011-6-11 12:01 | 只看该作者
我们老大还提了一个办法,就是只保留检测底位...这样上电时只要不在底位就下行到底位才算初始化完成.
上行的顶位的话. ..用测速的霍尔计数值来确定...

再补充...我们这个产品行程不大大概60CM

使用特权

评论回复
19
pywmiss|  楼主 | 2011-6-11 12:04 | 只看该作者
另:7楼方法不好,很难调整马达步距和响应速度等问题,霍尔检测速度也是有滞后的,响应太慢了。 ...
yewuyi 发表于 2011-6-11 10:41


请教大师,堵转主要是通过电流检测吗?
堵转是指任何时间的堵转吧,不仅仅是顶和底位>?

使用特权

评论回复
20
PowerAnts| | 2011-6-11 12:06 | 只看该作者
堵转检测, 可以测电流, 也可以检测脉冲丢失

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

68

主题

793

帖子

6

粉丝