第5课 电位器连续调节LED亮度与ADC简介

我是潘,曾经是个工程师。这是为 Ardui.Co 制作的 “Arduino 公开课” 系列的入门教程。有任何疑问请在评论区提出,我会逐一回答。

第4课介绍了用两个按钮控制LED亮度,按一下LED 亮度增/减一个层级,但怎样才能器连续调节亮度?我们自然想到了电位器,但电位器是一个模拟元件,Arduino 怎样才能接收模拟信号?同时,除了利用按钮、电位器,怎样才能让 LED 随着环境光照而自动、连续地调节亮度?

为了实现这些功能,这次要用到的是 Arduino 上的  Analog I/O(模拟端口,Uno 一共有6个,标记为 A0 ~ A5)。这些端口都可作为 ADC (模拟/数字转换)使用,能够读取 0 ~ 5V 的电压,并转换为0~1023 级别的数字信号。

现在我们利用分压电路,让电位器中间引脚输出 0 ~ 5V 连续可调电压,然后通过模拟端口 A0 读取,从而控制 LED 的亮度变化。电路如下:

电位器阻值选择 20K~100K,在其两端分别接地和 5V 端口,中间引脚接 A0,LED 接具备 PMW 功能的9号数字端口,接线图:

从视频看到 LED 连续可调且很亮度变化十分平滑:

思考一下:Arduino Uno 模拟端口能读取模拟信号,能否也输出模拟信号?

现在只要简单改装一下电路,将电位器换成光敏电阻,就能让 LED 根据环境光的强弱,自动调节亮度。

扩展阅读:所谓光敏电阻是当有光线照射时,电阻内原本处于稳定状态的电子受到激发,成为自由电子。光线越强,自由电子越多,电阻值越小。by wiki

原理很简单:当光线变强,光敏电阻阻值变小,A0 电位就将低,LED变暗:

智能家居中,我们希望室内光线,保持在合适的亮度,白天灯变暗,晚上变明亮,或者让Arduino 更具阳光控制窗帘升降,这些在 Arduino 中都能简单地实现。

Leave a Reply

Your email address will not be published. Required fields are marked *