智能晾衣架(二)--功能实现

news2025/6/30 15:37:40

本文素材来源于红河学院 工学院

作者:赵德森  张艺锦  潘志慧  曹紫康

指导老师:江洁  张龙超

1. 自动升降功能

       我们设计时采用了热释电传感器(人体红外传感器),在热释电传感器感应到有人靠近时,晾衣架通过四杆机构自动下降到合适人身高的位置,这时人们便可以开始悬挂衣物,在悬挂结束后使用者只需走出相应位置,晾衣架就能自动升高到适合晾晒的位置并开始晾晒。

2. 原地晾晒功能

       通过电机来作为动力原件,滑轨作为执行装置,单片机作为控制。让人们在衣服晾晒过程中,晾晒上一件衣物后只需要按动相对的按钮,滑轨便会移动一定距离,从而使得人们在原地经行晾晒,但衣服就能挂满整个阳台。而对于大型衣服(床单、被套等)的晾晒,原地晾衣也能提供极大的便利,在晾晒时人们只需要先挂上大型衣物其中的一角,再按动按钮让其移动到相应位置,再挂上另外一角便可。

 

3. 自动找光功能

       为节约成本,我们采用自然光(太阳光)来代替紫外线灯。在设计中,我们采用了光强传感器和丝杆相连接,让我们的晾衣系统可以通过丝杆进行整体移动,在通过光强传感器找到光线最强的位置就停止,从而保证衣物能得到充足的阳光照射和杀菌。

 

4. 自动避雨功能

       在日常生活中,衣物在晾晒过程中可能会出现极端暴雨天气,在这种天气下,原本已经晾晒好的衣物很容易受到雨水的侵蚀,因此我们通过雨滴传感器设计了自动避雨功能,让衣服在晾晒时候免受雨水等极端天气的侵蚀。

 

5. 一键收衣功能

       为给使用者提供收取衣物的方便,我们设计了一键收衣功能,通过滑轨与凸轮配合使用,让使用者避免了繁琐的收衣过程,在使用中只需要按动相应按钮就能完成衣物的收取,为使用者提供了极大的便利。 

 6. 样机设计及调试

       本作品设计的智能晾衣架一共使用了5个电机和1个舵机带动相应的传动机构进行配合运动,从而实现智能晾衣架的晾晒和收取更加智能化。电机与丝杆和四杆机构相结合控制了晾衣架的升降和伸缩等动作。其中电机带动四杆机构带动晾衣架的升降,丝杆则带动晾衣架水平伸出与收回。传感器与单片机进行配合,单片机控制着机械结构,根据自己的需求和环境的变化来控制晾晒过程,大大减少了人们在晾晒衣物上面的精力,做到了省时省力。而雨滴传感器和光强传感器在晾晒过程中实时反馈着晾晒环境给单片机,使单片机可以及时应对突发情况。

       本作品设计的智能晾衣架样机整体为大框架式结构,整体均由亚克力材料搭接而成,从结构的紧凑性和空间利用率来看,可能会存在一定的不足。

7. 程序代码

       我们的晾衣架通过机械机构与单片机的结合做到了晾衣、找光、躲雨、一键收衣智能化的晾衣架,解决了人们日常生活的困扰,做到了深省时省力,将日常生活的“琐事”与现代科技想融合。以下就是智能晾衣架的相关程序。

(1) 自动升降、原地晾衣、一键收衣部分

#include <Servo.h>

Servo servo_pin_3;

void setup()

{

  pinMode( 17, INPUT);

  pinMode( 18, INPUT);

  pinMode( 16, INPUT);

  pinMode( 14, INPUT);

  servo_pin_3.attach(3);

  pinMode( 5 , OUTPUT);

  pinMode( 6 , OUTPUT);

  pinMode( 9 , OUTPUT);

  pinMode( 10 , OUTPUT);

}

void loop()

{

  if (!( digitalRead(16) ))

  {

    servo_pin_3.write( 4 );

    delay( 500 );

    digitalWrite( 5 , HIGH );

    digitalWrite( 6 , LOW );

    delay( 10000 );

  }

  else

  {

    servo_pin_3.write( 90 );

    digitalWrite( 5 , LOW );

    digitalWrite( 6 , LOW );

  }

  if (!( digitalRead(18) ))

  {

    digitalWrite( 9 , HIGH );

    digitalWrite( 10 , LOW );

    if (!( digitalRead(17) ))

    {

      digitalWrite( 9 , LOW );

      digitalWrite( 10 , LOW );

    }

  }

  else

  {

    digitalWrite( 9 , LOW );

    digitalWrite( 10 , HIGH );

    if (!( digitalRead(14) ))

    {

      digitalWrite( 9 , LOW );

      digitalWrite( 10 , LOW );

    }

  }

}

 (2)自动避雨、自动找光部分

void setup()

{

  pinMode( 17, INPUT);

  pinMode( 16, INPUT);

  pinMode( 14, INPUT);

  pinMode( 5 , OUTPUT);

  pinMode( 6 , OUTPUT);

  pinMode( 9 , OUTPUT);

  pinMode( 10 , OUTPUT);

}

void loop()

{

  if (!( digitalRead(14) ))

  {

    if (!( digitalRead(17) ))

    {

      digitalWrite( 5 , LOW );

      digitalWrite( 6 , LOW );

    }

    else

    {

      digitalWrite( 5 , HIGH );

      digitalWrite( 6 , LOW );

    }

  }

  else

  {

    if (( ( analogRead(18) ) > ( 870 ) ))

    {

      digitalWrite( 5 , LOW );

      digitalWrite( 6 , LOW );

    }

    else

    {

      if (!( digitalRead(17) ))

      {

        digitalWrite( 5 , LOW );

        digitalWrite( 6 , HIGH );

        delay( 9000 );

      }

      else

      {

        digitalWrite( 5 , HIGH );

        digitalWrite( 6 , LOW );

      }

    }

  }

  if (!( digitalRead(16) ))

  {

    digitalWrite( 9 , HIGH );

    digitalWrite( 10 , LOW );

    delay( 800 );

  }

  else

  {

    digitalWrite( 9 , LOW );

    digitalWrite( 10 , LOW );

}

 关于智能晾衣架的完整内容可参考智能晾衣架

-----------------------------------------------完结---------------------------------------------------

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/28905.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++:内存管理:C++内存管理详解(二):带你攻破内存管理

前言&#xff1a; 任何程序运行起来都需要分配内存空间存放该进程的资源信息&#xff0c;C程序也不例外。C程序中的变量、常量、函数、代码等等信息所存放的区域都有所不同&#xff0c;不同的区域又有不同的特性。 欺骗C进程 每一个C语言的程序被执行起来的时候系统为了方便开…

字符串的简单介绍和字符串的大小比较

以前就写过一篇关于String的文章&#xff0c;今天再来写一篇&#xff0c;更加深入了解一下String类 &#x1f550;1.String类的定义 &#x1f551;2.String类的创建 &#x1f552;3.字符串的大小比较 1.之前在C语言中我们已经学到了字符类型&#xff0c;但是C语言没有Strin…

Oracle-Rman duplicate文件坏块问题处理ORA-19849 19612

前言: 最近&#xff0c;在使用rman duplicate进行备库环境搭建时&#xff0c;遇到了ORA-19849 19612坏块报错&#xff0c;最终分析是发现由于网络的配置导致。 问题: 在 ORACLE 12.2.0.1.180417 通过RMAN duplicate进行备库初始化&#xff0c;在复制文件的过程中&#xff0c;…

FTP服务器移植到Linux开发板

FTP服务器移植到Linux开发板 提示&#xff1a;写完文章后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录FTP服务器移植到Linux开发板前言一、vsftpd源码下载二、vsftpd移植及配置1.vsftpd移植2.vsftpd配置2.1 配置vsftpd.conf2.2 添加新用户2…

LVS+Keepalived群集

目录 一.keeepalived工具介绍 1.1 专为LVS和HA设计的一款健康检查工具 1.2 Keepalived实现原理剖析 1.3 VRRP工作过程 1.4 Keepalived&#xff0c;VRRP及其工作原理 1.5 Keepalived体系主要模块及其作用 二、LVSKeepalived 高可用群集的搭建步骤 1、配置负载调度器&…

项目管理(PMO的作用)

项目管理办公室 (PMO) 是对与项目相关的治理过程进行标准化&#xff0c;并促进资源、方法论、工具和技 术共享的一个组织结构。PMO 的职责范围可大可小&#xff0c;从提供项目管理支持服务&#xff0c;到直接管理一个 或多个项目。 PMO的三种类型&#xff1a; PMO的作用&#…

ppt背景图片怎么设置?6步教你快速搞定!

在制作 ppt的过程中&#xff0c;需要将一些内容进行设置&#xff0c;来保证整体美观&#xff0c;也就是将背景图片设置好。背景图片设置的好&#xff0c;可以很好地体现页面上的内容&#xff0c;提高页面上的内容展示效果。所以大家在制作 ppt时&#xff0c;需要将一些背景图片…

进程和线程详解

目录 前言&#xff1a; 操作系统定位 并发 并行 并发 进程 描述 PCB 管理 内存管理 进程间通信 线程 小结&#xff1a; 前言&#xff1a; 当一个程序运行起来时&#xff0c;操作系统要为之分配一些资源&#xff0c;这样的运行起来的程序称之为一个进程。为了有效解…

huffman编译码

目录 1.算法描述 2.仿真效果预览 3.MATLAB部分代码预览 4.完整MATLAB程序 1.算法描述 利用哈夫曼编码进行信息通信可以较大提高信道利用率,缩短信息传输时间,降低传输成本。但是,这要求在发送端通过一个编码系统对待传数据预先编码;在接收端将传来的数据进行译码(复原)。对…

Python期末复习题:文件

Python期末复习题&#xff1a;文件 文章目录Python期末复习题&#xff1a;文件一、二手房数据统计二、学生成绩统计一、二手房数据统计 附件文件house.csv 中存储一些二手房数据&#xff0c;中文编码为GBK&#xff0c;对文件中的数据进行统计分析。 文件中数据格式如下所示&…

理解Attention机制的query key value

背景 在Attention机制引入前&#xff0c;自然语言处理里的深度学习模型有以下缺点&#xff1a; 长序列的推理存在信息损失/梯度消失&#xff1a;输入序列越长&#xff0c;模型越难保存初始输入信息。运算量大并且不能并行&#xff1a;RNN的每一步推理都是基于上一个步的结果。…

Python小游戏自己动手编写,你能写出几个(分享版)

今天分享一个有趣的Python游戏库freegames&#xff0c;它里面包含经典小游戏&#xff0c;像贪吃蛇、吃豆人、等等。可以通过1行代码重温这些童年小游戏&#xff0c;后面还会分享源码&#xff0c;可以自己学习游戏编写&#xff0c;相信你会超有成就感&#xff01; Paint 涂鸦 在…

Springboot Websocket一般封装方法

此方法不是唯一&#xff0c;只是自己对于Springboot中关于Websocket处理思路比较清晰的一种&#xff0c;在此记录下来。总共不过就四个文件而已。 一、创建Springboot项目&#xff0c;添加不可或缺的pom <dependency><groupId>org.springframework.boot</grou…

内存模块 --- 基础扫盲

SDRAM synchronous dynamic random-access memory 同步动态随机存储器 同步&#xff1a;需要同步时钟支持工作&#xff0c;内部命令的发送与数据的传输都是以这个时钟为基准 动态&#xff1a;内部的存储阵列需要不断地刷新来保证数据不丢失 随机&#xff1a;可以自由地在指定地…

MyBatis进阶版

本文有点难 目录 1.一些区分 1.1参数占位符#{}和${} 1.1.1SQL注入 1.1.2like查询 1.2resultType和resultMap 2.映射查询 2.1一对一表映射 2.2一对多表映射 3.动态SQL 3.1标签 3.2标签 3.3标签 3.4标签 3.5标签 1.一些区分 1.1参数占位符#{}和${} ①什么是#{}&a…

【CSS】表布局,浮动布局

❤️ Author&#xff1a; 老九 ☕️ 个人博客&#xff1a;老九的CSDN博客 &#x1f64f; 个人名言&#xff1a;不可控之事 乐观面对 &#x1f60d; 系列专栏&#xff1a; 文章目录表布局表层表标题(caption)border-collapse边框隐藏表大小table-layout(表宽度)vertical-align例…

你安全吗?丨虎云系统“后门”

作者&#xff1a;黑蛋 在电视剧《你安全吗&#xff1f;》中&#xff0c;马平川这个人物已经慢慢浮出水面&#xff0c;算是此部电视剧幕后的最大反派&#xff0c;他明面上是虎迫集团的技术总监&#xff0c;是虎云系统的负责人&#xff0c;开发者。背后却在泰曼达有着诈骗基地&a…

2022年11月21日13:32:00——T5——JS对象与Date日期函数

1、JavaScrip对象的使用&#xff1a; /** * 1、对象的声明赋值使用的是{}花括号&#xff0c;大括号 * 2、对象中的值以key:value的格式进行赋值&#xff0c;多个值中间使用【,】区分 * 3、获取对象中的值的方法需要通过[]并给与key名的方式获取&…

电脑怎么设置开机密码?简单几步给你的电脑“上锁”

在我们日常生活中&#xff0c;最常见的就是开机密码了&#xff0c;而电脑作为我们使用频率最高也是最复杂的设备&#xff0c;其安全性也是非常重要的&#xff0c;那么电脑怎么设置开机密码&#xff1f;那么今天我们就来说一说开机密码的设置方法&#xff01;为了更安全&#xf…

Essay写作字数怎么正确进行删减?

对于留学生来说&#xff0c;Essay写作伴随着整个留学生活。正因为留学生大量的Essay作业&#xff0c;不少留学生为了规定的Essay字数而发愁&#xff0c;毕竟既不能写得太少&#xff0c;又不能写得太多&#xff0c;所以很纠结。那么如何根据老师规定的字数进行删减呢&#xff1f…