点个 LED 闪亮好像太单调,这次来个光控 LED 灯。这个其实不需要 Arduino 也能做,这次只是用来演示一下 PWM 在 Arduino 里面的做法。PWM 原理后面会解释。这次用充电宝提供 5V ,对四个 LED 供电,NPN 三极管作为开关用,Arduino 接基极发 PWM 控制亮度,另外 PWM 是从光敏电阻取值而发出。就是说,通过 Arduino,环境变暗,LED 就越亮的一个控制。

这一篇主要是针对新学的朋友们,讲解或者回顾一下基本知识点。

需要的材料

整个光控灯我们需要以下材料完成: Arduino Mini Pro 3.3V 1 PCS

LED 白色,直插 4 PCS

排母 12孔 2 PCS

电阻 47 欧 1 PCS

电阻 4.7K 欧 2 PCS

光敏电阻 47K 欧 1 PCS

NPN 三极管 2N3904 1 PCS

充电宝 任何牌子 1 PCS

USB 座 直插,母 1 PCS

USB 头 自组装 2 PCS

单股电线 线芯 0.5MM 若干

万用板 单面木质 1 PCS

外壳 PVC/ABS 板自制 1 PCS

因为QQ群里发起了投票,发现有不少朋友们希望了解基本知识,所以加入以下新手专用的理论部分。如无兴趣请直接跳过。

原理简单介绍 - 新手专用

我认为这些知识以及它们的物理原理,是需要看书的,这里只是简单描述一下。

1. 电路

电路,不管是数字还是模拟,都是一个个回路组成,特别注意是回路,是一个圈。不是回路,就无法导通,电信号或电能不能通过。

举例,TTL 不供电时候我们只接了 TX 和 RX 两条信号线,是无法通讯的,必须加上 GND 地线,至少三条线。可以想作,TX 发出电信号,电能从 GND 回路回来,RX 接到电信号,电能从 GND 回去。

2. 通路、开路、短路

电路有三个状态,通路、开路、短路。通路顾名思义是正常导通有电流的回路,开路是电路断开不能导通没有电流的,而短路是指,电源供应直接连到电源的地而中间没有负载。

短路因没有负载,电流会一口气从源头涌往地端,造成巨大电流。从导体来看,巨大电流从没有负载的导体比如电线流过时,电线无法承受而转化电能为热能释放,造成各种灾害。从电源来看,一瞬间释放大量电流,供电源有可能也承受不了,同样会造成灾害。

3. 电压、电阻、电流

电压,符号 V (Voltage),计量单位为伏(V),是指电路里面两个点的电势差;电阻,符号 R(Resistance),计量单位为欧姆(Ohm),是电流通过导体时遇到的阻碍;电流,符号 I (Idensity of Current),计量单位为安培 A(Amp),是表达导体切面中电子流过数量的值。人们常用水流类比,一个水桶满载液体,底部以水管连接到另一个空水桶。两个水桶水压差异导致水往空的水桶流动,类比电势差;水管内材质形状长度影响水流阻力,类比成电阻;水流在水管其中一个部分切面流过的水分子数量(速度),类比成电流。

如用一节 1.5V 电池点亮的灯,我们会发现到了后段快没电时候,灯会变暗然后慢慢熄灭,原因是,电池的正负极电势差慢慢趋向零。情况类比到上面水桶说法就是,两个桶的水量渐渐趋向相同,水就不再流动了。

从上可以看到电压电阻与电流,在电路中是有一定关系的。欧姆定律就是描述这个关系的一个公式,详见百度百科或书本资料。

I = V / R

我们下面会运用到这一公式来做些计算。

4. 交流电与直流电

交流电 AC (Alternating Current)是指电流的方向随着时间有周期性变化的电流。家用电插座是 220伏 50Hz 的交流电,50Hz 意思是每秒五十个周期,正反方向流动一组为一个周期,意思在一秒内电流方向变换了一百次。具体详见百度百科或看书之类参考。

直流电 DC (Direct Current)是指电流的方向不会变化的电流,它还细分了很多种,比如恒定电流是指方向与电流大小都不会变化的电流。详见百度百科或看书之类参考。

本次实验是一个直流电的电路。

5. 发光二极管 LED (Light Emitting Diode)

发光二极管是二极管的一种,当然,正常工作时候会发光。

二极管其中一个特性是在正常工作电压下单向导通,它在原理图的符号形状很好地描述此一特性。也因此单向导通特性,市电交流电电路里面是无法使用 LED 的。虽然说单向导通,但电压再加大时候,是可以反向击穿的。另外,所谓正常工作电压,意思是你供给的电压如果低于它,它是不会工作的。

发光二极管是电流流过时,光子释出,发出特定波段的光。所谓特定波段,也包括了不可见的红外线。LED 有两个重要参数,一是它的工作电压,二是最大能承受的最大电流。电流越大 LED 越亮,但超过一定电流值的话它会烧毁。

不同的 LED 他们的工作电压是不一样的。就算外形看起来一样的我们实验用到的小草帽型 LED,不同颜色的工作电压也有所不同。还有高亮的 LED 灯珠也有不同的最大流限制。使用前,务必查看清楚,以免造成损坏。

基本理论仿真实验 - 新手专用

首先我们用 Multisim 软件,做简单的仿真,看看以上关于 LED 的特性。

我们从二极管分类里面找到了 LED,选个红色,看看这个界面:

大家可以看到右侧中间位置 Function 窗口有个 Vf = 1.83V @ 20mA 的一句话。意思是它的工作电压最大是 1.83V ,而最大电流是 20mA(即 0.02 A)。我们试试给 1V ,电路加个探针然后开始仿真,看看什么情况:

你会看到 LED 那两个往外代表发光的箭头是空心的,代表没有点亮。然后我们按停止仿真,把直流电源改为 5V,再启动仿真看看:

如果 Multisim 仿真可以做个烧毁的动画图就更好了。这次,它发光的箭头红色了,但注意一下探针读数,1.11kA(即 1110 A)。家用电磁炉功耗够大了也才 7A 左右,这一千多安培能一瞬间烧毁 LED。

为了阻止大量电流,我们加入一个电阻,限制电流在电路里面的流动。运用欧姆定律计算,如下:

I = V / R

0.02 A = (5V – 1.83V) / R

R = 158.5 Ohm

我们就加入一个 158.5 Ohm 电阻器,再次启动仿真看看:

可以看到,探针读数 1.83V 20mA。加入了电阻器作为限制电流,LED 就正常工作了。如果我们把电阻加大,电流减少,LED 虽然能发光但会变暗。Multisim 的 LED 参数里面有控制最小能发光的电流,是 5 mA。我们把电阻改为 220 Ohm (Arduino 官网例子就是用这个值的电阻),再启动仿真看看:

你会发现它电压读数有所减少,而电流变成了 14.5mA。同样能点亮。

然后这次,我们看看蓝色的 LED 是怎样的参数:

3.45V @ 20mA,如果我们用蓝色,电阻的值就是:

(5V – 3.45V) / 0.02 A = 77.5 Ohm

本次实验的并联 LED - 新手专用

这次来点实际的,本次实验中用到的四颗 LED 并联情况,直接上公式,看看仿真:

(5V – 3.45V) / (20 mA x 4)= 19.375 Ohm

由于是四颗并联(注意不是串连),以上电流值是需要乘以 4。我们得到所需要的电阻为 19.375 Ohm。

第一个探针的值是总的电流,第二个探针是流到其中一个 LED 的电流。由于四路的负载相同,他们分得的电流也是相同,对电压无影响。这是最高亮度的安全情况了。各位有兴趣的,可以思考一下,把其中一个 LED 改为红色,保持全部 LED 每颗获得 20mA 应该怎么做。

然后,确定了阻值,我们可以搭建实物了。第一个问题来了,仿真归仿真,现实世界的实物中,19.375 欧姆的电阻哪里找来呢?

其实电子世界存在很多误差,要生产出精确无误而且不受温度影响的电阻是非常高难度和高成本。一般我们买到的直插电阻,特别是新手包套装套件那种,误差可能达 10%。另外 LED 所谓的标称工作电压,也不一定那么准确。再说你的电源,也不一定精确无误地提供 5V 稳定电源。所以,我们计算时候,都是以范围来估算,所以各位在各种情况看到的数据手册,很多值都是以范围标示。

电阻的值,百分之十误差来说,我们看看为了保持电流在 20mA 或以下我们应该怎么选:

R x 90% = 19.375 Ohm

R = 21.5278 Ohm

我们知道阻值越高电流越少。在使用蓝色 LED 时,我们选10% 误差的电阻,超过以上标称阻值的(估算结果 21.5278 Ohm),就是安全了。我们实物的电阻,找个比这值大的最接近值即可。我家里最接近的就 47 Ohm,我就那个来搭。

实物的 LED,具体参数请找厂家卖家,或者网上搜索获得。

实物电路与仿真相同,只是照片里的电阻放了在负极。

用5V 电源接通后的效果如上图。

最后一点,是否超过 20mA 比如 22mA 的电流,LED 就会挂呢?答案是否定的,至少你不会马上看到它烧毁。但厂家写了最高电流,你却在使用过程中长期超过,LED 的寿命就可能会缩短。

总结

以上就是组成 LED 部分最基本的电路。这电路还没加入灯的开关,没有探测室内光线亮度的电路,当然也没加上 Arduino。下一篇,我们先看看光敏电阻怎样用。

参考 实用电子元器件与电路基础 第三版 电子工业出版社,ISBN:9787121223785

模拟电子技术基础 第五版 高等教育出版社,ISBN:9787040425055

电子元器件的选择与应用 科学出版社,ISBN:9787030165060

电路基础(英文版 第五版) 机械工业出版社,ISBN:9787111411840

arduino 光控灯_Arduino 极速入门系列 - 光控灯(1)- 关于理论和 LED 那些事相关推荐

  1. Arduino 极速入门系列 - 光控灯(3) - 光敏电阻、与电阻分压那些事

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

  2. Java极速入门系列:第一章Java概述、Java环境、IDEA开发工具

    Java极速入门-第一章Java概述.Java环境.IDEA开发工具 一.什么是Java 1.好的编程语言的特性 2.Java的特点 3.Java的运行机制 4.Java的三大体系 5.Java环境 ...

  3. arduino 光控灯_Arduino基础入门篇11—光控灯

    阅读本文大概需要3分钟. 本篇介绍光敏电阻,通过模拟输入采集环境光强来控制LED灯亮度,做一个无需人为干预的自动控制设备. 传感器是一种检测装置,能感受并采集到被测量的信息,在当下物联网.智能家居中占 ...

  4. arduino点阵声音频谱_Arduino基础入门篇19—点阵屏

    将8个LED发光二极管封装在一起就组成了数码管,将更多的LED组合在一起就组成了点阵屏.本篇我们来认识点阵屏,通过Arduino的IO口直接驱动点阵屏来了解其驱动方式. 1. 点阵屏介绍 LED点阵屏 ...

  5. 把combobox控件添加到datagridview控件中_自定义系列:控件属性添加

    本文讲述如何在布局文件中添加原本所不具备的属性,以PagerTabStrip控件为例,增加textColor与textSize属性. 一.属性声明 新建res/values下的attrs.xml文件( ...

  6. 极速入门Gamemaker编程语言

    极速入门Gamemaker编程语言 开篇废话 这文档适合已经会使用其他编程语言(C#.C\C++.java.python等)的游戏开发爱好者学习 (逛CSDN怎么会有不会编程的人呢) ,如果不会其他语 ...

  7. arduino 光控灯_Arduino基础—光控灯(物联网)

    本实验借鉴TonyCode的简书说明. 作者:TonyCode 链接:https://www.jianshu.com/p/41827528e3c5 来源:简书 # Arduino基础入门篇-光控灯 物 ...

  8. opic4:Qt入门之常用qt控件认知之Button系列

    opic4:Qt入门之常用qt控件认知之Button系列 2013-06-27 18:21:54 标签:QAbstractButton QPushButton QRadioButton 原创作品,允许 ...

  9. Arduino Uno + APDS9930 实现手势控制LED灯亮灭、调光等

    目录 前言 功能介绍: 1.靠近亮灯.距离保持约10cm常亮,远离延时熄灭 2.靠近点亮/熄灭LED,延时期间操作不响应 3.挥手点亮/熄灭LED,悬停进行非无极pwm调光 接线 效果图 源码 通用部 ...

最新文章

  1. IQmath中文手册
  2. 分布式版本控制系统Mercurial(一):Mercurial基本功能介绍
  3. is running beyond the ‘VIRTUAL‘ memory limit. Current usage: 123.5 MB of 1 GB physical memory used
  4. SQL Server使用 LEFT JOIN ON LIKE进行数据关联查询
  5. Vue检测当前是否处于mock模式
  6. bitcoin 论文 Introduction
  7. try-catch-finally机制
  8. 心有所鼠,鼠年快乐~
  9. js 在线压缩混淆工具
  10. 判断数组中的元素是否连续
  11. 酒店预订微信小程序怎么开发?
  12. 离散数学真值表c语言实验报告,NJUPT【离散数学】实验报告
  13. 详细的设计文档该怎么写?请注意这些地方...
  14. word插入公式/endnote
  15. websocket握手失败_WebSocket握手总结
  16. C语言实现文件分割功能
  17. 安装Ctex后Texstudio编译出现 LateX Error: Unknown graphics extension: .eps.解决办法
  18. 耿丹CS16-2班第三次作业汇总
  19. 【增强版短视频去水印源码】去水印微信小程序+去水印软件源码
  20. PM如何整合资源——来自项目管理群的讨论

热门文章

  1. 序号计算机软件工程协会网,序号
  2. 弯管机编程软件电脑版_汇川HMI编程软件(InoTouch Editor)
  3. 关于Flask通过局域网访问(局域网内任意设备通过ip:port访问)
  4. 压敏电阻产品介绍及选型概述
  5. java pkcs7 签名_签名验证(格式为PKCS#7)
  6. 西安IATF16949认证_西安IATF16949咨询_8.3产品和服务的设计和开发 -8.3.1总则
  7. Java实现画图面板
  8. java基于聚类的离群点检测_基于两步聚类的离群点检测
  9. 龙芯2K1000运行linux,龙芯2K1000支持补丁有望在Linux 5.13进入内核
  10. 解决跨域问题@CrossOrigin注解的使用与CrossFilter对象的自定义