Arduino使用tca9548A扩展板接4个SHT20温湿度传感器,串口显示数据不正常

问题遇到的现象和发生背景

用arduino做一个多点温湿度检测,使用的是4个SHT20传感器,因为需要使用IIC通讯,接了个tca9548A扩展板。代码是编译成功了,但是串口监视器显示的温湿度都是不正确的。

#include <Wire.h>
#include "uFire_SHT20.h"

#define TCAADDR 0x70 
uFire_SHT20 sht1; //传感器1
uFire_SHT20 sht2; //传感器2
uFire_SHT20 sht3; //传感器3
uFire_SHT20 sht4; //传感器4
void tcaselect(uint8_t i) //选择从机
{
  if (i > 7) return;
  Wire.beginTransmission(TCAADDR);
  Wire.write(1 << i);
  Wire.endTransmission(); 
}

void setup() 
{ 
  Serial.begin(9600);、
Wire.begin();
tcaselect(1); 
  sht1.begin();
  delay(100);
  tcaselect(2);
  sht2.begin();
  delay(100);
  tcaselect(3);
  sht3.begin();
  delay(100);
  tcaselect(4);
  sht4.begin();
  delay(100);
}

void loop() 
{
    tcaselect(1);
    sht1.measure_all();
    Serial.println((String)"传感器1:"+sht1.tempC + "°C");
    Serial.println((String)"传感器1:"+sht1.RH + " %RH");
    Serial.println();
    delay(1000);  
    tcaselect(2);
    sht2.measure_all();
    Serial.println((String)"传感器2:"+sht2.tempC + "°C");
    Serial.println((String)"传感器2:"+sht2.RH + " %RH");
    Serial.println();
    delay(1000);  
    tcaselect(3);
    sht3.measure_all();
    Serial.println((String)"传感器3:"+sht3.tempC + "°C");
    Serial.println((String)"传感器3:"+sht3.RH + " %RH");
    Serial.println();
    delay(1000);  
    tcaselect(4);
    sht4.measure_all();
    Serial.println((String)"传感器4:"+sht4.tempC + "°C");
    Serial.println((String)"传感器4:"+sht4.RH + " %RH");
    Serial.println();
    delay(1000);  
}

运行结果及报错内容

img

你的温度是华氏温度吧

解决了,扩展板没有焊针脚,接触不良。