这可以用作ADC输入设置吗?它很常见吗?


8

这行得通吗?从理论上讲,我很确定,但是我并不经常或根本看不到它。从理论上讲,从2:1到1:2的分压器应在电位计的一端提供3.3v的电压,而在另一端提供1.6v的电压,从而使ADC具有较宽的工作范围。如果按下按钮,则R1 + RV将充当最大20k上拉电阻,因此线路将降至0v,ADC可以被编码为唯一事件,从而允许按钮和电位计同时存在在同一输入引脚上,从而允许ADC兼顾这两个目的。

保存了输入引脚,没有任何重大的代码更改,因为已经轮询了ADC的电位器。

schematic

模拟此电路 –使用CircuitLab创建的原理图

出于好奇,这项工作是否可行?为什么不流行呢?


3
会很好的。也许在开关两端增加一个小电容器,以绕过电位器扫波尖峰,并在使用开关时提供一些反跳。
Anindo Ghosh

并非完全相同,但请查看此电路图并尝试查找看起来熟悉的东西:sainsmart.com/zen/documents/20-011-901/schematic.pdf
jippie

@jippie不,我知道电阻梯是多个按钮,这是相当普遍的(汽车方向盘无线电控件,ipod / iphone嵌入式控件)。特别是在我问过的同一个ADC上使用了一个锅和一个按钮,我从未见过。
Passerby

2
这样您确实会在读取电位器位置时牺牲一些分辨率。这可能是完全可以接受的,具体取决于您的应用程序以及用户认为他们正在旋转的控件的性质。
RBerteig

1
只要没有机会同时按下两个开关,您就可以识别出另一个将输入拉到VCC的开关。因此,用一个ADC输入解码一个模拟调整和两个互斥的开关闭合并不是一件坏事,并且在低引脚数的微型单片机中可能是一个有用的技巧。通过两端的硬限位开关来思考位置感。然后它们在机械上是排他性的,甚至适合模拟信号。
RBerteig

Answers:


6

是的,尽管有一些问题需要注意,但它应该可以工作。

棘手的问题是,您必须小心检测并忽略0 V开关电平和电位计电平之间的跨接。其中一些看起来像有效的电位计电平,因此在开关和电位计之间进行回转时,您必须考虑多个样本,以决定看似电位计的电位计是真实的还是只是中间电压。请记住,实际的开关会反弹,因此这比您想象的要棘手。您知道有效的电位器电压的一件事是它不能快速改变。这应该有助于清除中间读数。

另一个问题是,按下开关后您将无法读取锅底。使用此设置,您对此无能为力。是否重要取决于系统以及锅位置和按下的开关的含义。

我不能说这是否“经常”完成。锅输入本身并不寻常,但是它们确实存在。为了使该方案有意义,您必须拥有一个既需要用户进行按钮操作又需要连续设置的系统,并且您真的不想花费额外的销钉。如果这是安装到28针微型或必须使用44针微型之间的区别,我可能会这样做。如果我还有其他引脚,那么我不会这样做,因为最好将复杂度保持在较低水平。电位计和按钮的单独插针将更容易,因此固件中的错误发生的可能性也较小。


2

我将ADC用作输入时没有问题,其拓扑结构与您的非常相似。

我没有电位器,但是我确实有一个两电阻分压器来降低输入电压(它在ATxmega上,其ADC输入最大值为2/3 Vcc),还有一个开关将输入拉至地面。

我认为会很好。

您可能需要记住的一件事是按钮可能无法完全使您着手。根据开关电阻的不同,您的输入端上可能还会有几毫伏的电压,因此,您不应该假设按下该按钮会导致ADC值为0,而是ADC值<〜10 counts左右(测试一下!)。


我看过ADC用于导电橡胶开关,其基本原理是该软件可以补偿由于老化而增加的电阻。
starblue

2

所有这些答案及其评论都很好,并增加了很多见识。我试图看看哪个应该得到赏金,但也想补充一下。

在这件事上找到了详细的应用笔记。不仅开关,而且在同一ADC输入上还加上一个开关和一个电位计。带有图形的PDF版本

在此处输入图片说明

本文包括有关如何选择偏置电阻和电位器的公式(以及用于自动化操作的Excel 2007电子表格),尽管不再提供微控制器的示例代码。

此技术的局限性是您不能在任何时候按下多个按钮。此外,微控制器仅在不按下任何其他按钮时才能读取电位计的位置。此示例显示了如何使用两个按钮,但是按钮的数量可以变化。输入范围可用于多达10个按钮和一个电位计,所有按钮共享相同的输入引脚(图2)。尽管计算的范围不会重叠并且是唯一的,但令人怀疑的是您的ADC硬件能否在所有情况下可靠地区分这些频段。选择较小的电阻器值可使这些频带保持较远的距离,从而创建较大的保护范围。

合理地将这种技术与四个按钮和一个电位计一起使用。对电子表格进行试验有助于快速确定每个开关及其输出范围的正确串联电阻值。

Hackaday Comment Thread这个应用笔记

同一引脚上的多个按钮也是一个很好的资源问题。


我们设计了一个嵌入式系统,该系统使用编码电压来识别其大多数按钮,并遵循针对其核心SOC的参考设计中的示例。很多按键,一个GPIO引脚。由于所有按钮在物理上都是彼此分开的,因此效果很好,并且用户没有理由一次尝试按下多个按钮。
RBerteig

1

如果您不介意降低某个ADC的分辨率,这将有助于检测未接地的电位计的位置,或与您知道不会靠近地的其他模拟源的电位。

在更一般的情况下,许多模拟传感器输入将参考接地,在某些情况下可能会接地,因此无法使用该方案。同样,许多模拟源可能会反对接地-通常是通过散发出魔力烟雾来实现的。

如果您真的很想再增加一个数字输入,并且意识到其局限性,那么可以使用此电路,但是我不建议您将该电路用于一般用途。


1
这可能是它不那么常见的原因。但是,如果您有一个旋钮和一个开关(单击转轴进入?),它将允许从单个引脚读取两者。
RBerteig

@RBerteig在问这个问题时,我完全忘记了那些组合式锅/开关。那是一个非常合适的应用程序。
路人2013年

@PeterBennett当您说模拟传感器输入可能接地或反对接地的模拟源时,您能对此进行解释/解释吗?在我的特定情况下,它是通用的MCU ADC输入,对于直接输入VCC或Gnd引用的输入应该没有任何问题。
路人2013年

@Passerby:如果与按钮共享ADC输入的传感器的输出接地(或靠近它),则您的程序将无法区分传感器读数低和按钮按下,并且无法当模拟传感器输出低时,检测按钮按下。如果模拟传感器具有“图腾柱”输出或其他低阻抗输出级,则当按钮将线拉低时,可能会使魔术烟散发出。
彼得·贝内特

@PeterBennett,所以如果我要在电位器/按钮与另一个传感器之间共享ADC输入,这才是一个问题?如果我只使用上面的端口/按钮组合,那应该不是问题吧?
路人2013年

1

这应该工作。但是您可以做得更好,这就是为什么我怀疑它很普遍的原因。

  1. 假设您有一个全范围(0至5V)ADC,减小R1和R2将增加您的动态范围,从而提高电位器位置的分辨率。当然,您不能将R2减小为零,否则您将失去激活开关的独特性。

  2. 它不像它可能的那样低功耗。如果您可以负担得起10nF的陶瓷电容器来连接开关两端,则可以轻松地将电阻增加10倍甚至100倍,从而相应地降低了功耗。该电容器还可以通过对ADC所看到的电压进行低通滤波并提供低阻抗电压源来帮助提高准确性和可重复性。最后,它将消除开关的反跳(您可能知道几乎所有机械开关都会出现触点反跳,一旦操作一次,就会迅速形成多次并断开触点,因此需要在软件或硬件中进行反跳)。如前所述,这种电容器对于电位器旋转时获得明确的行为也很重要,因为这可能会产生瞬态,至少是间歇性的高阻抗形式。

    当然,使用这样的电容器,C * R将是您的时间常数(因此,要在开关释放后的0.1 s内想要(1-e)^ 3精度,则最好保持在10 nF和3 Mega-欧姆...)

  3. 您的软件需要格外小心。您会从开关和电位器内部的机械运动中看到瞬变。编写代码并不难,但是要涉及更多的工作,然后只需查询单个ADC转换结果即可。您至少需要检查所读取的值在多次转换中是否足够稳定,以假定您不在瞬态状态。

  4. 您可能包括不必要的组件: R1有什么用(假设您的ADC输入范围一直到正轨)?如果R1应该限制最大输出电压以适合您的ADC范围,那么为什么电位计不是由处于ADC正电源轨或正下方的参考电压供电呢?那将需要在电位计的输出端使用一个限流电阻,但这会更好。由于这样的模拟电源电压很容易变得比IC电源电压(我将假设您的5V电池是象征性的)要稳定得多,因此ADC转换中的技术噪声会降低。

    最后,即使不需要R1来降低最大输出电压,如果将电路中的相同变化与移至模拟电源(可以简单地连接至其他地方的+ 5V电压)相结合,也会带来以下优点:以上,并且可以更好地利用ADC输入范围,而无需任何其他组件。


1
第4点是错误的。R1有一个必要的用途,即在按下开关且电位器处于最高位置时限制电源电流。如果没有R1,则当锅处于顶部时,该开关将使电源短路。
奥林·拉斯罗普

你是对的!我站得住了。我还不确定如何挽救第4点的其余部分,但是是的,并不是所有的事情都是正确的。
金字塔

我认为我在提供相同的潜在改进的同时设法纠正了错误。
金字塔

我撤消了downvote,因为您纠正了公然的错误。但是,我仍然不同意。这是更好的离开R1的顶部连接到相同的供给的A / d,因为供电,使与供给所述测量比率。当A / D和电阻分压器链使用相同的参考电压时,该电压的变化会抵消。
奥林·拉斯罗普

谢谢。采用比例配置时,+ 5 V是适当的参考电压,移除R1不会改变该参考电压。但是,它可以利用更大范围的静态比率设置来提供帮助。唯一可以想象到的缺点是R2和Rv的温度系数差异很大。然后,只有在电位计精确设置为50%的情况下,原始电路才能消除这种影响。但是效果非常小,而且如上所述,补偿只对一个电位计设置有效。
金字塔

1

由于以下原因,我建议使用分压器:

连接任何高阻抗设备进行测量时,该设备与电路中的任何电阻之间都将具有等效电阻(并联等效),从而改变了电阻关系。

例如,如果将电阻和电位计配置为50-50%,则在连接设备时,电阻和电位计将为49-51%。由于ADC的高阻抗,其变化不会太大,但会降低精度。我的意思是,您可以将ADC视为另一个电阻,它将改变等效电阻。

原理图

模拟此电路 –使用CircuitLab创建的原理图


难道这不意味着使用带有adc的电位器会固有的不准确性吗?
Passerby

不仅因为电位计,还因为ADC本身具有阻抗,并且如果将其连接到伏安分频器,则该关系也会改变,因为它就像对R2并联了一个电阻。
Chirry 2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.