我使用力傳感器通過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,並將其輸出用於傳感器。任何建議和良好的分壓電路?
你的adc有些問題;它應該在0-1023之間,而不是僅僅是90.你也不需要在你的「1V」版本中的第二行,它總的來說應該是'(adc/1023)* VCC' – dandavis