2017-06-18 24 views
0

我使用力傳感器通過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

回答

0

您在比較1.0V時有正確的想法。但是您需要將ADC值與更合適的參考電壓進行比較,如described in the documentation。理想情況下,您可以使用EXTERNAL 1.0V基準電壓應用於AREF引腳,儘管通過正確的軟件調整,1.1V基準電壓源也可能產生相當好的結果。參考電壓是關鍵。就分壓器電路而言,只需將它們連接到它們即可,只要您有合適的電阻器,它就是一個超級簡單的電路。一旦你接近1.0V,將其應用於AREF並根據文檔將其設置爲參考。