0
我工作的一個項目,其中我的Arduino的烏諾讀取土壤水分,然後將數據發送到我的樹莓派3轉換土壤水分的模擬閱讀中的百分比
我使用的HL-69土壤水分檢測器,它發出一個模擬輸出。 我遇到問題的原因是傳感器在沒有接觸時給出1023,當淹沒在水中時給出300。
我想將模擬輸出轉換爲水位百分比,這是我誠實地遇到的問題。
這是我正在使用的代碼。
int soilPin = A0;
int tempPin = A1;
int min = 300; //drowned in water
int max = 1000; //dry soil
void setup(){
Serial.flush();
pinMode(soilPin,INPUT);
pinMode(tempPin,INPUT);
Serial.begin(9600);
}
void loop(){
int sensorValue = analogRead(rainPin);
int tempData = analogRead(tempPin);
float percentage = (sensorValue - max)/(min - max);
double temperature = (double) tempData * (5/10.24);
Serial.print(",");
Serial.print(temperature);
Serial.print(",");
Serial.println(percentage);
delay(1000);
}
溫度輸出很好(如22.53),但我似乎無法得到正確的水位。
E.g 模擬輸出電平爲300(土壤淹沒在水中); 顯示:100%
我想我的百分比公式是關閉的,我只是基於它的另一個SO線程。
預先感謝您。
非常感謝您的快速回復。我已經嘗試了第一種解決方案,並輸出負數。 我設法通過使用map()函數來解決它。 'float percentage = map(sensorValue,max,min,0,100);' 謝謝您的回覆,無論哪種方式。 –