2021-07-15

智能晾衣

#设计介绍
智能晾衣系统使用开源硬件arduino作为主控,涉及按键开关的使用,雨水感应器的使用和直流电机的使用,还会涉及一些机械的运用。

通电→按键选择模式
①雨水感应模式 → 1号LED指示灯亮
                             →雨水传感器检测外界是否存雨水,并向主控板arduino传输信号
                             →传感器检测不到雨水时,电机执行顺时针转动,推出晾衣架,并当运行到限位开关时停止
                             →传感器检测到雨水时,电机执行逆时针转动,收回晾衣架,并当运行到限位开关时停止
 ② 按键模式 → 2号LED指示灯亮
                       →通过两个按键开关控制电机顺时针或逆时针转动来控制衣架进出
                       →按下按键1,电机执行顺时针转动,推出晾衣架,并当运行到限位开关时停止
                       →按下按键2,电机执行逆时针转动,收回晾衣架,并当运行到限位开关时停止                      

雨水传感器原理:感应板上没有水滴时,DO输出为高电平(1),开关指示灯灭,滴上一滴水,DO输出为低电频(0),开关指示灯亮,刷掉上面的水滴,又恢复到输出高电频(1)
碰撞开关原理:模块输出低电频(0);无碰撞,输出高电频(1)
按键开关:数字电频按下高电频(1),释放低电频(0)
第一行在这里插入图片描述
第一行:雨水传感器DO接入的主控板的管脚数为第 10排信号脚

第二三行:电机接入主控板的管脚数第二和第三排的信号脚,输出的高低电平来控制电机的正转或反转。
第四行:碰撞开关接入第五排信号角,控制电机停止。

第五六行:电机接入主控板的管脚数,第二和第三排的信号角,同时输出低电平时,电机停止。

第七行:雨水传感器DO接入主控板的管角数为第十排的信号脚。

第八九行:电机接入主控板的管脚数,第二和第三排的信号脚,低电平来控制电机的症状或反转。

第十行:碰撞开关接入第十排信号脚,控制电机停止。

第十一十二行:电机接入主控板的管脚数第二和第三排的信号脚同时输出低电平时,电机停止。

在这里插入图片描述
第一行:八号管脚接入一个按键

第二三行:电机接入主控板的管脚数,第二和第三排的信号脚,高低电平来控制电机的正转或反转。

第四行:碰撞开关接入第五排信号角,控制电机停止。

第五六行:电机接入主控板的管脚数,第二和第三排的信号角同时输出低电平时,电机停止。

第七行:九号管脚接入一个按键

第八九行:电机接入主控板的管脚数,第二和第三排的信号角,低电平来控制电机的正转或反转。

第十行:碰撞开关接入第四排信号角,控制电机停止。

第十一十二行:电机接入主控板的管脚数第二和第三排的信号角,同时输出低电平时,电机停止。

arduino代码:

volatile boolean A;


void anzan() {

  if (!digitalRead(8)) {

    digitalWrite(2,HIGH);

    digitalWrite(3,LOW);

    if (!digitalRead(5)) {

      digitalWrite(2,LOW);

      digitalWrite(3,LOW);


    }


  }

  if (!digitalRead(9)) {

    digitalWrite(2,LOW);

    digitalWrite(3,HIGH);

    if (!digitalRead(4)) {

      digitalWrite(2,LOW);

      digitalWrite(3,LOW);


    }


  }

}


void yixai() {

  if (!digitalRead(10)) {

    digitalWrite(2,HIGH);

    digitalWrite(3,LOW);

    if (!digitalRead(5)) {

      digitalWrite(2,LOW);

      digitalWrite(3,LOW);


    }


  } else if (digitalRead(10)) {

    digitalWrite(2,LOW);

    digitalWrite(3,HIGH);

    if (!digitalRead(4)) {

      digitalWrite(2,LOW);

      digitalWrite(3,LOW);


    }

  }

}


void setup(){

  A = false;

  pinMode(7, INPUT);

  pinMode(12, OUTPUT);

  pinMode(11, OUTPUT);

  pinMode(10, INPUT);

  pinMode(2, OUTPUT);

  pinMode(3, OUTPUT);

  pinMode(5, INPUT);

  pinMode(4, INPUT);

  pinMode(8, INPUT);

  pinMode(9, INPUT);

}


void loop(){

  if (digitalRead(7)) {

    delay(10);

    while (digitalRead(7)) {

      delay(10);

    }

    A = !A;

    digitalWrite(12,(!A));

    digitalWrite(11,A);


  }

  if (digitalRead(7) == !A) {

    yixai();


  } else {

    anzan();


  }


}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值