ID非公開
ID非公開さん
2021/2/27 21:29
5回答
Arduinoで小数表示をしたい。 オムロンのプレッシャーセンサーE8F2の出力をArduinoでロギングしたいと思いプログラムを組んだのですが。
Arduinoで小数表示をしたい。 オムロンのプレッシャーセンサーE8F2の出力をArduinoでロギングしたいと思いプログラムを組んだのですが。 電圧は小数第二位までしか表示せず、MAP関数で変換した圧力は小数は00になってしまいます。 map(value, 215, 1023, 0, 96); マップ関数の微妙な値は、仕様では0-100kPaの出力は1-5Vですがずれが有ったので調整しているからです。 const int VOL_PIN = A0; void setup(){ Serial.begin( 9600 ); } void loop(){ int value; float volt; float pressure; value = analogRead( VOL_PIN ); volt = value * 5.0 / 1023.0; Serial.print( "AD値: " ); Serial.print( value ); Serial.print( " 電圧: " ); Serial.print( volt ); Serial.print( "V" ); pressure = map(value, 215, 1023, 0, 96); Serial.print( " 圧力: " ); Serial.print( pressure ); Serial.println( " kPa" ); delay( 500 ); }
1人が共感しています
ベストアンサー
map()は整数用らしいので pressure = map(value, 215, 1023, 0, 96); を pressure = map(value, 215, 1023, 0, 9600) / 100.0; とすれば,実数で出力されると思いますが,どうでしょう.
ID非公開
ID非公開さん
質問者
2021/2/27 22:09
有難う御座います。 電圧の方もですが小数第二位までしか表示出来ないのでしょうか? 出来れば3位くらいまで表示したいのですが。
質問者からのお礼コメント
無事解決しました。 一度大きな値で取得してから割ることで小数化する。 言われてみれば納得するが、頭の固い年寄りには思いつかないテクニックでした。 有難う御座いました。
お礼日時:2/28 12:28