質問: input_value / 4; UDP.write(input_value_send); ``` と送ってみたところ受信側結果は ``` 1 100 255 0 2 2 0 0 186 ``` だったので1byte以上の値を送ることが出来ないのかなという状況です. UDP.writeを使ってfloat型の数値の送り方を教えていただきたいです. 追記::もしくは受信側に問題があるのでしょうか. 追記2::float型でデータを送信できたわけではないので自己解決方法で記入はしませんが,ひとまず,生データ2bitシフトしたデータ(4で割り算したデータ)を送信し,受信側で再度2bitシフトする(4で掛け算)という形をとりました.
回答: UDP.writeには、 > > Syntax > > UDP.write(message); > > UDP.write(buffer, size); > > message: the outgoing message (char) > > buffer: an array to send as a series of bytes (byte or char) > > size: the length of the buffer > > > という2つの書式があります 提示のコードでは、1バイトの送信となりますんで、そりゃバイトの範囲内でしか送信できません ということでどうするかというと、そのFloatの数値を文字配列に文字列として展開し、それを送信することになります char bff[32]; sprintf(bff,"%f\n",floatvalue); UDP.write(bff,strlen(bff)); そして受信側では、改行で区切られた文字列を読み込み、floatに変換すればよろしい