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

时间:2017-06-18 04:19:07

标签: arduino esp8266 electronics arduino-esp8266

我正在使用力传感器通过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的编码:

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 个答案:

答案 0 :(得分:0)

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