继续是讲解基础原理,新手专用部分。这次讲光敏电阻,和用电阻分压。光电元器件有好几种,其中测光相关的元器件,常见的有光敏三极管和光敏电阻,我们这次光控灯用光敏电阻。在我们光控灯里面,将会使用它搭建出分压电路,给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 软件

http://www.ni.com/multisim/

Arduino 极速入门系列 - 光控灯(3) - 光敏电阻、与电阻分压那些事的更多相关文章

  1. Arduino 极速入门系列 - 光控灯(2) - 关于开关,上拉、下拉电阻那些事

    接上篇,这次继续讲解光控灯的另外两个组成部分 - 开关和光敏电阻,光控灯里面将会有自锁开关按钮和光敏电阻.这此主要给新玩电子的朋友解释一下开关按钮的做法. 开关按钮的引脚电平读取问题 - 新手专用 我 ...

  2. Arduino 极速入门系列 - 光控灯(1)- 关于理论和 LED 那些事

    点个 LED 闪亮好像太单调,这次来个光控 LED 灯.这个其实不需要 Arduino 也能做,这次只是用来演示一下 PWM 在 Arduino 里面的做法.PWM 原理后面会解释.这次用充电宝提供 ...

  3. Arduino 极速入门系列–1 点亮 LED

    本篇内容为,使用 Arduino 点亮 LED 的做法示范.很简单的一个入门示范.我们让 LED 闪. 本篇使用到的工具和材料 Arduino Mini Pro 1 PCS Mini USB 数据线 ...

  4. ASP.NET AJAX入门系列(4):使用UpdatePanel控件(一)

    UpdatePanel可以用来创建丰富的局部更新Web应用程序,它是ASP.NET 2.0 AJAX Extensions中很重要的一个控件,其强大之处在于不用编写任何客户端脚本,只要在一个页面上添加 ...

  5. SpringCloud系列之分布式配置中心极速入门与实践

    SpringCloud系列之分布式配置中心极速入门与实践 @ 目录 1.分布式配置中心简介 2.什么是SpringCloud Config? 3.例子实验环境准备 4.Config Server代码实 ...

  6. 【Arduino】66种传感器模块系列实验(2)---光敏电阻模块

    实验二:光敏电阻传感器模块我手里这块是三针版的,挺秀气吧 光敏电阻是用硫化隔或硒化隔等半导体材料制成的特殊电阻器,其工作原理是基于内光电效应.光照愈强,阻值就愈低,随着光照强度的升高,电阻值迅速降低, ...

  7. 03.Web大前端时代之:HTML5+CSS3入门系列~H5功能元素

    Web大前端时代之:HTML5+CSS3入门系列:http://www.cnblogs.com/dunitian/p/5121725.html 2.功能元素 1.hgroup 对网页或区段(secti ...

  8. 06. Web大前端时代之:HTML5+CSS3入门系列~HTML5 画布

    Web大前端时代之:HTML5+CSS3入门系列:http://www.cnblogs.com/dunitian/p/5121725.html 我们先看看画布的魅力: 初始画布 canvas默认是宽3 ...

  9. WPF快速入门系列(8)——MVVM快速入门

    一.引言 在前面介绍了WPF一些核心的内容,其中包括WPF布局.依赖属性.路由事件.绑定.命令.资源样式和模板.然而,在WPF还衍生出了一种很好的编程框架,即WVVM,在Web端开发有MVC,在WPF ...

随机推荐

  1. installing mysql,this may take a few minutes,hold on plz wdcp卡住解决办法

    centos6安装wdcp时make in progress卡住的解决办法 今天在一台centos6的vps上安装wdcp出现的这个问题,到安装程序滚动至下面这里时出现"卡死". ...

  2. (转载)spring mvc DispatcherServlet详解之一---处理请求深入解析

    要深入理解spring mvc的工作流程,就需要先了解spring mvc的架构: 从上图可以看到 前端控制器DispatcherServlet在其中起着主导作用,理解了DispatcherServl ...

  3. 化繁为简,最简易的SqlDataSource配合Cache使用~

    最近一个小项目用了比较方便傻瓜的DevExpress控件,实践中DevExpress的控件确实很方便. 在用ASPxGridView控件的时候,为了偷懒结合了SqlDataSource使用,但一直在大 ...

  4. 教你分分钟学会用python爬虫框架Scrapy爬取心目中的女神

    本博文将带领你从入门到精通爬虫框架Scrapy,最终具备爬取任何网页的数据的能力.本文以校花网为例进行爬取,校花网:http://www.xiaohuar.com/,让你体验爬取校花的成就感. Scr ...

  5. Dev 关于用openFileDialog控件上传图片的问题

    1. OpenFileDialog控件有以下基本属性 InitialDirectory 对话框的初始目录 Filter 要在对话框中显示的文件筛选器,例如,"文本文件(*.txt)|*.tx ...

  6. C# 文件重命名

    记得C# File类中是没有rename这个方法 所以网上很多都用的是move moveTo copy+delete等这些方法 其实以上的方法 虽然可以实现功能 但看起来总觉得很蛋疼 今天百度 突然发 ...

  7. centos查看实时网络带宽占用情况方法

    Linux中查看网卡流量工具有iptraf.iftop以及nethogs等,iftop可以用来监控网卡的实时流量(可以指定网段).反向解析IP.显示端口信息等. centos安装iftop的命令如下: ...

  8. struts 异常机制

    1.try-catch 在Action中通过try-catch捕获异常,在catch中返回字符串, 通过返回的字符串在Action的result元素中进行匹配,最终返回响应的页面 2. 局部异常映射 ...

  9. Foundation框架

    1.框架是由许多类.方法.函数.文档按照一定的逻辑组织起来的集合,以便使研发程序变的更容易 清除缓存,删除这个文件夹下的所有文件/Users/fanyafang/Library/Developer/X ...

  10. Html的智能表单

    -新的输入类型 -email -url -number -range -Date pickers ( date ,month ,week, time , datetime ,datetime-loca ...