Arduino连接SHT10温湿度传感器--返回值不正常解决办法

时间:2024-02-20 13:26:09

如题目,arduino中连接温湿度传感器,用的是一个github开源项目,地址:点击打开,其实这个就是一个封装好的库,下载后把解压的文件夹复制到Arduino目录下的librarys文件夹内,重启Arduino,到此就算是到库成功了。下面看电路连接图:

注意DATA和SCK两个脚对于Arduino上的数字引脚,在写程序的时候要用到,如图所示:将 SHT15 的 Data 脚接到 pin11, SCK 接到 pin10

电路图片:

导入库的路径:

其实库里面提供了一个实例代码,你可以直接拿过来使用,下面放代码:

/**
 * ReadSHT1xValues
 *
 * Read temperature and humidity values from an SHT1x-series (SHT10,
 * SHT11, SHT15) sensor.
 *
 * Copyright 2009 Jonathan Oxer <jon@oxer.com.au>
 * www.practicalarduino.com
 */

#include <SHT1x.h>

// Specify data and clock connections and instantiate SHT1x object
#define dataPin  11
#define clockPin 10
SHT1x sht1x(dataPin, clockPin);

void setup()
{
   Serial.begin(38400); // Open serial connection to report values to host
   Serial.println("Starting up");
}

void loop()
{
  float temp_c;
  float temp_f;
  float humidity;

  // Read values from the sensor
  temp_c = sht1x.readTemperatureC();
  temp_f = sht1x.readTemperatureF();
  humidity = sht1x.readHumidity();

  // Print the values to the serial port
  Serial.print("Temperature: ");
  Serial.print(temp_c, DEC);
  Serial.print("C / ");
  Serial.print(temp_f, DEC);
  Serial.print("F. Humidity: ");
  Serial.print(humidity);
  Serial.println("%");

  delay(2000);
}

那么串口窗口的显示信息就是所要的值:

遇到的问题:出现数据错误解决办法

比如:“Temperature: -40.0099983215C / -40.0180015563F. Humidity: -4.44%”,这个数值典型就是没连上,为避免信号冲突,微处理器应驱动DATA 在低电平,所以sht10的data和vcc之间要串一个10kΩ的上拉电阻(其实就是一个简单的10kΩ的电阻),注意是串联,两端分别连接data和vcc之间即可。