如何使用Arduino开发板制作温度控制的风扇 |
您所在的位置:网站首页 › 报师恩作文 › 如何使用Arduino开发板制作温度控制的风扇 |
在本篇文章中,我们将主要介绍如何使用DHT22传感器和继电器制作一款Arduino温控风扇。使用DHT22传感器获取温度值,然后将在LCD显示屏上打印此温度值。我们将检查温度值是否大于35,如果温度大于35,则启动继电器,风扇将开始旋转。 所需的硬件 ● Arduino Uno开发板 ● LCD1602显示屏 ● DHT22温湿度传感器 ● 直流电机 ● 9V电池 ● 10K电位器 ● 连接导线 ● 面包板 硬件部分 首先,我们按照以下方式将LCD模块连接到Arduino开发板: ● 将LCD的VSS引脚连接到Arduino的GND。 ● 将VDD引脚连接到Arduino的5V。 ● 将V0引脚连接到10K电位器的中心引脚。将电位器的其他两个引脚连接到5V和GND。 ● 将RS引脚连接到Arduino的引脚2。 ● 将R / W引脚连接到Arduino的地。这将使LCD处于读取模式。 ● 将E(使能)引脚连接到Arduino的引脚3。 ● 将D4-D7引脚分别连接到Arduino的引脚4、5、6、7。 ● 将LED背光的正极引脚15通过串联一只220欧电阻连接到5V。 ● 将LED背光的负极引脚16连接到Arduino的GND。 然后将继电器模块Keyes_ST1y连接到Arduino开发板。在继电器模块的输入端,连接如下: ● 将继电器模块的VCC引脚连接到Arduino的5V引脚。 ● 将继电器模块的IN引脚连接到Arduino的引脚9。 ● 将继电器模块的GND引脚连接到Arduino的GND。 在继电器模块Keyes_SR1y的输出侧,将9V电池的负极连接到继电器模块的公共端(C),并将继电器模块的NC连接到风扇负极。然后将电池正极连接到风扇正极。 最后,按照以下方式连接DHT22温湿度传感器: ● 将DHT22的引脚1(即VCC引脚)连接到Arduino的5V ● 将DHT22的引脚2(数据引脚)连接到Arduino的引脚8。 ● 将DHT22的引脚4(接地引脚)连接到Arduino的GND。
connections.png (324.94 KB, 下载次数: 262) 下载附件 保存到相册 2019-1-17 16:56 上传 代码说明 首先我们需要包含用于DHT22传感器和LCD的库文件。 这些库将有助于简化代码。由于我们使用库,必须确保使用的库安装在Arduino IDE中。要在Arduino IDE中安装,请转到Sketch选项卡,下拉到Include Library,然后单击Manage Library。在Library Manager中搜索DHT和LiquidCrystal,然后安装。 #include “DHT.h” #include “LiquidCrystal.h”复制代码
library.jpg (40.77 KB, 下载次数: 333) 下载附件 保存到相册 2019-1-17 16:56 上传 通过库管理器将这两个库添加到Arduino IDE中。 然后我们初始化了连接LCD和DHT22传感器的引脚。之后,我们定义了DHT传感器的类型,我们使用的是DHT22传感器。还有许多其他类型的DHT传感器可供选择,如DHT11,因此在此定义类型非常重要。 LiquidCrystal lcd(2, 3, 4, 5, 6, 7); #define DHTPIN 8 #define DHTTYPE DHT22 DHT sensor(DHTPIN, DHTTYPE);复制代码在setup()函数中,我们将命令发送到DHT22和LCD,开始与Arduino通信。然后我们将继电器引脚声明为输出引脚,因为我们将从Arduino向继电器提供电压以起送继电器。继电器反向工作(高电平表示继电器低电平)。 lcd.begin(16,2); sensor.begin(); pinMode(relay_pin, OUTPUT); digitalWrite(relay_pin, HIGH);复制代码在loop()函数中,我们清除LCD显示,然后从传感器读取温度值。 lcd.clear(); float t = sensor.readTemperature(); //reading the temperature from the sensor // Checking if the sensor is sending values or not if (isnan(t)) { lcd.print("Failed"); delay(1000); return; }复制代码然后我们在LCD上打印此温度值,如果温度值大于35,则启动继电器,风扇开始旋转。 lcd.setCursor(0,0); lcd.print("Temp: "); lcd.print(t); lcd.print(" C"); if (t > 35){ digitalWrite(relay_pin, LOW); lcd.setCursor(0,1); lcd.print("Fan is ON "); delay(10); }复制代码以下是本文的完整代码: main.rar (507 Bytes, 下载次数: 649) 2019-1-17 17:02 上传 点击文件名下载附件 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |