第五课 用电位器Potentiometer控制LED亮度


电位器(英文:Potentiometer,通俗上也简称 Pot,少数直译成电位计),中文通常又称为可变电阻器。电位器最常见的用途是各式音响声源设备里的音量控制或电子设备里的各式准位与功率等的控制,也可以做为位置或角度的传感器,或者是作为钨丝灯泡调光器或电热丝功率调节器的控制元件等。

这一课我们就来尝试用 Pot 来控制 LED 的亮度。

首先将 LED 连接至 PIN# 10(注意颜色对应)

接下来把 Pot 连接至 PIN# A1(注意颜色对应)

现在我们开始写程序。

我们先给 LED 设一个 Variable。从 Variable 栏里把第二个的 [item]拉出来,把名字改去 [led]


接下来我们在 Math 栏里最底下的 Map 拉出来接在上面 led 后面



map 函数是一种映射,它将从一个区间的相对值映射成另一个区间的相对值并返回。譬如我们规定冰点时温度为0摄氏度,沸点为100摄氏度,而华氏温度把冰点温度定为32华氏度,沸点为212华氏度。根据这一关系,我们就可以直接写出从华氏温度到摄氏温度转换的语句,Celsius = map(Fahrenheit, 32, 212, 0, 100)。

在这里我们先读取 Pot 的值 (AnologRead PIN# [A0])
然后用 map 函数从 Pot 的读数 (0 - 1020)映射成 LED 的亮度 (0 - 255)

led = map (Pot PIN# A0, 0, 1020, 0, 255)

那样 LED 的亮度就会跟随 Pot 的转动而改变。

想不想知道当我们在转动 Pot 的时候,Pot 的值是多少,映射成 LED 亮度又是多少?

我们可以在程序里加上 Print 和 PrintLn 。 PrintLn 就是告诉程序加一个 Enter 进入下一行。

首先让我们在 Communicate 栏拉出来 [Serial] Print


然后再从 Text 栏里拉 “ ”, 拼接在上面的 [Serial] Print 后面


完成之后程序如下

把程序 Upload 到控制板之后,我们就可以用鼠标点击右下角的 Monitor 来开启一个视窗,现在转动 Pot 就可以见到数字在不停的变动。这样子我们就能够清楚见到 map 映射后的两组数值变化。


Complete and Continue