Arduino 极速入门系列 - 光控灯(3) - 光敏电阻、与电阻分压那些事
继续是讲解基础原理,新手专用部分。这次讲光敏电阻,和用电阻分压。光电元器件有好几种,其中测光相关的元器件,常见的有光敏三极管和光敏电阻,我们这次光控灯用光敏电阻。在我们光控灯里面,将会使用它搭建出分压电路,给Arduino 的模拟引脚发送模拟量。新学的朋友们需要了解光敏电阻是什么回事,分压又是怎样做的,本篇就是讲解这两点。
光敏电阻
光敏电阻(photo-resistor / light-dependent resistor),是在特定波段照射下,阻值会减少的电阻。所谓特定波段,也包括了不可见的红外线。分类就三种,紫外线电阻器、红外线电阻器、和可见光电阻器。
最主要的参数有两个跟我们这次是直接相关的:光电流和光照特性曲线。就是说,有光很亮时候阻值多少,和亮度变暗时候与阻值增大的一个关系曲线图(注意这是曲线,不是线性关系的)。这个东西可以非常便宜,看完这篇有兴趣的可以买点回来玩玩看,淘宝有一包不同型号的光敏卖的。型号之间的差异可以看下表。
上表可以看到上升下降时间,我实测时候,它的上升下降时间,感觉没有上表说得那么接近,不太清楚它写的是什么概念。环境由暗变光,可能就半秒内吧,瞬间阻值减少(书本上说是几个毫秒)。环境由亮变暗,需要好几秒钟阻值才爬升完毕。这响应时间其实与光敏材质和光波波长有直接关系。
单单文字讲解不够直接,看图。我们把万用表调到电阻档,连接好就开灯对准它照射,看看阻值:
580欧阻值。我这个型号5516,标称照度 10 lux 时候,阻值是 2-5K 欧姆。我是很难想象 10 lux 到底是多少。实测更直观,直接用灯近距离照射,580 欧姆。
然后我再试试,关灯(捂住它也行吧…),再看看阻值(注意万用表档位):
稍为遮挡、大幅度遮挡、和完全捂住时候,所读到的阻值分别是 7.8K,16.15K 和 502K。
它其实等同于一个可调电阻器、电位器(用两端作可调电阻用时候),只是它不是旋钮或者滑动,它是依据光来调阻值,然后光的强弱与阻值的关系并非线性。
要理解怎样用它在电路里面,首先我们得简单回顾一下电阻器怎样用。
电阻分压 - 新手专用
电阻器在电路里面主要有两种用法:限流和设置电压。限流我们在上一篇已经看过它怎样用来限制流到 LED 的电流,按钮那一篇里面也用它,限制了当按钮按下时候从供电到地的电流(见下拉电阻部分)。这次我们看看它的设置电压做法,分压。
我们在 Multisim 仿真看看。用两个电阻串联,试试不同阻值的组合,在两个电阻中间放置探针看看效果:
电阻的电流限制作用我们已经谈过。关于上图的电流值如何计算,后面有机会再讨论。这次我们集中看电压。可以看到,不同的阻值组合,可以影响到两个电阻中间位置的电压,它把电压的 5V,通过这方式对探针位置这个点,设置电压值,这个叫做电阻分压。分压的公式如下,假设我们把探针那个点的电压命名为 Vmes (mes 代表 Measurement,测量值):
左侧第一个电路 Vmes = V1 x (R2 / (R1 + R2)) Vmes = 5V x (1000 / (1000+1000)) Vmes = 2.5V |
中间的电路 Vmes = V2 x (R4 / (R3 + R4)) Vmes = 5V x (4000 / (1000+4000)) Vmes = 4V |
右侧电路 Vmes = V3 x (R6 / (R5 + R6)) Vmes = 5V x (4000 / (0+4000)) Vmes = 5V |
公式就是一个比例计算,很好记。用传统电流方向第二个电阻的阻值做分子,两个电阻阻值加总做分母,乘以流进第一个电阻时候的电压,就能计算得到 Vmes。
参考地端 - 新手专用
记得电压是两个点的电势差。所以仿真里面我们需要设置一个参考点,告诉Multisim 那个位置的电压就是零,0V,然后其他位置的测量值都是以此为依据。上面电路那地端符号是我放置的,与电池负极直接相连,为参考地。分压得到的测量值就是与此地端之间的电势差。
理解一下下图,参考地放置位置不同的效果:
可调电阻、电位器 - 新手专用
有了以上知识,我们继续看看可调电阻是干嘛的。我们用 Multisim 仿真,选电位器 (Potentionmeter)。一般电位器是有三只脚,三端都接好的话,电压输出端直接就是分压结果的了。这个以后,比如做摇杆时候再说明。
我们只接两端作为可调电阻用(就是跟光敏电阻一样作用),先理解一下以下三张图:
用上面分压公式可以计算到三个探针的值,不确定的请拿起纸笔自己算算,这个跟我们光控灯作品直接相关的。
利用以上分压电路加上光敏,我们可以对探针那个位置的电压进行测量,然后他的变化是跟随着光亮度而变动。读取电压,等同于读取光亮度了。
为何要这么麻烦,不买模块直接插来用? - 新手专用
光敏电阻,市面上也有模块卖,直接怼不好么,为何还要理解这些?
首先,模块上面的结构其实也极度简单,光敏加一个电阻,最多就再加电容做滤波,这完全可以自己做的。另外,电压不同时候你需要不同的阻值组合,模块你不能改动的,就算你不管直接用,也需要理解,你用了不同电压,它输出的模拟量范围会是多少。最后,自己 DIY,简单原理理解后,玩起来更有劲,不是么?
实际做法
以上都理解之后,到底我们要做什么?
首先第一个问题是亮度,10 LUX 亮不亮, 5 LUX 又该不该开灯,这些因人而异,是个人的感觉。第二个问题是,光敏的阻值与照射的亮度并非线性,而且在不同电压时候曲线稍有不同,我们做光控灯也并非科研,我们会想用更简单的办法去处理这个问题。
办法就是,把最终产品的灯,亮度分五级,找个办法让用户可以调节光的敏感度。就是说,用光敏再串联可调电阻:光亮度影响光敏阻值,用户再可以用串联了的可调电阻来调阻值,调节输出的模拟量幅度。
总结
我们以上几篇,已经理解了 LED 的供电应该怎么做,按钮怎么做,在本篇也知道了环境亮度如何读取。下一篇,我们用三极管,加上 PWM 的原理讲解,控制 LED 的五段亮度。
欢迎加入我们的大家庭 点击加入 Arduino 硬创联盟,群号 8580606
参考
实用电子元器件与电路基础 第三版 |
电子工业出版社,ISBN:9787121223785 |
模拟电子技术基础 第五版 |
高等教育出版社,ISBN:9787040425055 |
电子元器件的选择与应用 |
科学出版社,ISBN:9787030165060 |
电路基础(英文版 第五版) |
机械工业出版社,ISBN:9787111411840 |
Multisim 12.0 软件 |
Arduino 极速入门系列 - 光控灯(3) - 光敏电阻、与电阻分压那些事的更多相关文章
- Arduino 极速入门系列 - 光控灯(2) - 关于开关,上拉、下拉电阻那些事
接上篇,这次继续讲解光控灯的另外两个组成部分 - 开关和光敏电阻,光控灯里面将会有自锁开关按钮和光敏电阻.这此主要给新玩电子的朋友解释一下开关按钮的做法. 开关按钮的引脚电平读取问题 - 新手专用 我 ...
- Arduino 极速入门系列 - 光控灯(1)- 关于理论和 LED 那些事
点个 LED 闪亮好像太单调,这次来个光控 LED 灯.这个其实不需要 Arduino 也能做,这次只是用来演示一下 PWM 在 Arduino 里面的做法.PWM 原理后面会解释.这次用充电宝提供 ...
- Arduino 极速入门系列–1 点亮 LED
本篇内容为,使用 Arduino 点亮 LED 的做法示范.很简单的一个入门示范.我们让 LED 闪. 本篇使用到的工具和材料 Arduino Mini Pro 1 PCS Mini USB 数据线 ...
- ASP.NET AJAX入门系列(4):使用UpdatePanel控件(一)
UpdatePanel可以用来创建丰富的局部更新Web应用程序,它是ASP.NET 2.0 AJAX Extensions中很重要的一个控件,其强大之处在于不用编写任何客户端脚本,只要在一个页面上添加 ...
- SpringCloud系列之分布式配置中心极速入门与实践
SpringCloud系列之分布式配置中心极速入门与实践 @ 目录 1.分布式配置中心简介 2.什么是SpringCloud Config? 3.例子实验环境准备 4.Config Server代码实 ...
- 【Arduino】66种传感器模块系列实验(2)---光敏电阻模块
实验二:光敏电阻传感器模块我手里这块是三针版的,挺秀气吧 光敏电阻是用硫化隔或硒化隔等半导体材料制成的特殊电阻器,其工作原理是基于内光电效应.光照愈强,阻值就愈低,随着光照强度的升高,电阻值迅速降低, ...
- 03.Web大前端时代之:HTML5+CSS3入门系列~H5功能元素
Web大前端时代之:HTML5+CSS3入门系列:http://www.cnblogs.com/dunitian/p/5121725.html 2.功能元素 1.hgroup 对网页或区段(secti ...
- 06. Web大前端时代之:HTML5+CSS3入门系列~HTML5 画布
Web大前端时代之:HTML5+CSS3入门系列:http://www.cnblogs.com/dunitian/p/5121725.html 我们先看看画布的魅力: 初始画布 canvas默认是宽3 ...
- WPF快速入门系列(8)——MVVM快速入门
一.引言 在前面介绍了WPF一些核心的内容,其中包括WPF布局.依赖属性.路由事件.绑定.命令.资源样式和模板.然而,在WPF还衍生出了一种很好的编程框架,即WVVM,在Web端开发有MVC,在WPF ...
随机推荐
- leetcode 165
才一周没刷leetcode,手就生了,这个题目不难,但是完全AC还是挺费劲的. 题目描述: Compare two version numbers version1 and version2.If v ...
- uexQQ插件学习心得
uexQQ插件学习心得 uexQQ插件的作用:通过qq可以分享图文,音乐,应用到相应的qq空间.支持手机客户端分享和手机webQQ分享.下面我们就来看一看他的一些方法. 我们先说一下分享的步骤,这个步 ...
- LINUX+Vmware+SVN的配置和安装
LINUX+Vmware+SVN的配置和安装 验证SVN安装了没有 svnserve --version 查看CentOS自带JDK是否已安装. ◆输入:yum list installed |gre ...
- data([key],[value])
概述 在元素上存放或读取数据,返回jQuery对象. 当参数只有一个key的时候,为读取该jQuery对象对应DOM中存储的key对应的值,值得注意的是,如果浏览器支持HTML5,同样可以读取该DOM ...
- JQuery常用方法一览
$(”p”).addClass(css中定义的样式类型); 给某个元素添加样式 $(”img”).attr({src:”test.jpg”,alt:”test Image”}); 给某个元素添加属性/ ...
- WebLogic集群体系架构
WebLogic Server集群概述 WebLogic Server 群集由多个 WebLogic Server 服务器实例组成,这些服务器实例同时运行并一起工作以提高可缩放性和可靠性.对于客户端 ...
- 在mac电脑上创建java的一些简单操作
首先你要在电脑上下载一个JDK创造出一个java环境 如下第二个: 然后步奏如下: step1:苹果->系统偏好设置->最下边点MySQL 在弹出页面中 关闭mysql服务(点击stop ...
- 【转】解决Delphi WebBrowser 无法调用当前浏览器的版本
procedure TregedtIE.FormCreate(Sender: TObject); begin WriteAppNameToReg; WebBrowser1.Navi ...
- 课堂 一些代码的叫法 JavaScript js
():圆括号 {} :花括号 <>:尖括号 [] :方括号
- mkforsela
-- #!/bin/bash #sela.gao # #History: # .根据每行查找出来的结果push进去手机 #result: # :没有编译生成文件 # :没有设置编译环境 echoMsg ...