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

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

具体讲解

接线
我有一个光敏电阻连接到模拟引脚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!
}
相关文章
|
传感器
DIY_实现光敏电阻传感器简单控制LED
DIY_实现光敏电阻传感器简单控制LED
3638 2
|
4月前
|
存储 供应链 安全
二级医院HIS系统包含哪些子系统?
二级医院HIS系统是医疗信息化核心,涵盖门诊、住院、药房、医技、管理等全流程。由门诊挂号、医生工作站、电子病历、LIS、PACS、财务物资管理及医保接口等子系统构成,支撑诊疗、管理与决策。各系统互联互通,推动数据共享与业务协同,助力智慧医院建设。
220 1
|
Java 数据安全/隐私保护 流计算
10分钟了解Flink Watermark水印
在上一篇中,介绍了Flink里时间的概念和窗口计算,在实际生产过程中,由于网络等原因,许多数据会延迟到达窗口,这种情况Flink如何处理?Watermark登场,本文从这几点进行介绍:水印的概念、水印如何计算、允许延迟和侧道输出、水印生成策略、案例及代码。
10分钟了解Flink Watermark水印
|
安全 Linux API
一篇文章讲明白Metasploit详解详细图文教程
一篇文章讲明白Metasploit详解详细图文教程
1180 0
|
XML SQL 安全
【web渗透思路】敏感信息泄露(网站+用户+服务器)
【web渗透思路】敏感信息泄露(网站+用户+服务器)
1090 0
【web渗透思路】敏感信息泄露(网站+用户+服务器)
|
定位技术 iOS开发
iOS iPhone 修改手机定位虚拟定位
iOS iPhone 修改手机定位虚拟定位
iOS iPhone 修改手机定位虚拟定位
|
Web App开发 JavaScript 开发者
【软件技巧】【截图】浏览器自带的全网页截图工具
【软件技巧】【截图】浏览器自带的全网页截图工具
1183 0
【软件技巧】【截图】浏览器自带的全网页截图工具
|
存储 移动开发
STM32学习笔记(6) 串口通信数据包解析
STM32学习笔记(6) 串口通信数据包解析
836 0
(二)Superset 1.3图表篇——Time-series Table
本系列文章基于Superset 1.3.0版本。1.3.0版本目前支持分布,趋势,地理等等类型共59张图表。本次1.3版本的更新图表有了一些新的变化,而之前也一直没有做过非常细致的图表教程。 而且目前可以参考的资料有限,大部分还需要自己探索。所以本系列文章将对这59张图表的使用做一个整理。 Superset的安装入门,以及数据集的准备,请参考之前的教程,1.3版本依然可用。
630 0
(二)Superset 1.3图表篇——Time-series Table
|
消息中间件 存储 NoSQL
Flink计算pv和uv的通用方法
PV(访问量):即Page View, 即页面浏览量或点击量,用户每次刷新即被计算一次。 UV(独立访客):即Unique Visitor,访问您网站的一台电脑客户端为一个访客。00:00-24:00内相同的客户端只被计算一次。 计算网站App的实时pv和uv,是很常见的统计需求,这里提供通用的计算方法,不同的业务需求只需要小改即可拿来即用。
791 0
Flink计算pv和uv的通用方法