Cool_Warm_干手器
2020-05-08965
精华项目
AI 快速预览详细
本项目介绍了一款自动感应冷暖风的干手器。利用DF的Cheapduino微控制器作为处理中心,结合红外传感器和LM35温度传感器,实现了自动感应功能。当有物体接近红外传感器时,系统会根据环境温度或触摸开关状态决定出风类型。硬件包括Cheapduino微控制器、红外传感器、LM35温度传感器、继电器等。该项目简单易做,适合家庭和办公场景使用。
【解决方案】
简单分析:利用吹风机能吹出冷暖风来达到基本功能。配上传感器和微控制器实现自动感应。
硬件分工:DF的Cheapduino微控制器作为处理中心;输出端2个继电器控制风类电源开关;输入端1个红外传感器接收近距检测、1个LM35温度传感器感知空气温度、1个触摸开关。
工作原理:当有物接近红外开关传感器时,微控制器根据触摸开关状态决定出风类,否则根据LM35决定出风类。也就是说出风类可以根据空气温度自动决定(小于18摄氏度时出热风),或者操作者通过触摸开关来手动决定。
基本电路必须得搞清楚。下图右边绿白接通控制出热风。无关电源线剪掉,做好绝缘。
DF cheapduino 微控制器小巧低功耗,普通手机电池可以启动它。焊接红电源+,黑电源-,绿白为信号。
开始准备加入温度值显示模块,后来删掉。
继电器接强电侧:
就相当于开关,一根连市电是通路。另一根一端接COM,另一端接NO(常开)
继电器接微控制器侧:
输入型传感器:
确保安全前提下接通市电!
下图左侧添加了内置手机电池的开关。
出风口太偏向墙壁侧了。
代码
const int InfraredSensorPin = A0;
const int LM35Pin = A4;
const int relaySmallPin = 10;
const int relayBigPin = 11;
const int LedDisp = 13;
const int touchPin = A5;
uint16_t temp = 0;
static bool touched = false;// 使用静态变量利于保留触摸状态
///////////////////////////////////
void setup()
{
pinMode(InfraredSensorPin,INPUT);
pinMode(LM35Pin,INPUT);
pinMode(touchPin,INPUT);
pinMode(relaySmallPin,OUTPUT);
pinMode(relayBigPin,OUTPUT);
pinMode(LedDisp,OUTPUT);
digitalWrite(LedDisp,LOW);
}
////////////////////////////////////
void loop()
{
touched = digitalRead(touchPin);
temp = analogRead(LM35Pin)*(5/10.24);
if(digitalRead(InfraredSensorPin) == LOW)
{
digitalWrite(LedDisp,HIGH);
digitalWrite(relayBigPin,HIGH);
if( temp < 18 || touched == true )
{
digitalWrite(relaySmallPin,HIGH);
}
else
{
digitalWrite(relaySmallPin,LOW);
}
}
else
{
digitalWrite(LedDisp,LOW);
digitalWrite(relayBigPin,LOW);
}
}


