我如何从压力传感器获得全量程电压读数?


10

我正在使用从此指令中获得的DIY力敏电阻(FSR)进行应用。该传感器的电阻通常在静止时为20kOhm到按下时为9kOhm。

我如何将这些电阻值转换为信号,其中0v对应于静止状态,而5v对应于“被按下”状态,以便我可以用Arduino读取它?

Answers:


14

您希望信号范围为0V至5V。我们不是都:-)吗?让我们采用一种不同的方法,看看能从哪里得到帮助。

起点:最便宜,最简单的解决方案。

那将是一个串联电阻来创建一个分压器。那是绝对的最小值。我注意到人们没有给电阻多加考虑,只是选择一个很好的舍入值,如10k。但是我发现有一个最佳值。 Ω

在此处输入图片说明

该曲线示出了最小和最大读数之间的电压差(9K和20K RESP。)作为串联电阻(在k的函数)。看,它确实具有最大值。如果您还记得那很容易找到 ΩΩΩ

(f(x)g(x))=f(x)g(x)f(x)g(x)g2(x)

所不同的 -具有极值 VMAXVMIN

ddRX(RMAXRMAX+RXRMINRMIN+RX)=0

解决给 RX

RX=RMINRMAX

美女!

因此,在本例中,串联电阻为13.42k,您可以在图表上进行检查。将电阻放置在0V至+ 5V之间,这将使我们的输出范围为[2V,3V]。这是使用1个电阻器(*)可获得的最大范围。 Ω

够了吗 Arduino具有10位ADC,因此该范围将为您提供200个离散电平的范围。对于DIY传感器,应该可以提供足够的精度。因此,不需要其他组件如运算放大器。


(*)可接受的答案给出了1.9V范围,但是方程式错误。使用1个电阻器和仅+ 5V的电源无法获得高于1V的范围。


2
+1。这应该获得更多投票。每个人不时需要一个电阻分压器作为可变电阻器,然后为什么不使用最佳范围而不是那个笨拙的10k串联电阻器呢?
Federico Russo

5

您需要一个负电压才能使电阻分压器达到0V。我假设您有+ 5V和-5V可用。
将可变电阻器 + 5V和GND之间。现在,您需要找到一个介于GND和-5V之间的下拉电阻的值。现在很简单;当可变电阻为20k,您需要0V输出,因此下拉电阻也必须为20k因为整个过程都是对称的。 接下来,我们必须找出为9k时分压器的输出电压。我们注意到流经的电流与流经下拉电阻的电流相同,因此 Ω Ω - [R X Ω - [R XRXΩΩ
RXΩRX

5VVO9kΩ=VO(5V)20kΩ

计算得出的结果为。现在剩下要做的只是将0V..1.9V缩放到0V..5V。为此,我们使用RRIO(轨至轨I / O)运算放大器作为同相放大器 VO=1.9V

在此处输入图片说明

如果您选择和,则对于为20k ..9k您将获得0V..5V的输出电压范围。- [R 2 = 47 ķ Ω - [R X Ω ΩR1=18kΩR2=47kΩRXΩΩ


1

我认为最简单的方法是使用一个分压器,该分压器在9k时为您提供5V电压,并随着电阻的增加而降低。您可以在此分压器计算器中使用各种电阻器组合。但是,这将是线性发展。


2
如果您只有5V,那么您就无法制作一个可为您提供5V电压的分压器。
Federico Russo
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.