基于arduino的灯光控制(easy版)

本文记录了一位控制专业学生使用Arduino实现的照明控制系统,该系统结合红外感应和手动按钮,实现自动和手动切换灯光。红外避障模块作为感应设备,检测到障碍物时点亮LED,而按钮则用于手动控制灯的开关。作者分享了代码实现和接线细节,并提到在没有专用画图软件的情况下进行设计的挑战。
摘要由CSDN通过智能技术生成

前述

本人在某沿海城市就读,主要学习控制专业。目前本科记录一下课设生活,之后研究生阶段会搞一些关于嵌入式方面的知识。因为保送了所以大四还有些空余时间到时候也会记录自己的毕设内容,其余时间跟着研究生导师看一些论文搞一些实际的应用,感觉目前学得很杂,但是还是想记录一下自己的科研生活吧。

写论坛的目的也是为了能让自己学得知识更好的表述出来,有利于自己或者其他同学的学习,有问题也可以指出,还是个小菜鸟。

提示

我自己已经把这个课设写了wiki所以论坛的内容我直接copy一下,格式不兼容我会更改,但如果有没有注意到的地方还请见谅。

这个课设很遗憾我没有找到合适的画图软件,因为VBB的模块太少只能画出板子和灯,其他的我还没有探索,见谅。

基于Arduino的照明控制系统

首先我在设计过程中先是实现感应功能,其功能实现是要通过红外感应的,因为没有买人体红外感应模块所以我们暂用红外避障模块来代替。

红外避障模块的感应范围较红外感应模块来的小很多,但实现内容差不多,可以近似来代替。

这是一个简单的红外感应程序,如果感应到障碍物他就会亮灯,如果没有感应到障碍物他就会关闭。

代码:

/————————————————————————————————————————/
int LED=2;

int RedBody=1;
void setup() {
    pinMode(2, OUTPUT);
    digitalWrite(2, LOW);
    pinMode(RedBody,INPUT_PULLUP);
}

void loop() {
  if(digitalRead(RedBody)==LOW)
  {
    digitalWrite(2, HIGH);

  }

if(digitalRead(RedBody)==HIGH)
    {

     digitalWrite(2, LOW);  

    }
}
/————————————————————————————————————————/


接下来我想实现一个简单的照明控制。

工况:可以手动控制也可以通过红外感应来实现灯亮灭的照明控制,如果人走开等会熄灭有时候会产生一些问题,比如人只是去拿一个东西或上厕所,所以我只实现感应亮灯不进行灭灯行为。
接线图我这边因为还没有下专门的Arduino的画图软件所以我这里口述一下:
所用配件:
三个引脚的红外避障模块
三个引脚的按钮
有杜邦线若干
电阻(分压电阻)
两个模块的Vcc都接在Arduino的+5v上,GND接在Arduino的GND上
红外模块的输出引脚接在1
开关的s引脚接在4
我们通过2口连接led小灯和一个电阻,最后接地。

代码如下:

/————————————————————————————————————————/
 volatile boolean LED;
 int RedBody=1;
 int buttonPin=4;

 
void setup() {
  // put your setup code here, to run once:
    pinMode(2, OUTPUT);
    digitalWrite(2, LOW);
    pinMode(RedBody,INPUT_PULLUP);
    pinMode(buttonPin,INPUT);
    LED=0;
}

void loop() {
  // put your main code here, to run repeatedly:
  if(digitalRead(RedBody)==LOW)
  {
    digitalWrite(2, HIGH);
  }
  if(digitalRead(buttonPin)==LOW)
  {
    delay(50); 
    if(digitalRead(buttonPin)==LOW)
    {
      LED=!LED;
      digitalWrite(2,LED);
      while(digitalRead(buttonPin)==LOW)
        {    }  
    }
  }
/————————————————————————————————————————/


loop中循环的主题主要分为两部分:第一个if主要是实现红外避障(我们这里实际上是用来红外感应的)第二个if是现实小灯电动控制的。
本次设计从3:30-6:40
就我而言难点是实现按钮状态的保持,因为我不能一直按住按钮实现灯亮,所以等进行保持功能。

放张我在图书馆拍的图

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值