运用光敏传感器和声音传感器控制LED光亮

        在我小学的时候,中午经常去奶奶家吃饭,奶奶家是一个公寓,他家在公寓长廊的尽头,我以前去的时候,就很好奇为什么白天廊灯不会亮,而到了晚上,我跑步带起的声音就会引得整个走廊灯火通明。直到今天我也做出了这样的一个装置,我才深刻明白这里面的道道。

        首先,还是先量代码:

const int ledPin=3;
const int soundPin=A0;
const int lightPin=7;
void setup() {
  // put your setup code here, to run once:
pinMode(ledPin,OUTPUT);
pinMode(soundPin,INPUT_PULLUP);
pinMode(lightPin,INPUT_PULLUP);
Serial.begin(9600);
}

void loop() {
  // put your main code here, to run repeatedly:
int value=analogRead(soundPin);
int bright=digitalRead(lightPin);
Serial.println(value);
if(bright==HIGH)
{
  if(value>600)
  {
    digitalWrite(ledPin,HIGH);
    delay(1000);
    }
  else
  {
    digitalWrite(ledPin,LOW);
    }
  }
else
{
  digitalWrite(ledPin,LOW);
  }
}

        我们用到的主要三个元件分别是LED,用ledPin来表示,并且接在了3号引脚;声音传感器,用soundPin来表示,并且接在了A0处引脚;光敏传感器,用lightPin来表示,并且接在了7号引脚。

        然后第一个setup函数,我们定义了三个元件的输出输入方式;其中ledPin是OUTPUT,soundPin和lightPin是INPUT_PULLUP的这样一个输入上拉模式。并且开启了串口,波率为9600。

        在接下来的loop函数中,首先对soundPin和lightPin的输入值进行初始化,方便后面的计算,其中soundPin的输入值定义为value(有数值的意思),lightPin的输入值定义为bright。Serial.println(value)这个式子非常重要,因为这是我们通过串口监控value值的重要途径。通过串口监视器就可以知道当下的value的值。

        然后是一个if语句的嵌套使用。首先的一个if,判断bright是否为高电平,及是否有灯光照着。若有,则ledPin输出低电平,不亮光。若是bright是高电平,及没有灯光照着,此时执行下一个if语句。在这个语句中,用到了value的值与600的大小比较,value的值受两个因素影响,一个是外界声音,一个则是元件影响。我一开始做的时候一直都是亮光,后来发现,原来是因为value一直是大于600的,只要调节一个元件上的旋钮,就可以改变value的值。如果value>600,说明声音够大,亮光,并且延时;若value<600,说明声音还不很大,不亮光。

        这就是通过运用光敏传感器和声音传感器控制LED光亮。总结下来就是如果外界有灯光,则有声音且达到阙值也不会使led发光,当外界没有灯光时,则声音达到阙值就会使led发光。

        这一装置的一个意义就是大大节约了能量的消耗。

创作不易,请多多关注,点赞,收藏!!!

        

  • 8
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鲁不动AI了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值