• 方案介绍
  • 相关推荐
申请入驻 产业图谱

基于单片机的便携式温湿度检测烘干机设计

10/23 14:04
590
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

1. 系统功能概述

本系统是一款基于单片机控制的便携式智能烘干机,集温湿度检测、定时控制、自动断电、风机驱动与加热控制于一体。系统采用高性能单片机作为控制核心,通过温湿度传感器实时监测烘干环境数据,并结合用户设定的目标参数,自动调节风扇与加热装置工作状态,实现高效、安全、智能的烘干过程。用户可通过矩阵键盘设置目标温度、湿度及烘干时间,液晶显示屏实时显示当前状态和剩余时间。系统结构紧凑、便携易用,适用于家庭及户外衣物快速烘干应用。

本系统主要实现以下功能:

  1. 温湿度实时检测:通过传感器采集烘干袋内的温度与湿度数据。
  2. 智能加热控制:根据检测结果自动调节电热丝通断,实现恒温烘干。
  3. 风机循环系统电机驱动风扇产生气流,加速热空气流动,提高烘干效率。
  4. 参数设置与定时功能:用户可自定义烘干时间、目标温湿度。
  5. 安全保护机制:温度或湿度超出安全范围时自动断电保护。
  6. 液晶信息显示LCD显示实时温湿度值、剩余时间和工作状态。
  7. 便携式结构设计:体积小、功耗低,方便携带与户外使用。

2. 系统电路设计

本系统的硬件电路主要由六个部分组成:主控单片机电路、温湿度检测电路、按键输入电路、显示电路、风扇与加热驱动电路以及电源管理模块。各模块协同工作,构成一个完整的智能控制系统

2.1 主控模块设计(AT89C52单片机)

系统采用AT89C52单片机作为核心控制单元。AT89C52是一款8位CMOS单片机,内置8KB Flash程序存储器、256字节RAM、3个16位定时器、32个I/O口和一个全双工串口,适合嵌入式控制系统应用。

单片机在系统中承担的任务包括:

  • 温湿度数据采集与运算;
  • 风扇和加热电路控制;
  • 键盘扫描与参数存储;
  • LCD显示控制;
  • 安全保护逻辑判断。

主控电路设计中,单片机P0口用于LCD数据输出,P1口连接温湿度传感器和按键矩阵,P2口用于风机与加热模块控制,P3口部分引脚用作中断及串口调试接口。时钟电路采用12MHz晶振,确保系统运行稳定。

2.2 温湿度检测模块设计(DHT11传感器)

本系统采用DHT11温湿度传感器,具备高可靠性与长期稳定性。DHT11内置单总线通信接口,可通过单片机GPIO口实现数据读取。传感器在每秒采集一次温湿度值,温度精度为±2℃,湿度精度为±5%。

单片机每隔固定时间触发采样,通过读取DHT11的40位数据,提取温度与湿度整数部分,并将其存储在全局变量中供后续控制逻辑使用。当检测到温度超过设定值或湿度低于阈值时,系统自动关闭加热装置,防止过热;若湿度未达到目标,系统保持加热与风机运行,确保干燥效果。

2.3 矩阵键盘输入模块设计

矩阵键盘为4×4结构,共16个按键,包括数字键(0~9)、确认键、功能键(模式/定时/设置)以及上下调整键。通过矩阵扫描方式读取按键输入,减少单片机I/O口占用。单片机按行列方式轮询检测按键状态,结合延时消抖处理,确保按键输入的可靠性。

按键主要功能如下:

  • 模式键:切换工作模式(自动/手动);
  • 设置键:进入温湿度或时间设定界面;
  • 加/减键:调节温度、湿度或时间参数;
  • 确认键:保存设定值并返回主界面。

2.4 显示模块设计(LCD1602)

显示部分采用LCD1602液晶显示屏,负责显示实时温湿度数据、烘干时间及工作模式等信息。LCD1602为16×2字符型液晶,可通过4位或8位总线通信方式与单片机连接。为了节省I/O口资源,本系统采用4位数据线方式。

LCD1602显示内容设计如下:

  • 第一行显示“Temp:XX.XC Hum:XX%”
  • 第二行显示“Time:XXXs Mode:Auto/Manu”

当用户进入设置模式时,LCD自动切换至参数调节界面,实时反馈设定结果。

2.5 风扇与加热驱动模块设计

烘干系统的动力部分由直流电机风扇与电热丝组成。由于单片机I/O输出电流较小,无法直接驱动电机和加热丝,因此采用ULN2003达林顿管阵列作为驱动模块。ULN2003可承受较高负载电流,适合驱动直流电机、继电器等设备。

驱动逻辑如下:

  • 当温湿度低于设定阈值时,单片机通过ULN2003开启风扇与加热模块;
  • 当温度达到目标值或湿度达到设定值时,关闭加热保持通风;
  • 若温度超限或湿度异常,系统立即关闭所有输出并报警提示。

此结构可保证烘干效率,同时避免温度过高导致衣物损坏。

2.6 电源模块设计

电源模块为系统提供+5V稳压电源,采用LM7805稳压芯片输入电压可为+12V直流电源,输出稳定5V供给单片机、LCD与传感器模块。风扇与加热丝部分单独采用+12V供电,通过ULN2003控制信号隔离,确保系统供电稳定和安全。

为防止干扰,电源部分设计有电解电容陶瓷电容滤波,输出端增加瞬态抑制二极管以防止电压尖峰对单片机造成损坏。


3. 系统程序设计

系统程序采用C语言编写,利用Keil进行编译,程序结构包括主程序、温湿度采集模块、显示模块、键盘输入模块、风扇与加热控制模块、定时器与安全控制模块等。

3.1 主程序设计

主程序负责系统初始化与各模块任务调度。系统启动后完成LCD初始化、DHT11初始化及定时器启动,进入主循环进行温湿度采集、键盘扫描与逻辑控制

主程序框架如下:

void main()
{
    System_Init();
    LCD_Init();
    DHT11_Init();
    Timer0_Init();
    while(1)
    {
        DHT11_ReadData(&temperature, &humidity);
        Display_Update(temperature, humidity, remain_time);
        Key_Scan();
        Control_Process(temperature, humidity);
        Delay_ms(500);
    }
}

该结构实现了循环检测与周期性任务执行,确保系统实时响应。

3.2 温湿度采集程序设计

温湿度采集模块采用单总线通信协议。程序通过发送起始信号、等待响应、读取40位数据实现通信。数据解析后分别提取温度与湿度值。

void DHT11_ReadData(unsigned char *temp, unsigned char *humi)
{
    unsigned char buf[5];
    DHT11_Start();
    if(DHT11_Check() == 0)
    {
        for(int i=0; i<5; i++)
            buf[i] = DHT11_ReadByte();
        if((buf[0]+buf[1]+buf[2]+buf[3]) == buf[4])
        {
            *humi = buf[0];
            *temp = buf[2];
        }
    }
}

通过校验和判断确保数据准确,避免因通信干扰导致错误值。

3.3 控制逻辑与驱动程序设计

控制模块根据温湿度值与设定阈值的比较结果,决定风扇与加热模块的启停状态。

void Control_Process(float temp, float humi)
{
    if(temp < set_temp && humi > set_humi)
    {
        Fan_On();
        Heater_On();
    }
    else if(temp >= set_temp)
    {
        Heater_Off();
        Fan_On();
    }
    else if(humi <= set_humi)
    {
        Heater_Off();
        Fan_Off();
    }

    // 安全保护
    if(temp > 70)
    {
        Heater_Off();
        Fan_Off();
        Buzzer_On();
    }
}

系统在检测到超温时自动触发蜂鸣器报警并切断电源,确保安全可靠。

3.4 键盘扫描与参数设置程序设计

键盘程序采用行列扫描法,逐个检测键位状态。为了防止按键抖动,加入20ms延时消抖。

void Key_Scan()
{
    for(row=0; row<4; row++)
    {
        Set_Row(row);
        for(col=0; col<4; col++)
        {
            if(Read_Col(col) == 0)
            {
                Delay_ms(20);
                if(Read_Col(col) == 0)
                {
                    Key_Process(key_map[row][col]);
                }
            }
        }
    }
}

在Key_Process函数中根据不同按键实现对应功能,如修改设定参数、切换模式等。

3.5 显示程序设计

LCD显示模块实时输出系统运行状态:

void Display_Update(float temp, float humi, int time)
{
    LCD_SetCursor(0,0);
    LCD_WriteString("Temp:");
    LCD_WriteFloat(temp);
    LCD_WriteString("C Hum:");
    LCD_WriteInt(humi);
    LCD_WriteString("%");

    LCD_SetCursor(1,0);
    LCD_WriteString("Time:");
    LCD_WriteInt(time);
    LCD_WriteString("s Mode:");
    if(mode == AUTO) LCD_WriteString("Auto");
    else LCD_WriteString("Manu");
}

该函数每0.5秒刷新一次,确保信息实时更新。

3.6 定时与安全控制程序

系统通过定时器0实现倒计时功能,定时时间到后自动关闭风扇与加热模块。

void Timer0_ISR(void) interrupt 1
{
    TH0 = (65536 - 50000) / 256;
    TL0 = (65536 - 50000) % 256;
    count++;
    if(count >= 20)
    {
        remain_time--;
        count = 0;
        if(remain_time <= 0)
        {
            Fan_Off();
            Heater_Off();
        }
    }
}

定时中断精度高、稳定性好,可确保烘干时间控制精确。


4. 系统运行与特性分析

系统上电后进入待机状态,用户可通过按键设定烘干温度、湿度与时间。启动后,温湿度传感器实时检测环境状态,单片机根据检测结果动态控制加热与风扇工作。当温度达到设定值或湿度降至目标以下时,加热器自动关闭,仅保留风机循环空气,防止局部过热。当时间倒计时结束或检测到超温异常时,系统自动断电保护并发出报警提示。

本系统具备以下特点:

  • 高智能性:自动调节温湿度,具备自适应控制;
  • 安全可靠:多级保护机制防止过热;
  • 操作便捷:参数可调、LCD实时显示;
  • 结构紧凑:便携式设计适用于多场景应用;
  • 低功耗高效能:合理控制加热与风速,实现节能烘干。

该系统在家用电器、智能干燥设备、野外便携式干燥箱等领域均具有良好的应用前景。

 

点击链接下载资料:https://download.csdn.net/download/m0_51061483/91956674

相关推荐