基于arduino的光控窗帘_光控窗帘

基于arduino的光控窗帘_光控窗帘课程设计报告设计目的:居民对生活采光很重视,但现在的人们越来越“懒”,对智能化的要求越来越高。为了方便居民在白天把窗帘及时拉开,晚上把窗帘及时拉上,我们设计了光控窗帘。本设计硬件主要是光敏传感器,电机以及单片机;软件主要采用C语言进行编程。同时,为了考虑实际我们还额外加了一些手动装置,以防阴天和雨天等特殊天气。硬件介绍:arduinom2560r3单片机,光敏传感器模块(带宽电压LM393比较器…

大家好,又见面了,我是你们的朋友全栈君。

课程设计报告

设计目的:

居民对生活采光很重视,但现在的人们越来越“懒”,对智能化的要求越来越高。为了方便居民在白天把窗帘及时拉开,晚上把窗帘及时拉上,我们设计了光控窗帘。本设计硬件主要是光敏传感器,电机以及单片机;软件主要采用C语言进行编程。同时,为了考虑实际我们还额外加了一些手动装置,以防阴天和雨天等特殊天气。

硬件介绍:

arduino m2560r3单片机,光敏传感器模块(带宽电压LM393比较器的光敏传感器7.5元),电机驱动(HD74HC14P,ULN2003双芯片电机驱动器11元),led灯,步进电机28BYJ-48(5元),导线若干继电器模块(20元)。

对光的感应我们采用光敏传感器模块,驱动部分我们采用了步进电机,避免了一般电机要用额外电源带动的麻烦,同时为了方便用户,我们还加了两个led指示灯,电机转动拉开窗帘一个指示灯亮,当电机反向转动另一个灯亮。

设备通过光敏传感器的感知,对外界环境光线信号输入到单片机,通过单片机的控制,实现电机的自动开合。

电路图基于arduino的光控窗帘_光控窗帘

基于arduino的光控窗帘_光控窗帘

软件设计

在软件设计上有三点,第一是单片机在感到光线变强时驱动电机正转或光线变暗时是驱动电机反转,第二是在驱动一段时间以后必须停下驱动来达到省电以及省设备的目的,第三就是合理控制电机转动时间来达到窗帘的合理拉合。以下是软件流程:

int Read=A0;                       //定义Read为A0口的值

int value =0;                      //给value赋初始值为0

int i,j=0;

intmotivate=0;                     //定义电机初始状态

void setup(){

pinMode(Read,INPUT);             //定义Read为输入

pinMode(12, OUTPUT);               //定义6个输出口,两个用于led指示灯,四个用于连接双芯片电机驱动器

pinMode(13, OUTPUT);

pinMode(24, OUTPUT);

pinMode(26, OUTPUT);

pinMode(28, OUTPUT);

pinMode(30, OUTPUT);

}

void loop()

{

value= digitalRead(Read);         //读取A0口的值并赋值给value

if(LOW == value && motivate==0)    //如果value值为0,电机为状态0

{

for(i=0;i<500;i++)               //运行电机反转程序500次,

{

digitalWrite(24,LOW);             //步进电机反转驱动四相:0011,1001,1100,0110

digitalWrite(26, LOW);

digitalWrite(28, HIGH);

digitalWrite(30, HIGH);

delay(2);

digitalWrite(24, HIGH);

digitalWrite(26, LOW);

digitalWrite(28, LOW);

digitalWrite(30, HIGH);

delay(2);

digitalWrite(24, HIGH);

digitalWrite(26, HIGH);

digitalWrite(28, LOW);

digitalWrite(30, LOW);

delay(2);

digitalWrite(24, LOW);

digitalWrite(26, HIGH);

digitalWrite(28, HIGH);

digitalWrite(30, LOW);

delay(2);

digitalWrite(12,HIGH);            //点这led指示灯12

digitalWrite(13,LOW);             //关闭led指示灯13

}

}

else

if(HIGH == value  && motivate==0)   //如果value值为1,电机为状态0

{

for(j=0;j<1000;j++)             //运行电机正转程序1000次

{

digitalWrite(24,LOW);             //电机正转程序四相:0110,1100,1001,0011

digitalWrite(26, HIGH);

digitalWrite(28, HIGH);

digitalWrite(30, LOW);

delay(2);

digitalWrite(24, HIGH);

digitalWrite(26, HIGH);

digitalWrite(28, LOW);

digitalWrite(30, LOW);

delay(2);

digitalWrite(24, HIGH);

digitalWrite(26, LOW);

digitalWrite(28, LOW);

digitalWrite(30, HIGH);

delay(2);

digitalWrite(24, LOW);

digitalWrite(26, LOW);

digitalWrite(28, HIGH);

digitalWrite(30,HIGH);

delay(2);

digitalWrite(12,LOW);              //关闭led指示灯12

digitalWrite(13,HIGH);             //点亮led指示灯13

}

}

if(value==digitalRead(Read))        //若valuew值与A0口值相等,

motivate=1;                        //则电机为状态1

else

motivate=0;                        //否则电机为状态0

}

应用

在实际应用中,应该根据窗帘的长度来调节电机每次驱动所转的转数来调节窗帘是否拉到底或开到底。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/152468.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 数据库模型设计,第一范式、第二范式、第三范式简单例子理解

    数据库模型设计,第一范式、第二范式、第三范式简单例子理解有几年经验了,也经历了不少项目,接触了各种数据模型,可是数据库模型设计范式只是知道有这个东西,具体范式的要求是什么呢?你是不是还很模糊?赶紧来普及下吧,第一范式、第二范式、第三范式简单例子理解。

    2022年5月23日
    56
  • 密码学笔记

    密码学笔记

    2021年5月19日
    99
  • mysql datetime格式化日期(日期格式化)

    Mysql日期格式化查询问题写sql语句时发现怎么都查不出来数据,后来发现数据格式化后和前台传入的数据格式不一样。前台传入数据格式‘2018-11-5’原先sql查询语句(mybatis中)SELECTcount(*)count,a.store_idstoreid,DATE_FORMAT(a.timeone,’%Y-%m-%d’)mytime,s.abbrev…

    2022年4月13日
    117
  • 情感词典文本情感分析_情感名词

    情感词典文本情感分析_情感名词基于情感词典的文本情感分类传统的基于情感词典的文本情感分类,是对人的记忆和判断思维的最简单的模拟,如上图。我们首先通过学习来记忆一些基本词汇,如否定词语有“不”,积极词语有“喜欢”、“爱”,消极词语有“讨厌”、“恨”等,从而在大脑中形成一个基本的语料库。然后,我们再对输入的句子进行最直接的拆分,看看我们所记忆的词汇表中是否存在相应的词语,然后根据这个词语的类别来判断情感,比如“我喜欢数学”,“喜

    2022年8月23日
    9
  • 被问到项目亮点、难点、遇到的问题、解决思路

    被问到项目亮点、难点、遇到的问题、解决思路面试中被问到你的项目亮点 难点 遇到的问题 解决思路是不是很蒙 现在我拆分一下问题什么是项目亮点 你负责的业务是什么 学会发现问题 你真的想过业务是什么吗 有为业务想过什么吗 有了你 业务有什么不同吗 能不能 5 分钟说明白 你负责的业务是什么 可有想过有没有说到位 甚至答非所问这里谈谈我个人对业务的理解 或许没有普遍意义 所以仅供参考

    2025年8月3日
    2
  • python如何设置窗口背景色为白色_pycharm怎么将背景颜色设置成白色?「建议收藏」

    python如何设置窗口背景色为白色_pycharm怎么将背景颜色设置成白色?「建议收藏」方法:1、在pycharm中,点击顶部的“文件”选项;2、点击“设置”按钮,进入设置页面;3、点击“编辑器”选项,再点击“颜色&字体”选项;4、点击“控制台的颜色”选项,在右侧的“scheme”菜单中,选择“default”选项,点击确定即可。pycharm背景颜色设置成白色的方法1、如果没有安装pycharm可以先进行安装,安装完成之后我们点击桌面的pycharm图标进入首页。2、进入之…

    2022年8月28日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号