阅读 Arduino 中的正电压和负电压

电器工程 Arduino 电压 运算放大器
2022-01-23 23:27:20

这是一个很长的故事,但我拆开遥控车并希望使用 ArduinoanalogRead()来获得我的电机和转向的价值。我用万用表测量了遥控车中的电压范围从-6v到6v。

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

无论如何,我不太清楚我将如何做到这一点。有人可以向我推荐一个适合这种特定场景的带有电路的运算放大器吗?

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

如果你有这方面的电路图,我将不胜感激。谢谢!

3个回答

三个标准电阻器可以完成这项工作,前提是电机看到 -6V 以地为参考,而不是以另一个电机端子为参考。

示意图

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

当 Vm 从 -6 变化到 6V 时,输出将从 0 变化到 4.9V。

当电机由一个完整的 H 桥驱动并且您希望您的 Arduino 与汽车的其余部分具有相同的接地参考时,您可以使用以下内容:

示意图

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

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

这是一个没有运算放大器的解决方案。您将需要在 Arduino 上为此输入一个额外的输入引脚。

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

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

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

示意图

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