From 038066df2c292c7c13a4b6c07e8dcd5c0f5541b6 Mon Sep 17 00:00:00 2001 From: YAMANEKO Date: Sat, 1 May 2021 04:00:52 +0900 Subject: [PATCH] Add 3ms delay before read sequence --- src/SparkFun_SCD30_Arduino_Library.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/SparkFun_SCD30_Arduino_Library.cpp b/src/SparkFun_SCD30_Arduino_Library.cpp index c2a4230..3d4ed45 100644 --- a/src/SparkFun_SCD30_Arduino_Library.cpp +++ b/src/SparkFun_SCD30_Arduino_Library.cpp @@ -266,6 +266,8 @@ bool SCD30::readMeasurement() if (_i2cPort->endTransmission() != 0) return (0); //Sensor did not ACK + delay(3); + const uint8_t receivedBytes = _i2cPort->requestFrom((uint8_t)SCD30_ADDRESS, (uint8_t)18); bool error = false; if (_i2cPort->available()) @@ -358,6 +360,8 @@ bool SCD30::getSettingValue(uint16_t registerAddress, uint16_t *val) if (_i2cPort->endTransmission() != 0) return (false); //Sensor did not ACK + delay(3); + _i2cPort->requestFrom((uint8_t)SCD30_ADDRESS, (uint8_t)3); // Request data and CRC if (_i2cPort->available()) { @@ -389,6 +393,8 @@ uint16_t SCD30::readRegister(uint16_t registerAddress) if (_i2cPort->endTransmission() != 0) return (0); //Sensor did not ACK + delay(3); + _i2cPort->requestFrom((uint8_t)SCD30_ADDRESS, (uint8_t)2); if (_i2cPort->available()) {