gfd-dennou-club / mrubyc-gem-scd30

mruby/c sources for scd30 (CO2 sensor)
MIT License
1 stars 1 forks source link

サンプルコードの実行で、dataReadyのときにreadが失敗することがある #5

Closed matsudai closed 1 year ago

matsudai commented 1 year ago

概要

ESP-PICO でサンプルコードを動かすと、 scd30.dataReady がtrueのときでもデータが取得できないことがありました。( scd30.read がfalseyでした)

環境

原因

データシート > 1.1 I2C Protocol を見たところ、I2CのBaud rateを50kHz以下にすることが推奨されているようです。

Maximal I2C speed is 100 kHz and the master has to support clock stretching. Sensirion recommends to operate the SCD30 at a baud rate of 50 kHz or smaller.

しかし、I2Cクラスのfreqのデフォルト値は400kHz になっており、Baud rateが高いためデータの取得漏れが発生した可能性があります。

I2C.new の引数でfreqを推奨値の50kHzに変更したところ取得エラーが起きづらくなりました。 PRを出しますのでご確認いただきたく思います。

matsudai commented 1 year ago

マージありがとうございます!

本Issueをクローズいたします。