LED 灯实际上是一个发光二极管,它的正负极正确地接通电路,就能被点亮,电流必须从LED 灯的正极流入、负极流出,才能被点亮。本书中的Arduino 机器人使用三彩LED 灯,如图3-3-1 和图3-3-2 所示,该模块一共有4 个引脚。
图3-3-1 三彩LED 灯引脚图
图3-3-2 LED 灯设置位置
(1)引脚定义如下:
-:负极;
B:蓝色灯正极;
G:绿色灯正极;
R:红色灯正极。
(2)电路连接。数字接口都能实现控制LED 灯点亮或熄灭(闪烁)。下面将设置LED 灯的B 接口与Arduino UNO 的10 号接口连接,并且负极相通,构成回路,如图3-3-3 所示。
图3-3-3 Arduino 与LED 灯电路连接
(3)测试程序代码如下:
(4)程序详解。(www.daowen.com)
var 表示变量名;
val 表示赋给变量的值(必须为整数)。
使用该语句定义LED 正极与10 号数字接口连接的好处是:第一,明确标识了哪个传感器使用了 Arduino 的哪个接口;第二,假如后面程序都直接使用10,而不是使用ledPin 这个变量,那么当需要把10 号接口换成3 号接口时,需要逐个逐个把10 替换成3,相比直接把int ledPin= 10 改成int ledPin = 3,显然后者更简便。
setup() 函数用于初始化,loop() 函数用于循环执行。初始化工作包括设置一些引脚的输出/输入模式,初始化串口通信等工作。
loop() 函数中的代码将被循环执行,如读入引脚状态、设置引脚输出状态等。
前者用来产生高电平(即产生5 V 输出),后者用来产生低电平(即产生0 V 输出)。其语法是
pin 表示引脚编号;
value 表示HIGH 或LOW。
注意,使用digitalWrite()函数之前,需要将引脚设置为OUTPUT 模式,即需要在setup() 函数里面使用pinMode(ledPin, OUTPUT)语句。为延时等待函数,单位是毫秒(ms);延时1 s 即延时1 000 ms,delay 函数括号里的最大值为32767。
注意,使用该函数,并不是代表暂停1 s,而是前面的语句持续执行1 s,回到示例程序,第一次使用 delay(1000)时的前面有个语句 digital Write(ledPin, HIGH),代表的是10 号数字接口输出高电平维持1 s;第二次使用delay(1000)时的前面有个语句digitalWrite(ledPin, LOW),代表的是10 号数字接口输出低电平维持1 s。因此,当使用delay 函数时,一定要结合前面的语句一起解读,否则将会出现逻辑的失误。
delayMicroseconds()是延时微秒的函数,括号里允许的最大值为16383。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。