PIR和光线控制的小夜灯-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3252|回复: 2

PIR和光线控制的小夜灯

[复制链接]
发表于 2020-9-22 23:12 | 显示全部楼层 |阅读模式
本帖最后由 topdog 于 2020-9-24 00:47 编辑

解答网友PIR和光线控制的小夜灯的提问,
rgb_pir_1.JPG

1:光线暗和人走近RGB灯亮,或的逻辑关系。Sensor-PIR红外热释电运动传感器能检测运动的人或动物身上发出的红外线,输出开关信号,可以应用于各种需要检测运动人体的场合。详细资料见美科科技WIKI
Sensor-Light-A1是光敏亮度检测传感器模块。光传感器是利用光敏电阻将光信号转换为电信号的传感器,它的敏感波长在可见光波长附近,包括红外线波长和紫外线波长。详细资料见美科科技WIKI
光线暗   ||   人走近       逻辑结果
1           ||        1           ——>1
1           ||        0           ——>1
0           ||        1           ——>1
0           ||        0           ——>0

2:通过if…else语句,用户可以让Arduino判断某一个条件是否达到,并且根据这一判断结果执行相应的程序。

3:四脚共阳极RGB,一般是接高电平,这里介绍一个小技巧,把共阳极作为一个总开关,控制此管脚高电平使能,开灯关灯就非常方便,共阴极则相反。

程序如下:
[pre]const int PIR_PIN = 2;
const int CONTRONL_PIN = 12;
const int RED_PIN = 11;
const int BLUE_PIN = 10;
const int GREEN_PIN = 9;
const int LINGHT_PIN = A0;

void setup()
{
  Serial.begin(115200);
  pinMode(PIR_PIN, INPUT);    //PIR传感器接口
  pinMode(LINGHT_PIN, INPUT); //光线感应
  pinMode(RED_PIN, OUTPUT);   //红接口
  pinMode(BLUE_PIN, OUTPUT);  //蓝接口
  pinMode(GREEN_PIN, OUTPUT); //绿接口
  pinMode(CONTRONL_PIN, OUTPUT);
}

void loop()
{

  bool PIR_State = digitalRead(PIR_PIN);

  /* Serial.println(PIR_State);
  delay(100);
  Serial.println(analogRead(Light_pin));
  delay(100);
  */

  if (analogRead(LINGHT_PIN) < 500 || PIR_State) //环境光线过低或者测到有人亮彩灯
  {
    colorRGB(random(0, 255), random(0, 255), random(0, 255));
  }
  else
  {
    TurnOff();
  }
  delay(1000);
}

void colorRGB(int red, int green, int blue)
{ //循环彩色灯
  digitalWrite(CONTRONL_PIN, HIGH);
  analogWrite(RED_PIN, 255 - red);
  analogWrite(BLUE_PIN, 255 - blue);
  analogWrite(GREEN_PIN, 255 - green);
}

void TurnOff()
{
  digitalWrite(CONTRONL_PIN, LOW);
}[/pre]
发表于 2020-9-29 21:10 | 显示全部楼层
向topdog老师学习
 楼主| 发表于 2020-10-1 22:39 | 显示全部楼层

向沧海笑1122老师学习。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-12-1 01:13 , Processed in 0.082192 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表