PHYM777 2021-12-07 23:37 采纳率: 0%
浏览 150

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

  • 写回答

2条回答 默认 最新

  • 「已注销」 2021-12-08 17:01
    关注

    你的温度是华氏温度吧

    评论

报告相同问题?

问题事件

  • 创建了问题 12月7日

悬赏问题

  • ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
  • ¥15 安装quartus II18.1时弹出此error,怎么解决?
  • ¥15 keil官网下载psn序列号在哪
  • ¥15 想用adb命令做一个通话软件,播放录音
  • ¥30 Pytorch深度学习服务器跑不通问题解决?
  • ¥15 部分客户订单定位有误的问题
  • ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
  • ¥15 Bug traq 数据包 大概什么价
  • ¥15 在anaconda上pytorch和paddle paddle下载报错
  • ¥25 自动填写QQ腾讯文档收集表