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です。