私はあるアルドゥイノから別のアルドゥーノに3つの浮動小数点値を送り、受け取ったアルドゥイノの配列にこれらの浮動小数点値を格納したいプロジェクトを行っています。受け取ったフロート値を印刷している間、私はシリアルモニタの最初の2桁しか見ることができません。あるアルドゥイノのフロート値を別のアルドゥーノに送ることはできません:
私は初心者であり、フロート値全体を取得する方法はわかりません。プログラムで私を助けてください。ここでは、送信機と受信機のコードを掲載しました。 トランスミッタのコード:事前に
float transmit[3]={72.453444,83.345678,60}; //Values to be sent
void setup()
{
Serial.begin(115200);
int i;
for(i=0;i<3;i++)
{
Serial.write(transmit[i]);
}
}
void loop()
{
}
Receiver’s Code:
float received[3]; //create an float array
int i;
void setup()
{
Serial.begin(115200);
}
void loop()
{
while(Serial.available()>0)
{
for(i=0;i<=2;i++)
{
received[i]=(Serial.read());
delay(10);
}
Serial.println(received[0]);
Serial.println(received[1]);
Serial.println(received[2]);
}
}
Values received on Serial Monitor: 72 83 60
感謝。
おかげで使用される自動キャストを使用して通信を不可能にするので、あなたは、明示的に数値を変換する必要があります。..それでも送信プログラムと受信プログラムの両方でエラーが発生しました。プログラムを送信すると、「ハードウェアシリアル::書き込み(float [3]、unsigned int)」の呼び出しで一致する関数がありませんでした。 – Krish
受信者のプログラムで、私は "初期化でfloatを 'uint8_t *'に変換できません"というエラーを受けました。 – Krish
@Krish [OK]を、暗黙のキャストが好きではないかもしれません。私を助けるかもしれない。このコード – frarugi87