Arduino UNO R4 Minimaでセンサ・インターフェーシング ③ 温湿度センサSi7021のi2c信号

 Stemma QT/Qwiicボードはi2cインターフェースです。温湿度センサSi7021のスレーブ・アドレスは0x40の固定で、変更できませんが調べてみます。

スレーブ・アドレスを確認

 従来からよく使われているi2cScanner.inoを動かしてスレーブ・アドレスを確認します。


#include <Wire.h> 

void setup()
{
  Wire.begin(); // Wire communication begin
  Serial.begin(115200);
  while (!Serial) {
    delay(10);
  }
  Serial.println("\nI2C Scanner");
}

void loop()
{
    byte error, address;
    int nDevices;
 
    Serial.println("Scanning...");
 
    nDevices = 0;
    for (address = 1; address < 127; address++ )
    {
        Wire.beginTransmission(address);
        error = Wire.endTransmission();
 
        if (error == 0)
        {
            Serial.print("I2C device found at address 0x");
            if (address < 16)
                Serial.print("0");
            Serial.print(address, HEX);
            Serial.println("  !");
 
            nDevices++;
        }
        else if (error == 4)
        {
            Serial.print("Unknown error at address 0x");
            if (address < 16)
                Serial.print("0");
            Serial.println(address, HEX);
        }
    }
    if (nDevices == 0)
        Serial.println("No I2C devices found\n");
    else
        Serial.println("done\n");
 
    delay(5000);           // wait 5 seconds for next scan
}

 実行例です。見つけてきません。

 何度か試行しましたが、見つけてきません。別のボードを試すと、BMP280(気圧センサ)では同様にダメで、HT16K33(表示器)だとアドレスを表示します。

 Stemma QT/Qwiicボードの電源を3.3Vから5Vに変更すると、表示しました。

 理由は不明です。

温湿度センサSi7021のI2C信号

 オシロスコープでSCLとSDAの波形を見ます。電源は3.3Vです。波形に不自然なところはありません。

 電源3.3Vでi2cScanner.inoを動かすと、うまくデコードできない波形が観測されました。
 理由は不明です。

 オシロスコープはPicoScope5242B、ソフトウェアは 7.1.7です。

前へ

Arduino UNO R4 Minimaでセンサ・インターフェーシング ② 温湿度センサSi7021

次へ

Arduino UNO R4 Minimaでセンサ・インターフェーシング ④ 温湿度センサSi7021の測定結果を7セグメントLEDに表示