如何使用Arduino开发板制作温度控制的风扇

您所在的位置:网站首页 报师恩作文 如何使用Arduino开发板制作温度控制的风扇

如何使用Arduino开发板制作温度控制的风扇

2024-04-01 10:16| 来源: 网络整理| 查看: 265

在本篇文章中,我们将主要介绍如何使用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