导语:闲来无事,改装了一下老家半自动洗衣机,家里老人用抽水井洗衣服,所以不能使用全自动洗衣机,半自动洗衣机需要频繁抽水、放水,所以就想到用arduino r3做了个电路改装了一下。
优点:减少人工操作的等待;非破坏性,不影响半自动洗衣机原功能。
功能模块:
* 电源开关;按下电源开关,禁用手动洗衣旋钮
* 手动加水按键监测;手动加水计时;
* 加水继电器;水位监测;
* 模式选择:按下洗衣按钮后,指示灯闪烁6秒,,期间再次按下开始按键则进入“快速模式”;无操作则默认浸泡洗衣模式;
* 洗衣电机正转6s;暂停2s;洗衣电机反转6s;暂停2s;监测水位;洗涤6分钟;浸泡20分钟;洗涤15分钟;
* 放水开关打开继电器;放水开关打开监测;放水4分钟;放水开关关闭;放水开关关闭监测;
* 运行指示灯;
* 加水超量自动停止加水,并闪烁加水指示灯;
* 不加水直接启动则自动定量加水;
提示信息:
* 加水按键初始状态错误,加水按键指示灯闪烁;将声音提示改为LED状态提示;
* 将声音提示改为LED状态提示:
* 0加水按键初始状态警告(加水按键指示灯闪烁);
* 1暂停
* 2漏水警告(加水按键指示灯点亮时,启动按键指示灯闪烁2次);
* 3放水未完成警告(加水按键指示灯点亮时,启动按键指示灯闪烁3次。
材料明细:arduino_R3主板,水位探头3个,放水按键开关3个,继电器3组12个,60A固态继电器1个(用于控制潜水泵抽水),电磁阀(用于控制放水。)
程序内容:
//定义常量:
long effluent_t = 280LL*1000; //放水时长4.66分钟
long wash_t = 900LL*1000; //洗衣时长15分钟
long rinse_t = 480LL*1000; //漂洗时长8分钟
long steep_t = 1200LL*1000; //浸泡时长20分钟
long wash_run_t = 60LL*100; //洗衣电机转动时长6s
long wash_stop_t = 24LL*100; //洗衣电机暂停时长2.4s
//输入输出引脚定义
int inflow_s = 2; //自动加水继电器 输出
int inflow_b = 3; //手动加水按键 输入
int effluent_open_s = 5; //自动放水开关打开电机控制继电器 输出
int effluent_open_c = A3; //自动放水开关打开红外检测 输入
int effluent_close_s = 4; //自动放水开关关闭电机控制继电器 输出
int effluent_close_c = A2; //自动放水开关关闭红外检测 输入
int effluent_turn_s = 6; //自动放水开关控制切换继电器 输出
int wash_s1 = 7; //洗衣电机正转 输出
int wash_s2 = 8; //洗衣电机反转 输出
int start_b = 9; //洗衣启动按键监测 输入
int start_led = 10; //洗衣启动指示灯 输出
int inflow_led = 11; //加水指示灯 输出
int hand_control_stop = 12; //切断手动洗衣旋钮控制继电器 输出
int water_value_low_c = A1; //水量检测 警戒低水位监测 输入
int water_value_high_c = A0; //水量检测 警戒高水位监测 输入
//功能变量:
//变量:
long inflow_t = 0; //加水时长变量(自动记录手动加水时长,洗衣完成后清零
unsigned long n; //辅助计算加水时,程序运行周期变量
long t; //辅助计算加水时长变量
int m; //水量监测辅助变量
int inflow_n = 0; //加水判断辅助变量
int inflow_button_check = 0; //初次运行时检查加水按钮是否被按下
int effluent_n = 0; //放水开关状态检查辅助变量
int mod_choice = 0; //洗衣模式选择
int inflow_n_add = 0; //补充加水判断变量
//等待函数----------------------------------------------------
int wait_program(int wait_t)
{
for(int i = 0; i < wait_t/50; i = i + 51)
{
if(digitalRead(start_b) == LOW)
{
delay(300); //防止按键按下时间过长导致错误
do
{
led_waring_program(1);
}while(digitalRead(start_b) == HIGH);
de