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

问题描述:

我使用力传感器通过Arduino的ADC测量其值,在这里我提供了5V的力传感器和一个3.3k电阻拉下。现在通过一些编码将输入原始adc值(范围0-1023)转换为权重。现在我需要删除arduino并将该力传感器直接连接到ESP8266 12F,并使用它的adc来测量电压。但问题是它的范围只有0-1V。我尝试了一些分压器,并在背面5V电源提供1V电压,现在adc值的范围为0-90,使用arduino i的地图功能将0-90转换回0-1023。 这里是5V的编码:将0 V-5V电压转换为0-1V(用于ESP8266 12F)

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,并将其输出用于传感器。任何建议和良好的分压电路?

+0

你的adc有些问题;它应该在0-1023之间,而不是仅仅是90.你也不需要在你的“1V”版本中的第二行,它总的来说应该是'(adc/1023)* VCC' – dandavis

您在比较1.0V时有正确的想法。但是您需要将ADC值与更合适的参考电压进行比较,如described in the documentation。理想情况下,您可以使用EXTERNAL 1.0V基准电压应用于AREF引脚,尽管通过正确的软件调整,1.1V基准电压源也可能产生相当好的结果。参考电压是关键。就分压器电路而言,只需将它们连接到它们即可,只要您有合适的电阻器,它就是一个超级简单的电路。一旦你接近1.0V,将其应用于AREF并根据文档将其设置为参考。