SHTC3 shows negative humidity values above certain threshold

Customer:

The SHTC3 sensor works correctly until humidity rises above a certain point, then it displays negative values. Here are the readings:

14:52:11.909 → Temp: 26.32
14:52:11.909 → Hum: 32.36
14:52:11.944 → ID: 2183

14:52:16.945 → Temp: 26.52
14:52:16.945 → Hum: -17.02
14:52:16.945 → ID: on board

Board: Arduino Uno
VID: 2341
PID: 95433343933351819051

I soldered the sensor myself rather than using easyC connectors.

Also, can I use 2 sensors on the same Arduino Uno board? Currently the SCL and SDA connectors are occupied.

Original message (Croatian)

Mozete li mi pomoci oko senzora SHTC3

naime senzor radi sve dok se vlaga ne digne, pa poslije pokazuje negativne vrijednosti, kao sto je u prilogu

14:52:11.909 → Temp: 26.32

14:52:11.909 → Hum: 32.36

14:52:11.944 → ID: 2183

14:52:16.945 → Temp: 26.52

14:52:16.945 → Hum: -17.02

14:52:16.945 → ID: na ploci

BN: Arduino Uno

VID: 2341

PID: 95433343933351819051

Senzor sam lemio, nisam koristio easyC kontakte.

Još jedno pitanje, mogu li na istu ploču koristiti 2 senzora, pošto su mi sada SCL i SDA konektori zauzeti na arduino uno ?

Originally submitted via email support on 24 October 2023. Migrated to the forum for community visibility.

Soldered Support:

Check that the data type you’re pulling from the sensor is float - the library provides functions for this:

The function call should be something like:
float tempC = sensor.readTempC();

I noticed our driver also has an ARDUINO_SHTC3_NOFLOAT flag that enables measurement without decimals. Try testing how this works - then those functions will return int16_t instead of float. You can enable this mode by uncommenting this line in the .h file of the library: Soldered-SHTC3-Temperature-Humidity-Sensor-Arduino-Library/src/libs/SHTC3/SHTC3.h at 0c30aa47c5679ca590bfd7cf3edb78d6fa0305ee · SolderedElectronics/Soldered-SHTC3-Temperature-Humidity-Sensor-Arduino-Library · GitHub

Test it and report back on how it behaves. There’s a possibility something is wrong with the library since I see it hasn’t been updated in a while, or it could be something trivial in the code that’s easily removed.

Regarding your second question: I2C peripherals can be connected in parallel - as long as each device has a different address. Here’s an example (with hardware pull-up resistors which you may not need).

You can set the address on many of our sensors via jumpers or switches. The SHTC, as far as I can see, cannot change its I2C address, so you can only have one.

Original message (Croatian)

Provjeri da je tip podatka koji želiš povući sa senzora float- isti onaj library daje sa funkcijama:

Dakle poziv funkcije bi trebao biti nešto kao
float tempC = sensor.readTempC();

Uočio sam da naš driver za to ima i flag ARDUINO_SHTC3_NOFLOAT koji omogućuje mjerenje bez decimalnih mjesta. Molim te isprobaj kako to radi, onda će ti te funkcije vraćati int16_t umjesto floata. Taj mod rada ćeš upaliti tako da u .h file-u od tog library-a odkomentiraš ovu liniju: Soldered-SHTC3-Temperature-Humidity-Sensor-Arduino-Library/src/libs/SHTC3/SHTC3.h at 0c30aa47c5679ca590bfd7cf3edb78d6fa0305ee · SolderedElectronics/Soldered-SHTC3-Temperature-Humidity-Sensor-Arduino-Library · GitHub

Isprobaj pa javi kako se to ponaša. Postoji mogućnost da je nešto sa library-em jer vidim da dugo nije bio update-an ili je nešto trivijalno u kodu što se lako ukloni.

Što se tiče drugog pitanja, I2C periferiju možeš spojiti paralelno - sve dok pojedini uređaji imaju različitu adresu. Evo primjera (uz hardverske pull-up otpornike koji ti možda nisu potrebni).

Adresu na dobrom dijelu naših senzora možeš podesiti preko jumpera ili prekidača. SHTC, koliko vidim, ne može mijenjati I2C adresu, tako da možeš imati samo jedan.

Attachment omitted in migration: image.png