Arduino Nano R4の活用 ⑨ I2C LPS22HBのスケッチ スケッチの説明<第4回>

 QWICCコネクタにつないだ時のスケッチは、Wire.xxxxと記述していたところをすべてWire1.xxxに変更だけで記述自体は何も変わっていません。

環境

  • Arduino IDE;2.3.5
  • Windows11;24H2
  • Arduino Nano R4 1.5.1 PCはマザーボードのUSBポートから直接つなぐ。

intはいろいろ

 Arduino Uno3は8ビット・マイコンで、intは2バイトで-32768~32767の範囲を扱えます。Arduino Uno4は32ビット・マイコンでintは4バイトなので-2147483648~2147483647の範囲を扱えます。

 なので、大きめの数値を扱うようなときに差が出ます。紛らわしいことだと思います。

 現在、次の表記が使われます。

表現  
int8_t 1 バイトの符号付き整数  -128~127
uint8_t 1 バイトの符号なし整数  0~255
int16_t 2 バイトの符号付き整数  -32,768 ~ 32,767
uint16_t 2 バイトの符号なし整数  0 ~ 65,535
int32_t 4 バイトの符号付き整数  -2,147,483,648 ~ 2,147,483,647
uint32_t 4 バイトの符号なし整数 0 ~ 4,294,967,295
int64_t 8 バイトの符号付き整数  -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
uint64_t 8 バイトの符号なし整数  0 ~ 18,446,744,073,709,551,615

const unsigned char LPS22HB_address = 0x5d;

 

 unsigned charは0~255の範囲を取るので、uint8_tで置き換えられると思います。

byte result[3];
 

 byteは多くの言語では0~255の範囲を取るので、uint8_tで置き換えられると思います。

 2か所を置き換えて実行しました。問題なく動いています。

Arduino Nano R4のintの範囲を確かめる

 Arduino Uno3は8ビット・マイコンで、intは2バイトで-32768~32767の範囲を扱えます。

 Arduino Nano R4で、+32767を超えるとどうなるか確かめます。2バイト以上の大きな数値が扱えることが確認できました。

 Arduino Nano R4で、int32_t(4 バイトの符号付き整数); -2,147,483,648 ~ 2,147,483,647を超えるとどうなるか確かめます。4バイト数値まで扱えることが確認できました。 

前へ

Arduino Nano R4の活用 ⑧ I2C LPS22HB Wire②