- Arduino Uno轻松入门48例
- 周宝善编著
- 1724字
- 2021-03-04 18:41:26
2.2 板载LED灯D13周期性闪亮
了解了Arduino Uno开发板与计算机通信,也许你还想知道如何让Arduino Uno开发板单独地干点什么事,比如让LED灯一闪一闪的。那么如何让LED灯闪亮起来?如何调整LED灯闪亮的速度呢?现在,我们就来了解一下闪灯实验。
2.2.1 实验描述
(1)LED灯D13点亮1s,熄灭1s,如此循环。
(2)LED灯D13点亮0.1s,熄灭0.1s,点亮0.1s,熄灭1.7s,如此循环。
(3)LED灯D13点亮0.5s,熄灭0.5s,如此循环。
AU02的电路原理图、电路板图和实物图如图2.3所示。
图2.3 AU02的电路原理图、电路板图和实物图
2.2.2 知识要点
1.闪灯
闪灯即让灯周期性点亮后熄灭。所谓周期性指往复循环、具有一定的规律、每隔一段时间必然会发生的特性。闪灯能起到警示作用,并能传递某种信息,如高楼上的红色闪灯是航空障碍物标志灯,汽车上的黄色双闪灯是临时故障或危险事件报警灯。本实验让Arduino Uno开发板上的LED灯D13有规律地闪亮起来。
2.组装与焊接
在电路板AU02上安装发光二极管,安装在电路板上有字符的一面。发光二极管有正负极之分,长的引脚为正极,短的引脚(圆圈上有缺口的一侧)为负极。发光二极管的作用是发光,如果发光二极管正负极安装反了,发光二极管将不发光。发光二极管的安装高度为贴近电路板。
发光二极管的焊接方法:先用烙铁尖同时加热元件引脚和焊盘,然后将焊锡丝放到烙铁尖上,直到熔化的焊锡填满焊盘为止,然后用偏口钳剪掉多余的元件引脚。
在电路板AU02上安装1206型贴片电阻,安装在电路板上有焊盘的一面。贴片电阻的焊接方法:先在一侧焊盘上镀锡,然后焊接好贴片电阻一端,最后焊接好贴片电阻另一端。
在电路板AU02上安装长为11.5mm的排针,安装在电路板上有焊盘的一面,排针插入小孔内深度约为1.5mm处,即在电路板上有字符的一面不露出排针引脚。焊接完毕后去掉排针上的连接塑料,这样做的目的是方便将电路板上的排针插入Arduino Uno开发板的插槽内。
注:电路板上,没有绝缘缝隙的两个焊盘可以用焊锡焊接在一起,如果两个焊盘之间有绝缘缝隙则不可以用焊锡焊接在一起。
本书中所有电路板上的排针、贴片电阻、发光二极管均按上述方法安装并焊接。
3.板载LED灯D13(L)
在Arduino Uno开发板上的字符L处有一只连接数字端口13的LED灯,如图2.4所示。当数字端口13输出数字1时,板载LED灯点亮,当数字端口13输出数字0时,板载LED灯熄灭。本实验就是要让这只LED灯闪亮起来。
图2.4 Arduino Uno开发板上字符L处的LED灯
2.2.3 编程要点
1.语句pinMode(13,OUTPUT);与pinMode(13,INPUT);
在void setup(){}的花括号内,常用语句pinMode(13,OUTPUT);表示设置数字端口13为输出模式,用语句pinMode(13,INPUT);表示设置数字端口13为输入模式。OUTPUT表示输出,INPUT表示输入,在Arduino编程语言中,输出就是开发板上的微控制器给设备或端口发出信号,输入就是开发板上的微控制器接收设备或端口发来信号。
2.语句digitalWrite(13,1);与digitalWrite(13,0);
语句digitalWrite(13,1);表示数字端口13输出高电平。
语句digitalWrite(13,0);表示数字端口13输出低电平。
数字1表示高电平。输出高电平表示输出电压约为5V,语句digitalWrite(13,1);与语句digitalWrite(13,HIGH);效果相同,HIGH表示高电平。
数字0表示低电平。输出低电平表示输出电压约为0V,语句digitalWrite(13,0);与语句digitalWrite(13,LOW);效果相同,LOW表示低电平。
3.语句digitalRead(13);与!digitalRead(13);
语句digitalRead(13);表示读取数字端口13的状态(高电平或低电平)。
语句!digitalRead(13);表示读取数字端口13的状态并取反,如果数字端口13为高电平,取反之后将变为低电平;如果为低电平,取反之后将变为高电平。
语句digitalWrite(13,!digitalRead(13));表示数字端口13输出状态取反。
4.Arduino Uno开发板数字输出端口的编程方法
第一步,在setup函数中,设置数字端口为输出模式。
第二步,在loop函数中,设置数字端口输出电平,为控制输出速度,加入延时语句。
2.2.4 程序设计
1.代码一
(1)程序参考
(2)实验结果
LED灯D13点亮1s,熄灭1s,如此循环。
2.代码二
(1)程序参考
(2)实验结果
LED灯D13点亮0.1s,熄灭0.1s,点亮0.1s,熄灭1.7s,如此循环,从视觉效果上看为双闪灯。
3.代码三
(1)程序参考
(2)实验结果
LED灯D13点亮0.5s,熄灭0.5s,如此循环,从视觉效果上看,比代码一实验结果的闪灯速度加快了。
2.2.5 拓展和挑战
(1)让板载LED灯D13点亮0.1s,熄灭0.1s,然后再点亮0.1s,熄灭0.1s,接下来再点亮0.1s,熄灭1.5s,如此循环。
(2)让LED灯D13点亮0.1s,熄灭0.1s,然后让LED灯D12点亮0.1s,熄灭0.1s,接下来让LED灯D11点亮0.1s,熄灭0.1s,如此循环。