基于单片机的全自动洗衣机控制器设计

基于单片机的全自动洗衣机控制器设计

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


1. 系统功能介绍

本设计基于 51 单片机实现对全自动洗衣机的智能控制,系统通过传感器采集、程序逻辑判断以及继电器执行,实现洗衣机的自动进水、洗涤、放水和脱水等全过程控制。用户可通过按键设置洗涤时间,系统自动按照预设比例分配三个洗涤阶段的时间,并在每个阶段完成后发出蜂鸣提示,整个控制过程无需人工干预,具有高度的自动化与智能化特征。

系统的主要功能如下:

  1. 全自动控制流程:从进水、洗涤、放水到脱水,均由单片机按照设定程序自动完成,无需人工干预。
  2. 洗涤时间可调:用户可通过按键设定总洗涤时间(10~30 分钟),系统自动按比例划分三个洗涤阶段。
  3. 三次循环洗涤:系统将总洗涤时间分为 1/2、1/3、1/6 三个阶段,每次洗涤结束后提示用户。
  4. 正反转控制:洗涤过程中电机交替正反转运行,保证衣物洗涤均匀,防止缠绕。
  5. LCD 实时显示:液晶屏显示当前模式、剩余时间及系统状态,让用户清晰掌握运行信息。
  6. 声音提示与安全保护:蜂鸣器在每个阶段结束或异常时发出提示,同时系统具有延时保护和防误操作机制。

2. 系统电路设计

系统硬件以 STC89C52 单片机 为核心,结合 按键模块、继电器执行模块、LCD1602 显示模块、蜂鸣器报警模块 等组成完整的控制系统。其设计思想是模块化、低功耗和可靠性优先。以下将从各个模块进行详细介绍。

2.1 单片机最小系统设计

单片机部分选用 STC89C52,作为全自动洗衣机的主控核心,负责读取用户输入、逻辑判断、时间分配与执行控制。其晶振频率为 11.0592MHz,保证系统稳定运行。

最小系统包括:

  • 时钟电路:由晶振与电容组成,为单片机提供稳定的工作频率。
  • 复位电路:通过电阻和电容延时复位,保证上电初始化正常。
  • I/O接口扩展:部分I/O口连接按键与显示模块,部分用于控制继电器驱动电路。

2.2 按键输入模块

按键用于设定总洗涤时间与启动洗衣流程。设计时采用独立按键结构,接入单片机的 P1 端口。系统包括三个主要按键:

  1. 加键(+):增加洗涤时间,每次增加 1 分钟。
  2. 减键(−):减少洗涤时间,每次减少 1 分钟。
  3. 启动/停止键:启动或终止洗衣流程。

为防止抖动,软件中使用延时消抖算法确保按键动作可靠。

2.3 显示模块设计(LCD1602)

LCD1602 用于显示洗涤时间、当前状态(进水、洗涤、放水、脱水)以及提示信息。显示内容直观、信息量丰富。

显示格式例如:

复制代码
状态:洗涤中
剩余时间:15min

LCD1602 采用 4 位数据线方式与单片机连接,减少了 I/O 占用,P2口用于控制 LCD 的数据线与控制信号 RS、RW、EN。

2.4 继电器控制模块

继电器是系统的执行单元,控制进水阀、电机方向及排水阀。

  • 继电器1:控制进水阀开关。
  • 继电器2:控制电机正转。
  • 继电器3:控制电机反转。
  • 继电器4:控制排水阀及脱水电机。

为防止继电器吸合时干扰单片机运行,设计中在每个继电器驱动端口增加了续流二极管,并采用NPN三极管进行电流放大。

2.5 蜂鸣器与LED指示模块

蜂鸣器用于发出阶段提示与报警信号,LED灯显示系统当前状态(运行、故障、完成)。

  • 蜂鸣器:每个洗涤阶段结束后响三声提示用户。
  • LED灯:工作时常亮,停止后熄灭。

2.6 电机正反转控制电路

电机采用单相交流电机,正反转控制由继电器交替吸合实现。程序中通过定时切换控制端口状态,实现周期性正反转,防止衣物缠绕。


3. 系统程序设计

系统软件采用 C 语言编写,基于 模块化结构设计,包含主程序、按键检测模块、显示模块、时间分配模块、继电器控制模块与蜂鸣器控制模块。整个程序以状态机的形式运行,根据当前阶段自动切换逻辑状态。

3.1 主程序设计思路

主程序负责系统初始化、模式判断、时间分配及各模块调度。其运行流程如下:

  1. 系统上电初始化;
  2. 用户设置总洗涤时间;
  3. 启动洗衣流程;
  4. 按顺序执行进水、洗涤、放水、脱水;
  5. 每个阶段结束后发出蜂鸣提示;
  6. 所有流程结束后显示"洗涤完成"。

主程序伪代码如下:

复制代码
main()
{
    系统初始化();
    while(1)
    {
        读取按键();
        if(启动标志==1)
        {
            执行洗涤流程();
        }
        显示状态();
    }
}

3.2 洗涤流程控制模块

该模块实现自动化的洗涤过程控制,主要包括进水、洗涤、放水、脱水四个阶段。每个阶段由定时器控制持续时间。

复制代码
void wash_process()
{
    // 阶段1:进水
    relay1_on(); // 打开进水阀
    delay(5000); // 模拟进水时间
    relay1_off();

    // 阶段2:洗涤(正反转交替)
    for(int i=0;i<total_time/2;i++)
    {
        relay2_on(); // 正转
        delay(3000);
        relay2_off();
        relay3_on(); // 反转
        delay(3000);
        relay3_off();
    }

    // 阶段3:放水
    relay4_on();
    delay(5000);
    relay4_off();

    // 阶段4:脱水
    relay4_on();
    delay(8000);
    relay4_off();

    buzzer_beep(); // 提示结束
}

该程序保证流程的自动化执行,同时在每次阶段切换时提供延时保护,防止继电器频繁切换引发电气干扰。

3.3 按键输入模块程序

按键模块用于用户设定洗涤时间,采用软件延时消抖:

复制代码
unsigned char key_scan()
{
    if(K1==0){delay(20);if(K1==0){time++;}}
    if(K2==0){delay(20);if(K2==0){time--;}}
    if(K3==0){delay(20);if(K3==0){start_flag=!start_flag;}}
    return time;
}

按键可实时调整洗涤时间,LCD 上的剩余时间会随之更新。

3.4 时间分配与倒计时模块

总洗涤时间由用户设定后自动分配:

  • 第一次洗涤时间 = 总时间 × 1/2
  • 第二次洗涤时间 = 总时间 × 1/3
  • 第三次洗涤时间 = 总时间 × 1/6

倒计时程序如下:

复制代码
void time_countdown()
{
    while(total_time>0)
    {
        total_time--;
        lcd_display_time(total_time);
        delay(60000); // 每分钟递减
    }
}

3.5 显示模块程序

LCD 模块负责输出状态信息和时间提示:

复制代码
void lcd_display()
{
    lcd_clear();
    lcd_write_string(0,0,"状态:洗涤中");
    lcd_write_string(1,0,"剩余时间:");
    lcd_write_num(1,6,total_time);
}

显示信息实时刷新,便于用户查看。

3.6 蜂鸣器报警程序

蜂鸣器用于阶段完成提示或异常报警:

复制代码
void buzzer_beep()
{
    for(int i=0;i<3;i++)
    {
        BUZZER=1;
        delay(300);
        BUZZER=0;
        delay(300);
    }
}

该设计使用户能够直观感知洗涤流程的变化。


4. 系统总体运行原理

系统上电后,用户通过按键设定洗涤时间,LCD 实时显示设置结果。按下启动键后,单片机开始执行洗衣流程。首先打开进水继电器,水位达到设定值后自动停止;接着电机按正反交替运行方式洗涤衣物;完成后打开排水阀放水,最后进入脱水阶段。整个过程中,LCD 显示状态变化,蜂鸣器在每阶段结束时发声提示。

系统内部采用定时中断管理时间流程,确保计时精确。所有继电器控制信号均通过程序逻辑判断输出,避免冲突与误动作。用户在整个操作过程中仅需设定一次时间,即可完成全自动洗涤过程。


5. 总结

本系统通过 51 单片机实现对全自动洗衣机的智能控制,兼顾了可靠性与易用性。设计中采用模块化思想,将硬件与软件功能清晰划分,使系统具备良好的可维护性与扩展性。通过合理的程序设计与硬件保护措施,系统能够在家庭和小型洗衣设备中稳定运行,实现从手动到自动化的高效转变。

相关推荐
帅帅兔子5 小时前
2.4寸SPI串口ILI9341芯片彩色LCD驱动
stm32·单片机·嵌入式硬件·mcu
蓝天居士6 小时前
PY32F040单片机介绍(1)
单片机·国产mcu·1024程序员节
柒月玖.8 小时前
基于AT89C52单片机的计算器设计与仿真
单片机·嵌入式硬件
乐十九8 小时前
物模型详解
嵌入式硬件
czhaii9 小时前
STC32G144K246,高速PWM@240Mhz 运行测试
stm32·单片机·fpga开发
炸膛坦客9 小时前
Cortex-M3-STM32F1 开发:(十一)ARM Cortex-M 内核中的 MPU 和 FPU
arm开发·stm32·嵌入式硬件
✎ ﹏梦醒͜ღ҉繁华落℘10 小时前
单片机开发---分层架构设计
单片机·嵌入式硬件·mongodb
国科安芯11 小时前
AS32S601ZIT2抗辐照MCU在商业卫星飞轮系统中的可靠性分析
服务器·网络·人工智能·单片机·嵌入式硬件·fpga开发·1024程序员节
优信电子11 小时前
电脑控制DFPlayer Mini MP3播放音乐
单片机·串口·嵌入式·mp3·语音播报·串口语音·mp3播报