私はArduinoの測定の温度と湿度などを表示するC++ Builderでアプリケーションを作成しようとしています。 Arduinoと私のアプリケーションはTComPortで接続されています。私は自分のアプリケーション(C++ BuilderでVCL)を起動して、Arduinoのにすべての5を接続するとシリアル通信Arduino C++ Builder
DHT dht(10, DHT11);
void setup(void)
{
dht.begin();
Serial.begin(115200);
}
void loop(void)
{
// Measure the humidity & temperature
float h = dht.readHumidity();
float t = dht.readTemperature();
// Transform to String
String temp = String(t);
String hum = String(h);
delay(10);
Serial.print(temp);
Serial.print(hum);
delay(5000);
}
:
AnsiString temp, hum;
ComPort1->ReadStr(temp, 5);
RichEdit1->Text = temp;
ComPort1->ReadStr(hum, 5);
RichEdit3->Text = hum;
Arduinoのコード:私は115200
VCLコードのボーレートを使用しています新しい値で値をリフレッシュする必要があります。ほとんどの場合、2つの値が正しいと表示されます。例えば、 温度:24:00 湿度:55.00 何らかの理由で毎回次のように表示されます。 温度:.0051 Humditiy: .00
またはその他の奇妙な値。 5秒後に値が再び正しくなります。これは20〜30秒ごとに1回発生し、なぜこれが起こっているのかわかりません。
が見えます。あなたが奇妙なものを見ると、その前か右のものが正しいのでしょうか?または、台無しにされたものはペアで来るようですか? –
そして、なぜそれらを印刷する前に、温度と湿度の値をStringに変換していますか? Printクラスは浮動小数点をすべて処理できます。 Stringクラスは、深刻なマイクロコントローラプロジェクトでは使用しないでください。 –
こんにちは、ありがとう、私はdidntz文字列クラスで知っている最初のおかげで、あなたのコメントのために多くのありがとう:私は、2番目の通常は最初のものは正しい値ですペアの両方の値はとても奇妙な取得し、それらの間には奇妙です。 2つの奇妙なものが一列に並んでいることはほとんどありません。 – kevin