NOBのArduino日記!

NOBのArduino日記!

趣味は車・バイク・自転車・ラジコン・電子工作です。

Arduino IDE(dtostrf関数の使い方)

dtostrf関数

 dtostrf関数は小数点を含む数値を文字列に変換します。
 LCDに数値を右詰めで表示する際に便利な関数です。
 Arduino IDEで使用するdtostrf関数の使い方は以下の通りです。
 試しにこのプログラムをArduino UNOで実行すると、double型の数値BはSerial.printによる小数点以下数値の出力は、特に指定の無い場合下二桁なので”3.14”と表示されます。
 変換された文字列Aは”3.141592”と全8文字の小数点以下6文字シリアルモニタ上に表示されます。(2019/02/03:3.14159→3.141592に修正)
char A[15];
double B = 3.141592;

void setup() {
 Serial.begin(9600);   // 9600bpsでシリアルポートを開く
}

void loop() {
 dtostrf(B, 8, 6, A);    //数値Bを文字列(全8文字の小数点以下6文字)に変換してAに代入
 Serial.print(A);          //文字列Aをシリアルモニタに出力
 Serial.print(" : ");      //” : ”をシリアルモニタに出力
 Serial.println(B);       //数値Bをシリアルモニタに出力
 delay(1000);             //1秒待つ
}
イメージ 1
図1:プログラム例
   
イメージ 1
図2:Arduino IDE シリアルモニター

dtostrf関数の構文
 char *dtostrf(double val, signed char width, unsigned char prec, char *s)
 
dtostrf関数のパラメータ
 val    :変換する値
 width  :小数点や符号を含んだ変換後の総文字数。
      ※負の数を指定すると左詰めとなる。
 prec  :小数点以下の桁数
 s   :変換後の文字列を格納する変数を指定
 
dtostrf関数の戻り値
 変換後の文字列を格納する変数(引数で与えたsが返ってくる)
 
イメージ 1 イメージ 3
励みになりますのでよければクリック下さい(^o^)/

↩【ArduinoIDE reference】目次に戻る