web-dev-qa-db-ja.com

Arduinoで整数/小数を16進数に変換しますか?

整数または10進変数を16進文字列に変換するにはどうすればよいですか?私は反対のことをすることができます(hexをintに変換する)が、私は他の方法を理解することができません。

これは、配列内のSerial.print()16進値用です。

6
Joe

Arduino Stringチュートリアルを見てください ここ 。以下のコードは、その例から抜粋したものです。

// using an int and a base (hexadecimal):
stringOne =  String(45, HEX);   
// prints "2d", which is the hexadecimal version of decimal 45:
Serial.println(stringOne);  

そのページには他にもたくさんの例がありますが、浮動小数点数の場合は自分でロールする必要があると思います。

20
nathan

簡単な解決策があります。使用するだけです。

Serial.print(yourVariable, HEX);
6
Rodrigo Lopez

Streaming ライブラリは、これを行うための組み込みの方法を提供します。

#include <Streaming.h>
...
Serial << "45 in hex is " << _HEX(45) << endl;

ライブラリを http://arduiniana.org/libraries/streaming/ からダウンロードし、Sketchbookフォルダのサブディレクトリに配置する必要があります。メニューファイル-設定はそれがどこにあるかを示します。

このライブラリは、LCDに出力するときにも使用できます。

2
John Y