将 0V - 5V 电压转换为 0-1V 用于 ADC(对于 ESP8266 12F)



我正在使用力传感器通过Arduino的ADC测量其值。在这里,我在力传感器上提供5V,并为下拉提供3.3k电阻。我正在通过一些编码将输入原始ADC值(范围0-1023)转换为权重。

我需要卸下Arduino并将力传感器直接连接到ESP8266 12F,并使用其ADC测量电压。但问题是它的范围只有0-1V。我尝试了一些分压器,并从背面的 1V 电源制作了 5V,现在 ADC 值的范围为 0-90,使用 Arduino 的映射功能将 0-90 转换回 0-1023。 以下是 5V 的编码:

fsrADC = analogRead(A0);                      
float fsrV = fsrADC * VCC / 1023.0;         //VCC = 5
float fsrR = R_DIV * (VCC / fsrV - 1.0);    //R_Div = 3300 for 3.3k pulldown

这是1V的编码:

fsrADC = analogRead(A0);        
fsrADC = map(fsrADC,0,90,0,1000);              
float fsrV = fsrADC * VCC / 1023.0;         //VCC = 5
float fsrR = R_DIV * (VCC / fsrV - 1.0);    //R_Div = 3300 for 3.3k pulldown

在此之后,还有几条线可以将这种阻力转换为重量。如您所见,我需要 0-1023 范围的输入模拟值才能使下一行正常工作。 计算的重量不准确。我认为这是电源问题,因为我通过分压器将5V电源转换为1V,并将其输出用于传感器。有什么建议和好的分压电路吗?

与 1.0V 相比,您的想法是正确的。 但是,您需要将ADC值与文档中描述的更合适的基准电压进行比较。 理想情况下EXTERNAL使用施加到AREF引脚的1.0V基准电压源,尽管通过适当的软件缩放,1.1V基准电压源也可能产生相当好的结果。 基准电压是关键。 至于分压器电路,只需谷歌一下,只要你有合适的电阻器,这是一个超级简单的电路。 一旦您非常接近 1.0V,请将其应用于AREF并根据文档将其设置为参考。

最新更新