光敏传感器


光阻器是一个模拟传感器,作用类似于可变电阻器。当传感器暴露在光线下时,传感器的电阻降低。我们可以使用模拟输入引脚读取光电阻器上的电压,这与光阻器的电阻直接相关。

引脚名称

名字 描述
VCC 正电源
GND
DO 数字输出
AO 模拟输出

操作

光阻传感器模块包括一个LDR(光依赖电阻器)系列与10K电阻器。AO 销连接 LDR 和 10K 电阻器。

AO 端上的电压取决于照明 - 即落在传感器上的光量。您可以通过将光驱光传感器的 AO 端连接到模拟输入引脚,然后使用该功能来读取此电压。analogRead()

条件 光照强度 LDR 阻值 电压 analogRead(value)
满月 0.1 1.25MΩ 4.96 1016
深暮 1 250kΩ 4.81 985
黄昏 10 50kΩ 4.17 853
计算机监视器 50 16.2kΩ 3.09 633
楼梯照明 100 9.98kΩ 2.50 511
办公室照明 400 3.78kΩ 1.37 281
阴天 1,000 1.99kΩ 0.83 170
全日光 10,000 397Ω 0.19 39
直射 100,000 79Ω 0.04 8

代码解析:

  1. 换算函数analogRead()
// 根据表格选择正确的GAMMA和RL10
const float GAMMA = 0.7;
const float RL10 = 50;     //光照强度为10,相当于表格黄昏的电阻50K欧// Convert the analog value into lux value:
int analogValue = analogRead(A0);
float voltage = analogValue / 1024. * 5;
float resistance = 2000 * voltage / (1 - voltage / 5);
float lux = pow(RL10 * 1e3 * pow(10, GAMMA) / resistance, (1 / GAMMA));

将返回值转换为照明值的以下代码(在 lux 中):analogRead()
RL10:光敏电阻在10lux照明水平下的电阻,查表可得:光照强度为10,相当于表格黄昏的电阻50K欧。
GAMMA:log(电阻值®) / log(光照强度(lux))图的斜率

  1. LCD位置设置函数lcd.setCursor(2, 0)
    参数
    2:开头跳过两格
    0:第一行

模拟器示例

1.数字仿真

点击此处Photoresistor Digital Example开始仿真

2.模拟仿真

点击此处Photoresistor Analog Example开始仿真

源代码

1.数字仿真代码

#include <LiquidCrystal_I2C.h>#define LDR_PIN 2LiquidCrystal_I2C lcd(0x27, 20, 4);void setup() {pinMode(LDR_PIN, INPUT);lcd.init();lcd.backlight();
}void loop() {lcd.setCursor(2, 0);lcd.print("Room: ");if (digitalRead(LDR_PIN) == LOW) {lcd.print("Light!");} else {lcd.print("Dark  ");}delay(100);
}

2.模拟仿真代码

/*Photoresistor (LDR) Analog DemoCopyright (C) 2021 Uri Shaked.https://wokwi.com/arduino/projects/305193627138654786
*/#include <LiquidCrystal_I2C.h>#define LDR_PIN 2// LDR Characteristics
const float GAMMA = 0.7;
const float RL10 = 50;LiquidCrystal_I2C lcd(0x27, 20, 4);void setup() {pinMode(LDR_PIN, INPUT);lcd.init();lcd.backlight();
}void loop() {int analogValue = analogRead(A0);float voltage = analogValue / 1024. * 5;float resistance = 2000 * voltage / (1 - voltage / 5);float lux = pow(RL10 * 1e3 * pow(10, GAMMA) / resistance, (1 / GAMMA));lcd.setCursor(2, 0);lcd.print("Room: ");if (lux > 50) {lcd.print("Light!");} else {lcd.print("Dark  ");}lcd.setCursor(0, 1);lcd.print("Lux: ");lcd.print(lux);lcd.print("          ");delay(100);
}

结束

不是每个人都能功成名就,我们中有些人注定要在日常生活的点滴中寻找生命的意义。 – 《生活大爆炸》

零成本学arduino教程——光敏电阻传感器相关推荐

  1. 零成本学arduino教程——热敏电阻传感器

    模拟温度传感器:NTC(负温度系数)热度. 你可以想到一个热敏电阻非常类似于光敏电阻,但决定热敏电阻温度有多种因数.温度变化也改变,阻力也改变. 引脚名称 名字 描述 VCC 正电源 OUT 输出信号 ...

  2. 零成本学arduino教程——74hc165扩展寄存器教程

    原理图 引脚名称 针 描述 D0-D7型 并行输入 PL 并联负载(低电平有效) CP 串行时钟 CE 时钟使能(低电平有效) Q7 串行输出 Q7_N 反相串行输出(通常不使用) DS 串行输入* ...

  3. 零成本学arduino教程—— joystick操纵杆

    joystick操纵杆 带两个轴(水平/垂直)和一个集成按钮的模拟操纵杆. 引脚名称 名字 描述 VCC 正电源 VERT 垂直轴输出(模拟) HORZ 水平轴输出(模拟) SEL 按钮 GND 地 ...

  4. 零成本学arduino——74hc595寄存器教程

    本文介绍如何用arduino控制74hc595 1.知识预览 对74hc595寄存器进行介绍 shiftOut()函数介绍 对控制程序进行介绍 2.仿真预览 点击74hc595开始仿真 3.74hc5 ...

  5. 零成本学Arduino单片机之入门

    图1 Arduino单片机的Proteus仿真 我的Arduino博客:http://www.eefocus.com/zhang700309/blog/ 一.前言      Arduino是由Mass ...

  6. 视频教程- 办公三部曲—零基础学WORD教程-Office/WPS

    办公三部曲-零基础学WORD教程 微博认证教育博主,office及设计专业培训讲师.百度.新浪.搜狐.网易等自媒体签约作者 Bob ¥59.00 立即订阅 扫码下载「CSDN程序员学院APP」,100 ...

  7. GitHub热榜,零基础学C++教程

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 贾浩楠 发自 凹非寺 量子位 报道 | 公众号 QbitAI 零基 ...

  8. 百度贴吧自动发帖_引流网赚之百度贴吧引流窍门:实操引流教程百度贴吧零成本自动顶帖+10分钟学会豆瓣顶帖引流...

    引流网赚之百度贴吧窍门:实操引流教程<百度贴吧零成本自动顶帖>+<10分钟学会豆瓣顶帖引流> 关于百度贴吧的引流方式有很多,像常见的关键词排名引流,比如,百度贴吧引流效果好不好 ...

  9. python入门到精通需要学多久-廖雪峰python教程要学多久-零基础学Python需要多久...

    零基础学python大约需要多久 看不同的人,不同的学习能和基础. 像我通java,vc ,javascript,groovy,vb,c 接触过c#,delphi,asp,E语言, 用过dreamwa ...

  10. python零基础入门教程学习要多久-廖雪峰python教程要学多久-零基础学Python需要多久...

    零基础学python大约需要多久 看不同的人,不同的学习能和基础. 像我通java,vc ,javascript,groovy,vb,c 接触过c#,delphi,asp,E语言, 用过dreamwa ...

最新文章

  1. java引用类型使用场景_下面有关java的引用类型,说法正确的有?
  2. 2021算法竞赛入门班第九节课【线段树】练习题
  3. java前沿技术_Java语言就业前景如何?这4个就业方向都很吃香
  4. md0 mysql_mysql 数据合并
  5. SAP CRM product customizing下载的第四个队列
  6. 最新!MongoDB 重磅发布 MongoDB 5.0 和无服务器 Atlas
  7. 计算机科学创新大赛,计信学院举办第六届科技创新小发明大赛
  8. Java| 编译和反编译
  9. 关于近期卡巴斯基6.0授权文件被封的解决方案
  10. matlab语法——subplot函数
  11. swiper、vue-awsome-swiper插件使用
  12. 微生物组-扩增子16S分析和可视化(2022.7本周开课)
  13. c语言输出矩形及对角线,[新]C语言期末复习,经典练习题+知识点总结+模拟考题 三位一体,完胜c语言!!!!考期必备神器...
  14. JPK Data Processing AFM数据处理
  15. 算法——机器学习——无监督学习—— K均值(K-means)图解动画
  16. 晶圆代工由一家独大,到三足鼎立,再到群雄涿鹿,到底经历了什么?
  17. 光伏产业红与黑 需求寒冬背后暗藏分布式春天
  18. 分账系统价格表的构成你了解吗?
  19. 创建虚拟环境时ImportError:No Module named zipp
  20. python批量删除微信好友_我用Python找出了删除我微信的所有人并将他们自动化删除了...

热门文章

  1. php manual 下载,PHP - Manual手册 - Download下载
  2. win10前置耳机插孔没声音_win10录屏没声音解决方法「系统天地」
  3. 基于SSM实现的超市管理系统
  4. 软件工程 超市库存管理系统 UML模型
  5. 实现通用人工智能和超(强)人工智能的理论基础——心理二元说
  6. JAVA---数组从小到大排序方法
  7. 微信小程序实现图片上传
  8. C10K 和 C1000K 回顾
  9. 浏览器Cookie策略
  10. (休息几天)读曼昆之微观经济学——税收归宿