如题目,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之间即可。