我正在尝试建立一个半模拟计时器。就像您旋转其表面的那些老式鸡蛋计时器一样。我希望我可以转动一个可以被微控制器读取的旋钮,而且我还希望微控制器能够定位该旋钮。我想通过让微控制器将旋钮推向某些位置来实现“停止”。当它向下运行时,旋钮应转动。这是我的第一个此类项目。我过去曾经制造小型机器人,但是已经有很多年了。

我考虑过要入侵伺服电机以读取其位置,但是我尝试过的小型业余伺服器太难了转弯,非常嘈杂,转弯时拾得太多动量。它们的作用不佳。

我现在正在考虑将旋转编码器连接到电动机,但是在几个地点(SparkFun,ServoCity,DigiKey,Trossen等)搜寻之后,我找不到任何合适的东西。我不确定如何找到合适的低扭矩电动机。

这似乎不是一个真正罕见的问题。是否有一种相当普通的方法来创建可以由用户和微控制器调整的旋钮?

评论

我在老CD播放器的音量控制中找到了您要描述的内容。当您旋转旋钮时,它将直接旋转电位器。当您按遥控器上的按钮时,通过离合器连接的电动机将转动旋钮和电位计。手动旋转旋钮时,离合器会阻止电动机旋转并产生噪音。也许您可以从CD播放器或类似设备中挽救这种机制?

#1 楼

我有几个选项供您选择。

选项1,建立自己的伺服机构

由于只需要很小的扭矩即可移动旋钮,因此应该使用很小的电动机做得好。您可能需要增加一些摩擦力,以使其不会太容易移动,或者使用具有适当制动力矩和少量传动装置的小型步进电机。位置反馈是找到一个旧的光电机械鼠标。编码器(将A / B相位输入直接输入到微控制器中)或重新使用整个电路板,并将“鼠标”连接到串行端口,并通过软件读取X或Y鼠标的位置。

将PS / 2小鼠回收到旋转脉冲发生器中是一个很好的例子。

选项2坚持使用RC伺服器

RC的原因伺服器很难转动的是,它们具有高传动比的齿轮系,可以为它们提供所需的扭矩,这使它们难以反向驱动。请查看Wikipedia伺服机构页面上的分解图:


小型R / C伺服机构
位置反馈电位器
减速齿轮
执行器臂



RC伺服器的执行器轴转动很小会导致转动很大(转动很多)电机的运动,如果可以在不剥离齿轮的情况下使它运动。齿轮,直接使用马达位置。通过卸下或减少传动装置,您应该发现电机确实非常自由地运动。实际上,您可能需要增加一些摩擦力(或保留一些齿轮装置),以防止电动机非常抖动。

评论


$ \ begingroup $
感谢所有这些,它真的很有帮助。昨天,我儿子和我拆解了我们的一位伺服器,并学到了很多东西。我想我可能还会放一些旧的PS / 2鼠标来进行实验。
$ \ endgroup $
–罗布·纳皮尔
13年1月13日在21:50

$ \ begingroup $
@RobNapier-很高兴能为您提供帮助。小时候,我喜欢将事物分解成碎片,甚至(大部分)我设法将它们重新组合在一起,并在此过程中学到了很多东西。如今,这么多东西都不是用户可维修的部分,我不知道如今面向技术的孩子会做什么。
$ \ endgroup $
– Mark Booth♦
13年1月13日在22:59

$ \ begingroup $
顺便说一句,我继续使用伺服器进行此工作。我相信的秘密是增加一条皮带,以使马达和锅之间打滑。
$ \ endgroup $
–罗布·纳皮尔
2013年1月31日16:30

$ \ begingroup $
@RobNapier-感谢您的更新,请随时回答您自己的问题以及所尝试的内容和最终发现的内容,您至少会得到我的投票。 * 8')
$ \ endgroup $
– Mark Booth♦
2013年1月31日19:44

#2 楼

我不知道是否有正常的方法,但是您绝对应该查看我几年前发现的视频,但仍然让我震惊:The Secret Knock Detecting Lock。基本上,这家伙建造了一个基于Arduino的设备,您可以将它挂在门上,并设置一个秘密的敲门声,将其触发以打开。。。棒极了!

我确定只是视频会很漂亮很好的启发(这是我读到您的问题的标题时想到的第一件事),但是在Google快速搜索后,我还找到了说明所有问题的说明页面。在说明页面的一部分中,他说出了他使用的电动机并提出了一些建议:


1 5v减速电动机。扭矩越高越好。这是一个很好的。 (14-16mm的直径是理想的,因为它适合1/2“
PVC管的内部。)我建议使用5v时至少具有15oz / in(11 N-cm)扭矩
的管将其转动基本锁。


#3 楼

如何使用stepper motor,您将可以精确控制位置。

评论


$ \ begingroup $
欢迎使用R.SE-也许您可以扩大答案,给出支持的理由?
$ \ endgroup $
–安德鲁♦
13年1月13日在7:24

$ \ begingroup $
目前,此答案仅解决了一半的问题。如果用手转动旋钮,是否有任何技巧可以在没有编码器的情况下从电动机读回新位置?例如,您能否在电动机线圈上使用某种感应来检测步进电机是否已被手动转动?
$ \ endgroup $
– Mark Booth♦
2013年1月18日14:16



#4 楼

使用旋转电位器。将其连接到微控制器的ADC引脚,根据分辨率,您可以获得256到65536之间的任何值,然后可以使用它们来设置“停止”。

评论


$ \ begingroup $
目前,此答案只能回答一半的问题。这将允许您感测旋钮的当前位置,但不能从控制器上移动旋钮。
$ \ endgroup $
– Mark Booth♦
13年1月18日在14:18

#5 楼

解决此问题的行业标准是移动推子。



它们是容易买到的便宜组件,除了圆形部分,它们完全可以满足您的要求。