-1
我試圖讓一個液晶顯示器採用了土壤水分傳感器顯示水分的百分比,當我使用的代碼基本數學系,例如:基本的數學沒有返回正確的答案
double dryPercentage = (value/1023) * 100;
我得到一個錯誤的值。當我把它放在乾燥的地方時,它會像我們應該的那樣返回100,但是當我把它放入水中時,它會說出大約50的值。當我把它放入水中時,傳感器的價值在200年,所以變量dryPercentage應該返回20%。我假設它與舍入或變量類型有關。這裏是我的全碼:
#include <LiquidCrystal.h>
int Contrast=20;
int sensor = 0;
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup(){
analogWrite(6,Contrast);
pinMode(sensor, INPUT);
lcd.begin(16, 2);
Serial.begin(9600);
}
void loop(){
int value = analogRead(sensor);
double dryPercentage = (value/1023) * 100;
int moistPercentage = 100 - dryPercentage;
Serial.print("Input: ");
Serial.print(value);
Serial.print("--");
Serial.print("Dryness: ");
Serial.println(dryPercentage);
lcd.setCursor(0, 0);
lcd.print("Hi");
lcd.setCursor(0, 1);
lcd.print("-Stuart");
}
什麼是'一個錯誤的value'?你有什麼價值? –
明顯的問題:'analogRead(sensor)'返回什麼? –