用Arduino实现DHT11自动控制L9110电机风扇

用Arduino实现DHT11自动控制L9110电机风扇

本项目是通过Arduino软件来编写程序实现硬件的控制,通过设置阈值来确定温度控制风扇的打开与关闭。
一、准备
1.Arduino板子
2.DT11温湿度传感器
3.L9110电机驱动风扇模块
4.杜邦线
5.USB数据线
二.硬件图片
.在这里准备Arduinoleixing的板子,建议使用Arduino nano或者UNO板子,我在这里使用的是Arduino UNO R3板子
用Arduino实现DHT11自动控制L9110电机风扇_第1张图片
L9110电机驱动风扇模块是可以应用到灭火当中,我在这里是作为风扇来使用的用Arduino实现DHT11自动控制L9110电机风扇_第2张图片
DHT11温湿度传感器用Arduino实现DHT11自动控制L9110电机风扇_第3张图片
三、硬件连线

**DHT11温湿度传感器
I/O ---------- D2
VCC ---------- 3.3V
GND --------- GND
用Arduino实现DHT11自动控制L9110电机风扇_第4张图片
****L9110电机驱动风扇模块连接图
IA ---------- D8
IB ---------- D9
VCC --------- 3.3V
GND --------- GND
用Arduino实现DHT11自动控制L9110电机风扇_第5张图片
四、程序

#include "DHT.h" //加载DHT11库
#define DHTPIN 2     // 定义DHT11的数据引脚
#define DHTTYPE DHT11   // DHT 11
const int IA = 8;  //  pin 8 connected to pin IA
const int IB = 9;  //  pin 9 connected to pin IB
byte speed = 255;  // L9110转速设为255
DHT dht(DHTPIN, DHTTYPE);
void setup() 
{
  //初始化
  Serial.begin(9600); //设置波特率为9600
  pinMode(IA, OUTPUT); // 定义IA脚输出
  pinMode(IB, OUTPUT); // 定义IB脚输出
  dht.begin();
}
void loop() 
{
  delay(2000);
  float h = dht.readHumidity();
  // Read temperature as Celsius (the default)
  float t = dht.readTemperature(); 
  Serial.print(F("Humidity: "));
  Serial.print(h);
  Serial.print(F("%  Temperature: "));
  Serial.print(t);
  Serial.println(F("°C "));
  if(t>=31) //设置温度的上限阈值为31℃,高于31℃风扇打开
  {
  int offsetX=525; //当控制杆位于中位时的模拟输入值,不同的控制杆可能有不同的偏差。
  int x =analogRead(A0);
  bool isFoward = x <= offsetX;  
  speed = x==offsetX ? 0: (isFoward ? (255- map(x,0,offsetX,0,255)): map(x,0,1024,0,255));
  Serial.println(speed);
  isFoward ? forward() : backward();
  }
  if(t<31)  //设置温度的阈值为31℃,低于31℃风扇关闭
  {
  int offsetX=0; //当控制杆位于中位时的模拟输入值,不同的控制杆可能有不同的偏差。
  int x =0;
  bool isFoward = x <= offsetX;  
  speed = x==offsetX ? 0: (isFoward ? (0- map(x,0,offsetX,0,0)): map(x,0,1024,0,0));
  Serial.println(speed);
  isFoward ? forward() : backward();
  } 
}
void backward()
{
  analogWrite(IA, 0);
  analogWrite(IB, speed);
}
void forward()
{
  analogWrite(IA, speed);
  analogWrite(IB, 0);
}

链接为DHT11的Arduino库没使用的话请自取
链接:https://pan.baidu.com/s/1RNyOjeNndeN5xYaPjL1AVg
提取码:qu4d

用Arduino实现DHT11自动控制L9110电机风扇_第6张图片
以上为整个Arduino中实现硬件的程序,通过Arduino程序实现DHT11自动打开L9110驱动风扇,希望对您多多少少有些帮助!*

你可能感兴趣的:(物联网)