在Arduino中读取正负电压


11

这是一个很长的故事,但是我拆开了遥控车,想让Arduino analogRead()用来获取我的电机和转向的值。我已经用万用表测量了遥控车中的电压范围是-6v至6v。

但是,Arduino仅支持从0v到5v的最大值读取。有没有办法将-6v和+ 6v转换为0v和5v?我听说可以使用运算放大器来完成。有人还告诉我使用分压器。换句话说,如果我不控制遥控车,那么Arduino应该会看到2.5伏特。

无论如何,我对如何做到这一点还不清楚。有人可以为我推荐适合这种特定情况的带有电路的运算放大器吗?

或者,如果可能,有人可以告诉我如何使用两个Arduino引脚读取负电压和正电压吗?例如,如果给出-6v,则模拟引脚0将返回1023。如果给出0v,则模拟引脚0和1都将表示0。如果给出+ 6v,则模拟引脚1将返回1023。 。如何制作这样的电路?

如果您对此有电路图,我将不胜感激。谢谢!


1
当您说遥控车的输出信号范围为+6到-6伏时,该读数是指什么?您将万用表的接地探针应用到什么地方?
Anindo Ghosh 2014年

@AnindoGhosh我刚刚接过万用表的两个引线,并用探针触碰了电动机的每根电线。
solutionhacker

2
从根本上讲,以关闭作为该问题的前提是错误的。阅读的内容不是模拟的;最好是脉宽数字,但实际上,使用Arduino读取原始的RC系统毫无意义,因为您可以使用1美元的nRF24L01类型的模块轻松地制作现代数字系统。
克里斯·斯特拉顿

欢迎来到EE.SE!这似乎是一个反向工程,修改或维修问题。请注意,此类问题必须涉及特定的故障排除步骤,并表现出对所讨论设备的基础设计的良好理解,以便您可以提出具体的,有重点的问题,并可以简明地回答。否则,这个问题就太广泛了。在此处可以找到更多信息:是否正在询问如何修复出现故障的电路?
Dave Tweed

Answers:


18

只要电动机看到的-6V接地参考电压而不参考另一个电动机端子,则可以使用三个标准电阻器。

原理图

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

当Vm在-6V至6V之间变化时,输出将在0至4.9V之间变化。


@AnindoGhosh哦,如果对电动机两端的电动机电压进行测量而不是参考接地,我也不会感到惊讶,因此也为您留出了一个不错的答案。我也没有考虑PWM ...
jippie

在已知输入电压的情况下,如何计算电阻值?例如,我有类似的情况,但是我的输入信号是-2到+2伏。这是一个有趣的拓扑,但是我想了解它背后的理论,因此我可以修改它,而不仅仅是复制。
抢劫

@robm我首先确定电阻的比率,然后在大型电子表格中使用一些计算来选择最接近的匹配电阻。正是由于使用电子表格中的公式,我才没有详细说明可能应该使用的确切方法。我认为值得单独提出一个问题:为这种特定用例选择电阻器值的标准方法。
jippie

我假设您分析了电路并选择了类似这样的值? electronics.stackexchange.com/a/252473/36877 仍然我不太了解如何在输入为6V时分析电路以得到4.887V作为输出。
–genericpurpleturtle

4

当电动机由完整的H桥驱动并且您希望Arduino与汽车的其余部分处于相同的地面参考位置时,可以使用以下方法:

原理图

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

两个输出的范围均为0 .. 2V4,您应该将Arduino的内部参考电压设置为2V56。通过将两个输出都连接到它们自己的模拟输入,可以通过减去它们来计算电动机电压。电容器在那里可以平均PWM信号,因此可以由ADC测量。


-1

这是不带运放的解决方案。您将在Arduino上需要一个额外的输入引脚。

如果输入引脚读数为0,则来自ADC的电压为正。否则电压为负。

由于桥式整流器两端的压降,您解决了将6V降至5V的问题。现在您将获得6-2 * 0.7 = 4.6 V的最大值。D5是可选的,仅出于安全原因而存在。

缺点是要测量的电压必须大于+ 1.4V或小于-1.4V。

原理图

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


2
您还需要将Arduino的地面与RC电路隔离。这意味着他们将需要单独的电源。
DoxyLover 2014年
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.