预览加载中,请您耐心等待几秒...
1/6
2/6
3/6
4/6
5/6
6/6

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第三十五课Arduino湿度传感器 在本节中,我们将学习如何使用不同的传感器连接我们的Arduino板。我们将讨论以下传感器: 湿度传感器(DHT22) 温度传感器(LM35) 水位检测传感器(简单水触发器) PIR传感器 超声波传感器 GPS 湿度传感器(DHT22) DHT-22(也称为AM2302)是一个数字输出,相对湿度和温度传感器。它使用电容式湿度传感器和热敏电阻来测量周围空气,并在数据引脚上发送数字信号。 在本例中,你将学习如何将此传感器与ArduinoUNO一起使用。室温和湿度将打印到串口监视器上。 DHT-22传感器 连接很简单。左边的第一个引脚为3-5V电源,第二个引脚连接到数据输入引脚,最右边的引脚接地。 技术细节 电源-3-5V 最大电流-2.5mA 湿度-0-100%,精确度为2-5% 温度-40至80°C,精确度为±0.5°C 必需的组件 你将需要以下组件: 1×Breadboard面包板 1×ArduinoUnoR3 1×DHT22 1×10K欧姆电阻 程序 按照电路图连接面包板上的组件,如下图所示。 草图 在计算机上打开ArduinoIDE软件。使用Arduino语言进行编码控制你的电路。通过单击“New”打开一个新的草图文件。 Arduino代码 //ExampletestingsketchforvariousDHThumidity/temperaturesensors #include"DHT.h" #defineDHTPIN2//whatdigitalpinwe'reconnectedto //Uncommentwhatevertypeyou'reusing! //#defineDHTTYPEDHT11//DHT11 #defineDHTTYPEDHT22//DHT22(AM2302),AM2321 //#defineDHTTYPEDHT21//DHT21(AM2301) //Connectpin1(ontheleft)ofthesensorto+5V //NOTE:Ifusingaboardwith3.3VlogiclikeanArduinoDueconnectpin1 //to3.3Vinsteadof5V! //Connectpin2ofthesensortowhateveryourDHTPINis //Connectpin4(ontheright)ofthesensortoGROUND //Connecta10Kresistorfrompin2(data)topin1(power)ofthesensor //InitializeDHTsensor. //Notethatolderversionsofthislibrarytookanoptionalthirdparameterto //tweakthetimingsforfasterprocessors.Thisparameterisnolongerneeded //asthecurrentDHTreadingalgorithmadjustsitselftoworkonfasterprocs. DHTdht(DHTPIN,DHTTYPE); voidsetup(){ Serial.begin(9600); Serial.println("DHTxxtest!"); dht.begin(); } voidloop(){ delay(2000);//Waitafewsecondsbetweenmeasurements floath=dht.readHumidity(); //Readingtemperatureorhumiditytakesabout250milliseconds! floatt=dht.readTemperature(); //ReadtemperatureasCelsius(thedefault) floatf=dht.readTemperature(true); //ReadtemperatureasFahrenheit(isFahrenheit=true) //Checkifanyreadsfailedandexitearly(totryagain). if(isnan(h)||isnan(t)||isnan(f)){ Serial.println("FailedtoreadfromDHTsensor!"); return; } //ComputeheatindexinFahrenheit(thedefault) floathif=dht.computeHeatIndex(f,h); //ComputeheatindexinCelsius(isFahreheit=false) floathic=d