常用传感器讲解十--光传感器根据亮度安排灯

简介: 常用传感器讲解十-

具体讲解

接线
我有一个光敏电阻连接到模拟引脚0(任何模拟引脚都可以工作)和面包板右侧的5V电压。它通过接地的1K欧姆电阻器运行。我将面包板另一侧的LED(任何颜色)连接到数字引脚13(任何数字引脚都可以工作)和接地的220欧姆电阻(100欧姆也可以工作)。在第一个LED的右侧,通过不同的数字引脚,以相同的方式为不同颜色的LED接线。

这个怎么运作
如果光敏电阻读取的值大于450,则显示“It is quite light!”。在串行监视器上,然后关闭所有LED,如下所示:

if(light > 450) { // If it is bright...
Serial.println("It is quite light!");
digitalWrite(13,LOW); //turn left LED off
digitalWrite(12,LOW); // turn right LED off
}
如果读取的值介于230到450之间,则会打印“It is average light!”。在串行监视器上,并打开左侧的LED,如下所示:

else if(light > 229 && light < 451) { // If it is average light...
Serial.println("It is average light!");
digitalWrite(13, HIGH); // turn left LED on
digitalWrite(12,LOW); // turn right LED off
}
这仅使我们得到低于230的值。如果该值小于230,则打印“It is quite dark!”。在串行监视器上,并打开两个LED,如下所示:

else { // If it's dark...
Serial.println("It is pretty dark!");
digitalWrite(13,HIGH); // Turn left LED on
digitalWrite(12,HIGH); // Turn right LED on
}
我在循环末尾添加了1000的延迟,以防止信息超载到串行监视器中,如下所示:

delay(1000); // don't spam the computer!

电路连接

截屏2023-12-27 下午7.35.30.png

代码实现

int light = 0; // store the current light value

void setup() {
   
   
    // put your setup code here, to run once:
    Serial.begin(9600); //configure serial to talk to computer
    pinMode(13, OUTPUT); // configure digital pin 13 as an output
    pinMode(12, OUTPUT); // configure digital pin 12 as an output
}

void loop() {
   
   
    // put your main code here, to run repeatedly:
    light = analogRead(A0); // read and save value from PR

    Serial.println(light); // print current light value

    if(light > 450) {
   
    // If it is bright...
        Serial.println("It is quite light!");
        digitalWrite(13,LOW); //turn left LED off
        digitalWrite(12,LOW); // turn right LED off
    }
    else if(light > 229 && light < 451) {
   
    // If it is average light...
        Serial.println("It is average light!");
       digitalWrite(13, HIGH); // turn left LED on
       digitalWrite(12,LOW);  // turn right LED off
    }
    else {
   
    // If it's dark...
        Serial.println("It is pretty dark!");
        digitalWrite(13,HIGH); // Turn left LED on
        digitalWrite(12,HIGH); // Turn right LED on
    }
    delay(1000); // don't spam the computer!
}
相关文章
|
Ubuntu
避坑指南之Samba4在Ubuntu20.04 编译安装指南
避坑指南之Samba4在Ubuntu20.04 编译安装指南
1141 0
避坑指南之Samba4在Ubuntu20.04 编译安装指南
|
传感器
DIY_实现光敏电阻传感器简单控制LED
DIY_实现光敏电阻传感器简单控制LED
3277 2
|
Ubuntu Linux Windows
两种Ubuntu和Windows互相共享文件夹的方法
两种Ubuntu和Windows互相共享文件夹的方法
Centos7.6 cmake版本升级至3.21.0
Centos7.6 cmake版本升级至3.21.0
851 0
|
定位技术 iOS开发
iOS iPhone 修改手机定位虚拟定位
iOS iPhone 修改手机定位虚拟定位
iOS iPhone 修改手机定位虚拟定位
|
SQL 存储 分布式计算
阿里云产品MaxCompute介绍|学习笔记
快速学习阿里云产品MaxCompute介绍
1941 0
阿里云产品MaxCompute介绍|学习笔记
|
Web App开发 JavaScript 开发者
【软件技巧】【截图】浏览器自带的全网页截图工具
【软件技巧】【截图】浏览器自带的全网页截图工具
932 0
【软件技巧】【截图】浏览器自带的全网页截图工具
|
存储 缓存 自然语言处理
手把手教你Nginx常用模块详解之ngx_stream_ssl_module(七)
手把手教你Nginx常用模块详解之ngx_stream_ssl_module(七)
1025 0
|
JSON JavaScript 前端开发
JSON对象与字符串之间的转换
JSON对象与字符串之间的转换 JavaScript中内置了一个JSON对象,可以用来进行JSON与字符串之间的转换。
JSON对象与字符串之间的转换
(二)Superset 1.3图表篇——Time-series Table
本系列文章基于Superset 1.3.0版本。1.3.0版本目前支持分布,趋势,地理等等类型共59张图表。本次1.3版本的更新图表有了一些新的变化,而之前也一直没有做过非常细致的图表教程。 而且目前可以参考的资料有限,大部分还需要自己探索。所以本系列文章将对这59张图表的使用做一个整理。 Superset的安装入门,以及数据集的准备,请参考之前的教程,1.3版本依然可用。
581 0
(二)Superset 1.3图表篇——Time-series Table