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

点个 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,选个红色,看看这个界面:

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

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

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

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

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

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

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

I = V / R

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

R = 158.5 Ohm

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

第一个探针的值是总的电流,第二个探针是流到其中一个 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,具体参数请找厂家卖家,或者网上搜索获得。

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

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

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

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

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

总结

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

欢迎加入我们的大家庭 Arduino 极速入门系列 - 光控灯(1)- 关于理论和 LED 那些事 点击加入 Arduino 硬创联盟,群号 8580606

参考

实用电子元器件与电路基础 第三版

电子工业出版社,ISBN:9787121223785

模拟电子技术基础 第五版

高等教育出版社,ISBN:9787040425055

电子元器件的选择与应用

科学出版社,ISBN:9787030165060

电路基础(英文版 第五版)

机械工业出版社,ISBN:9787111411840

Multisim 12.0 软件

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

上一篇:用程序读取CSV文件的方法


下一篇:使用python爬虫爬取股票数据