我在一個Arduino項目中,我不斷地測量所述的空氣壓力,並從使用Adafruit_BMP085庫中的第一測量計算的相對高度。爲什麼我的Arduino不能比10以上?
我顯示當前值和峯值。它基本上可以工作,但是一旦當前高度超過10米,就會停止更新峯值。
草圖看起來是這樣的:
#include <Adafruit_BMP085.h>
String currentAltitude;
String peakAltitude;
int32_t groundpressure;
Adafruit_BMP085 bmp;
void setup() {
groundpressure = bmp.readPressure();
}
void loop() {
currentAltitude = bmp.readAltitude(groundpressure);
if (currentAltitude > peakAltitude) {
peakAltitude = currentAltitude;
}
Serial.println("Current: " + currentAltitude + "m");
Serial.println("Peak: " + peakAltitude + "m");
delay(10);
}
我得到了(當我提出的傳感器/或增加空氣壓力)是這樣的:
Current: 0m
Peak: 0m
Current: 4m
Peak: 4m
Current: 11m
Peak: 4m (still)
爲什麼它停止比較。這是由於我比較的變量類型嗎?
你做理解文本和號碼之間的區別,對不對? –
你是做一個字符串比較,而「1」小於「4」。 –
'bmp.readAltitude(groundpressure)'返回一個不是String的float值。 –