Arduino 可控台灯、小夜灯、红外遥控和风扇温湿度控制项目教程

本文将详细介绍使用 Arduino 实现可控台灯、可控小夜灯、红外遥控和可控风扇温湿度读取的项目,并提供相关电路设计、硬件连接、程序编写和固件烧录的步骤和代码示例。

一、可控台灯

可控台灯的实现主要涉及到以下几个部分:电路设计、硬件连接、程序编写和固件烧录。

  1. 电路设计

可控台灯的电路设计比较简单,只需要一个三极管和一个电阻即可。具体连接方式如下图所示。

可控台灯电路设计

  1. 硬件连接

将三极管的三个脚分别连接到 A0 口、GND 口和台灯的正极(LED 正极),将电阻的两端分别连接到 GND 口和台灯的负极(LED 负极)。

  1. 程序编写

程序主要分为两个部分:初始化和循环。初始化部分主要用来初始化 A0 口为模拟输出,循环部分则用来控制三极管的输出电压,从而控制台灯的亮度。

代码如下所示:

void setup() {
  pinMode(A0, OUTPUT); // 将 A0 口设置为模拟输出
}

void loop() {
  int value;

  for (value = 0; value <= 255; value += 5) { // 逐渐增加输出电压,控制亮度
    analogWrite(A0, value);
    delay(50); // 延时一段时间,使亮度逐渐增加
  }

  for (value = 255; value >= 0; value -= 5) { // 逐渐减小输出电压,控制亮度
    analogWrite(A0, value);
    delay(50); // 延时一段时间,使亮度逐渐减小
  }
}
  1. 固件烧录

将程序上传到 Arduino 板子上,然后将三极管和电阻连接到对应的引脚即可。

二、可控小夜灯

可控小夜灯的实现与可控台灯类似,只需要将电路设计、硬件连接和程序编写稍作修改即可。

  1. 电路设计

可控小夜灯的电路设计同样比较简单,只需要一个三极管和一个电阻即可。具体连接方式如下图所示。

可控小夜灯电路设计

  1. 硬件连接

将三极管的三个脚分别连接到 A1 口、GND 口和小夜灯的正极(LED 正极),将电阻的两端分别连接到 GND 口和小夜灯的负极(LED 负极)。

  1. 程序编写

程序同样分为初始化和循环两个部分。初始化部分主要用来初始化 A1 口为模拟输出,循环部分则用来控制三极管的输出电压,从而控制小夜灯的亮度。

代码如下所示:

void setup() {
  pinMode(A1, OUTPUT); // 将 A1 口设置为模拟输出
}

void loop() {
  int value;

  for (value = 0; value <= 255; value += 5) { // 逐渐增加输出电压,控制亮度
    analogWrite(A1, value);
    delay(50); // 延时一段时间,使亮度逐渐增加
  }

  for (value = 255; value >= 0; value -= 5) { // 逐渐减小输出电压,控制亮度
    analogWrite(A1, value);
    delay(50); // 延时一段时间,使亮度逐渐减小
  }
}
  1. 固件烧录

将程序上传到 Arduino 板子上,然后将三极管和电阻连接到对应的引脚即可。

三、红外遥控

红外遥控主要涉及到红外传感器的使用和红外遥控信号的解析。

  1. 红外传感器的使用

将红外传感器的三个引脚连接到 Arduino 板子上,分别为 VCC、GND 和 OUT。

  1. 红外遥控信号的解析

使用红外遥控器对红外传感器进行遥控,然后通过程序解析出对应的红外遥控信号。

代码如下所示:

#include <IRremote.h>

int RECV_PIN = 2; // 红外传感器接收信号的引脚
IRrecv irrecv(RECV_PIN);
decode_results results;

void setup() {
  Serial.begin(9600);
  irrecv.enableIRIn(); // 启用红外传感器
}

void loop() {
  if (irrecv.decode(&results)) { // 如果接收到红外信号
    Serial.println(results.value, HEX); // 输出信号的十六进制值
    irrecv.resume(); // 继续等待下一次红外信号
  }
}

四、可控风扇温湿度读取

可控风扇温湿度读取主要涉及到 DHT11 传感器的使用和 PWM 控制风扇转速。

  1. DHT11 传感器的使用

将 DHT11 传感器的三个引脚连接到 Arduino 板子上,分别为 VCC、GND 和 DATA。

  1. PWM 控制风扇转速

使用 PWM 控制风扇的转速,从而实现可控风扇的功能。

代码如下所示:

#include <DHT.h>

#define DHTPIN 3 // DHT11 传感器连接的引脚
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE); // 初始化 DHT11 传感器

int fanPin = 5; // 风扇连接的引脚

void setup() {
  Serial.begin(9600);
  dht.begin(); // 启动 DHT11 传感器
  pinMode(fanPin, OUTPUT); // 将风扇连接的引脚设置为输出模式
}

void loop() {
  float h = dht.readHumidity(); // 读取湿度
  float t = dht.readTemperature(); // 读取温度

  if (isnan(h) || isnan(t)) { // 如果读取失败
    Serial.println("Failed to read from DHT sensor!");
    return;
  }

  Serial.print("Humidity: ");
  Serial.print(h);
  Serial.print(" %\t");
  Serial.print("Temperature: ");
  Serial.print(t);
  Serial.println(" *C");

  int fanSpeed = map(h, 0, 100, 0, 255); // 根据湿度计算风扇转速

  analogWrite(fanPin, fanSpeed); // 控制风扇转速
  delay(1000); // 延时一段时间,等待下一次读取
}

以上就是可控台灯、可控小夜灯、红外遥控、可控风扇温湿度读取的主要代码以及相关 Arduino IDE 编译生成的固件。需要注意的是,以上代码仅供参考,具体实现可能需要根据实际情况进行适当的修改。

Arduino 可控台灯、小夜灯、红外遥控和风扇温湿度控制项目教程

原文地址: https://www.cveoy.top/t/topic/lL0v 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录