【Arduino基础学习笔记】07可调节亮度台灯的原理

网友投稿 2019-06-20 15:06

通过旋钮来调节亮度的台灯相信大家都不陌生。在学习了之前推送的LED呼吸灯之后,相信大家对如何调节灯的亮度已经有了一定的了解。在今天的推送中,我们将要简单学习如何用电位器来控制LED灯的亮度,模拟可调节亮度台灯的工作原理。

先来看看成品视频:

在视频中我们可以看到,有一个旋钮用来控制台灯的亮度,这个旋钮就是电位器。

电位器 (Potentiometer)是可变电阻器的一种。通常是由电阻体转动或滑动系统组成,即靠一个动触点在电阻体上移动,获得部分电压输出。

电位器的作用:调节电压(含直流电压与信号电压)和电流的大小。

电位器的结构特点:电位器的电阻体有两个固定端,通过手动调节转轴或滑柄,改变动触点在电阻体上的位置,则改变了动触点与任一个固定端之间的电阻值,从而改变了电压与电流的大小。

https://cdn.china-scratch.com/timg/190622/1506394461-0.jpg

https://cdn.china-scratch.com/timg/190622/1506394163-1.jpg

本次推送中的实验所需材料也非常简单:

  1. Arduino板子1块

  2. LED灯1只

  3. 面包板1块

  4. 电位器1只

  5. 导线3条

准备好材料后我们就可以动手连接路线啦:

https://cdn.china-scratch.com/timg/190622/1506395151-2.jpg

图片源自科技传播坊

在实际操作中,我们将LED灯的正极被接在来9号端口。因为要调节亮度,所以9号端口在这里作为模拟端口。LED灯的负极则被接在GND端口。

电位器有三个引脚,左右两个分别接到5V和GND端口,不必区分正负极。中间的引脚接到A0模拟端口,用以调节LED灯的亮度。

接下来我们开始编程:

https://cdn.china-scratch.com/timg/190622/1506402225-3.jpg

今天的程序图中也出现来一些我们没有见到过的内容,让我们一条一条来看看吧:

在setup(){} 中,Serial.begin(9600)的意思是:初始化串口通信,将电脑上运行的软件和板子之间的波特率设为9600,用以通讯。如果用到模拟端口返回传感器的值时,必须要加上这句。而这个返回值,则在loop(){} 中的Serial.println()中体现。

anologRead指令用于从Arduino的模拟输入引脚读取数值。Arduino控制器有多个10位数模转换通道。这意味着Arduino可以将0-5伏特的电压输入信号映射到数值0~1023。

换句话说,我们可以将5伏特等分成1024份。0伏特的输入信号对应着数值0,而5伏特的输入信号对应着1023。

例:

当模拟输入引脚的输入电压为2.5伏特的时候,该引脚的数值为512。

(2.5伏特 / 5伏特 = 0.5, 1024 X 0.5 =512)

在本示例中,我们将电位器的三个引脚分别连接在5V, GND, 以及A0引脚。通过调节电位器, A0引脚的输入电压将在0V~5V之间。在Arduino内置的模拟数字转换功能作用下,该输入电压将被映射到数值0~1023之间。0V对应数值0, 5V对应1023)。这一数值将通过串口监视器显示。

因此,我们在程序中将A0除以4,实际上是为了得到0~255的亮度范围。

好了,今天的内容就到这里,大家一起来试试吧!

--end--

声明:本文章由网友投稿作为教育分享用途,如有侵权原作者可通过邮件及时和我们联系删除:freemanzk@qq.com