ID非公開

2021/2/27 21:29

55回答

Arduinoで小数表示をしたい。 オムロンのプレッシャーセンサーE8F2の出力をArduinoでロギングしたいと思いプログラムを組んだのですが。

画像

C言語関連 | プログラミング37閲覧xmlns="http://www.w3.org/2000/svg">100

1人が共感しています

ベストアンサー

0

ID非公開

質問者

2021/2/27 22:09

有難う御座います。 電圧の方もですが小数第二位までしか表示出来ないのでしょうか? 出来れば3位くらいまで表示したいのですが。

ThanksImg質問者からのお礼コメント

無事解決しました。 一度大きな値で取得してから割ることで小数化する。 言われてみれば納得するが、頭の固い年寄りには思いつかないテクニックでした。 有難う御座いました。

お礼日時:2/28 12:28

その他の回答(4件)

0

「電圧の方もですが小数第二位までしか表示出来ないのでしょうか? 出来れば3位くらいまで表示したいのですが。」・・・・工学的にはあまり意味ないですが。 レファレンス電圧5VとしてA/D変換10ビットでしょ。そうすると 5000/1024≒5ということは1デジット5mVそれくらいの±誤差はあるということです。 計算で求められるからと言ってやたら小数点以下の値を出しても意味がないです。 外部の回路にもよりますがマイコンのA/D変換の精度なんて10ビットあっても実際は8ビット程度です。

0

pressure = map(value, 215, 1023, 0, 96); Serial.print( " 圧力: " ); Serial.print( pressure ); Serial.println( " kPa" ); ↑ 0.00~0.96という表示にしたいということですか?

0

質問文からは、イマイチ具体的にどうしたいかがわかりにくいのですが、 https://cdn.arduino.cc/reference/jp/language/functions/communication/serial/print/ (Serial.printの)オプションの2番目のパラメータを使うことで,底や小数点を指定することができます.使用可能な値は, BIN(2進数), OCT(8進数), DEC(10進数), HEX(16進数) です.Float型の数字では,このパラメータで小数点以下の桁数を指定することができます.例として. (略) Serial.println(1.23456, 4) の出力は, "1.2346" というようなことでよいのでしょうか?

0

map関数の説明に「map関数は整数だけを扱う。小数部分は単純に切り捨てられる。」と書いているはずですが。 その程度の換算なら、AD値を電圧に変換した様に自分で行えばよいのでは? 浮動小数使えているじゃないですか。 小数2桁で止めたいなら100倍値で整数計算して、浮動小数にしてから1/100倍すればいいでしょう。