电子发烧友App

硬声App

0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示
创作
电子发烧友网>电子资料下载>电子资料>使用Arduino的温控风扇

使用Arduino的温控风扇

2022-10-21 | zip | 0.13 MB | 次下载 | 2积分

资料介绍

描述

在本文中,您将了解使用 DHT22 传感器和继电器的 Arduino 温控风扇。我们将使用 DHT22 传感器获取温度值,并将此温度值打印在 LCD 上。然后我们将检查温度值是否大于35,如果温度大于35,则继电器将激活,风扇将开始旋转。

介绍

许多地方都需要温度控制,例如服务器机房、房屋、工业等。所以这个项目对于了解基础知识以及如何控制家中的温度非常有用。你可以把它当作一个可以在任何地方使用的 DIY 项目。在这里,温控风扇将对温度变化起作用。

该项目由NextPCB赞助

NextPCB 是全球最有经验的 PCB 制造商之一,专注于 PCB 和组装行业超过 15 年。NextPCB 不仅可以以最高质量标准提供最具创新性的印刷电路板和组装威廉希尔官方网站 ,最快的交货周转时间为 24 小时。

伙计们,如果您有 PCB 项目,请访问他们的网站并获得令人兴奋的折扣和优惠券

5–10 件 PCB 原型只需 0 美元:-点击这里

注册并从 NextPCB 获得 100 美元:-点击这里

查看有关 PCB 组装功能的更多信息:单击此处

它是如何工作的?

该项目分为三个部分 -

第一步,传感器通过温湿度传感器DHT11感应温度。

第二步,获取传感器的输出并将温度值转换为合适的摄氏温度值。风扇速度由 PWM 信号控制。系统的最后一部分在 LCD 和风扇运行上显示湿度和温度。

然后我们根据要求对我们的 Arduino 进行了编程。处理这个非常简单。我们从 Arduino 生成 PWM 并将其放在晶体管的基极端子。然后晶体管相对于 PWM 输入产生电压。

连接

以下是我们执行此项目所需的组件。大多数组件都可以在我们的网站上轻松获得。

第 1 步:收集所有这些组件

pYYBAGNPQrWATv9sAACtXr4PXh8076.png
 

1.1 所需组件

  • Arduino UNO
  • USB A 转 B
  • 面包板
  • DHT11传感器
  • 直流风扇
  • 2n2222晶体管
  • 16x2 液晶
  • 连接线

这个连接很容易做到,这里连接了一个 LCD 用于显示温度和风扇速度状态。

第 2 步:与 Arduino 的 LCD 连接

 

pYYBAGNPQreAeLDdAAEG2Eh-Vq4663.png
 

LCD直接连接到Arduino:

将 LCD-RS、EN、D4、D5、D6 和 D7 的引脚连接到 Arduino 的数字引脚编号 7、6、5、4、3 和 2。

第三步:DHT 11温湿度传感器连接

并且 DHT11 传感器模块也连接到 Arduino 的数字引脚 12。数字引脚 9 用于通过晶体管控制风扇速度。

poYBAGNPQrqAAsSmAAI1atEgQA4882.png
 

第四步:上传代码

下面的部分是代码。在这里,第一个表格让您了解 PWM 值将是风扇的速度。您可以根据需要更改值。

代码

poYBAGNPQryAXJ-MAAA7XmYjjgM203.png
 

 

在编写代码之前,请参考下表。

我们包含了 DHT22 传感器和 LCD 的库。

这些库将有助于使代码更容易。由于我们正在使用库,因此我们必须确保我们正在使用的库已安装在我们的 Arduino IDE 中。要在 Arduino IDE 中安装,请转到 Sketch 选项卡,下拉到 Include Library,然后单击 Manage Library。在 Library Manager 中搜索 DHT 和 LiquidCrystal,然后安装。

#include "DHT.h"
#include "LiquidCrystal.h"

PWM 值与速度

//NextPCB
#include "DHT.h"
#include
LiquidCrystal lcd(7, 6, 5, 4, 3, 2);
#define DHTPIN 12     // what pin we're connected to


#define DHTTYPE DHT11   // DHT 11 

#define pwm 9

byte degree[8] = 
              {
                0b00011,
                0b00011,
                0b00000,
                0b00000,
                0b00000,
                0b00000,
                0b00000,
                0b00000
              };
// Initialize DHT sensor for normal 16mhz Arduino
DHT dht(DHTPIN, DHTTYPE);

void setup() {
  lcd.begin(16, 2);
 lcd.createChar(1, degree);
 lcd.clear();
 lcd.print("   Fan Speed  ");
 lcd.setCursor(0,1);
 lcd.print("  Controlling ");
 delay(2000);
 analogWrite(pwm, 255);
 lcd.clear();
 lcd.print("Robu ");
 delay(2000);
  Serial.begin(9600); 
  dht.begin();
}

void loop() {
  // Wait a few seconds between measurements.
  delay(2000);

  // Reading temperature or humidity takes about 250 milliseconds!
  // Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)
  float h = dht.readHumidity();
  // Read temperature as Celsius
  float t = dht.readTemperature();
  // Read temperature as Fahrenheit
  float f = dht.readTemperature(true);
  
  // Check if any reads failed and exit early (to try again).
  if (isnan(h) || isnan(t) || isnan(f)) {
    Serial.println("Failed to read from DHT sensor!");
    return;
  }

  // Compute heat index
  // Must send in t in Fahrenheit!
  float hi = dht.computeHeatIndex(f, h);

  Serial.print("Humidity: "); 
  Serial.print(h);
  Serial.print(" %\t");
  Serial.print("temperature: "); 
  Serial.print(t);
  Serial.print(" *C ");
  Serial.print(f);
  Serial.print(" *F\t");
  Serial.print("Heat index: ");
  Serial.print(hi);
  Serial.println(" *F");

    lcd.setCursor(0,0);
  lcd.print("temp: ");
  lcd.print(t);   // Printing terature on LCD
  lcd.print(" C");
  lcd.setCursor(0,1);
   if(t <20 )
    { 
      analogWrite(9,0);
      lcd.print("Fan OFF            ");
      delay(100);
    }
    
    else if(t==26)
    {             
      analogWrite(pwm, 51);
      lcd.print("Fan Speed: 20%   ");
      delay(100);
    }
    
     else if(t==20)
    {
      analogWrite(pwm, 102);
      lcd.print("Fan Speed: 40%   ");
      delay(100);
    }
    
     else if(t==28)
    {
      analogWrite(pwm, 153);
      lcd.print("Fan Speed: 60%   ");
      delay(100);
    }
    
    else if(t==29)
    {
      analogWrite(pwm, 204);
      
      lcd.print("Fan Speed: 80%    ");
      delay(100);
    }
     else if(t>29)
    {
      analogWrite(pwm, 255);
      lcd.print("Fan Speed: 100%   ");
      delay(100);
    } 
  delay(3000);
}

通过库管理器将这两个库添加到您的 Arduino IDE。

然后我们初始化连接 LCD 和 DHT22 传感器的引脚。之后,我们定义了我们使用的 DHT 传感器的类型。有许多其他类型的 DHT 传感器可用,例如 DHT11,因此在此处定义类型很重要。

 

最后的话

在本文中,我们了解了如何制作温控风扇电路。使用 Arduino、DHT11 和其他一些组件。


下载该资料的人也在下载 下载该资料的人还在阅读
更多 >

评论

查看更多

下载排行

本周

  1. 1山景DSP芯片AP8248A2数据手册
  2. 1.06 MB  |  532次下载  |  免费
  3. 2RK3399完整板原理图(支持平板,盒子VR)
  4. 3.28 MB  |  339次下载  |  免费
  5. 3TC358743XBG评估板参考手册
  6. 1.36 MB  |  330次下载  |  免费
  7. 4DFM软件使用教程
  8. 0.84 MB  |  295次下载  |  免费
  9. 5元宇宙深度解析—未来的未来-风口还是泡沫
  10. 6.40 MB  |  227次下载  |  免费
  11. 6迪文DGUS开发指南
  12. 31.67 MB  |  194次下载  |  免费
  13. 7元宇宙底层硬件系列报告
  14. 13.42 MB  |  182次下载  |  免费
  15. 8FP5207XR-G1中文应用手册
  16. 1.09 MB  |  178次下载  |  免费

本月

  1. 1OrCAD10.5下载OrCAD10.5中文版软件
  2. 0.00 MB  |  234315次下载  |  免费
  3. 2555集成电路应用800例(新编版)
  4. 0.00 MB  |  33566次下载  |  免费
  5. 3接口电路图大全
  6. 未知  |  30323次下载  |  免费
  7. 4开关电源设计实例指南
  8. 未知  |  21549次下载  |  免费
  9. 5电气工程师手册免费下载(新编第二版pdf电子书)
  10. 0.00 MB  |  15349次下载  |  免费
  11. 6数字电路基础pdf(下载)
  12. 未知  |  13750次下载  |  免费
  13. 7电子制作实例集锦 下载
  14. 未知  |  8113次下载  |  免费
  15. 8《LED驱动电路设计》 温德尔著
  16. 0.00 MB  |  6656次下载  |  免费

总榜

  1. 1matlab软件下载入口
  2. 未知  |  935054次下载  |  免费
  3. 2protel99se软件下载(可英文版转中文版)
  4. 78.1 MB  |  537798次下载  |  免费
  5. 3MATLAB 7.1 下载 (含软件介绍)
  6. 未知  |  420027次下载  |  免费
  7. 4OrCAD10.5下载OrCAD10.5中文版软件
  8. 0.00 MB  |  234315次下载  |  免费
  9. 5Altium DXP2002下载入口
  10. 未知  |  233046次下载  |  免费
  11. 6电路仿真软件multisim 10.0免费下载
  12. 340992  |  191187次下载  |  免费
  13. 7十天学会AVR单片机与C语言视频教程 下载
  14. 158M  |  183279次下载  |  免费
  15. 8proe5.0野火版下载(中文版免费下载)
  16. 未知  |  138040次下载  |  免费