Arduino Uno轻松进阶36例
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

实验7 四阶平面灯

四阶平面灯是用4×4=16只双色发光二极管组成的平面九宫格造型灯。

7.1 实验描述

运用Arduino Uno开发板编程控制四阶平面灯。四阶平面灯电原理图、电路板图、实物图、流程图如图7.1所示。

img

图7.1 四阶平面灯电原理图、电路板图、实物图、流程图

img

图7.1 四阶平面灯电原理图、电路板图、实物图、流程图(续)

7.2 知识要点

九宫格,原指一种数字游戏,即在3×3方格盘上,随意摆放8个分别带有数字1至8的小木块,空格周边的小木块可移动至空格内,玩家需要将小木块按12345678的顺序重新排好。九宫格数字游戏主要用于娱乐兼锻炼逻辑推理能力。九宫格由4条水平线和4条竖直线交叉形成外圈12点,内圈4点,共9个方格,摄影爱好者常运用九宫格分割图形,把要拍摄的主体对象放在内圈4点中的一个点上,这样构图符合人们的审美情趣,这种构图法又叫九宫格构图法。

7.3 编程要点

(1)语句void Lights(int pin0,int pin2,int pin5,int pin4,int pin1, int pin3,int pin6,int pin7,int pinA1,int pin8,int pin9,int pin10, int pinA0,int pin13, int pin12,int pin11,int pinA2,int pinA3,int pinA4,int pinA5){}表示设置函数Lights(),用于设置20个整型变量对应Arduino Uno开发板的14个数字端口+6个模拟端口,前16个端口分别与16只双色发光二极管正极引脚连接,后4个端口分别与16只双色发光二极管负极引脚连接。

(2)语句Lights(1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0);表示函数Lights()的第1、5、9、13个参数为1,对应的端口0、1、A1、A0(连接双色发光二极管VD0、VD4、VD8、VD12正极引脚)为高电平;其他16个参数为0,对应的端口(连接其他双色发光二极管引脚)为低电平。因此,双色发光二极管VD0、VD4、VD8、VD12正向导通,发红光。

7.4 程序设计

(1)参考程序。

img
img
img

(2)实验结果。

代码上传成功后,将电路板AN07安装到Arduino Uno开发板上,并接通电源。模式一:左第1列4只红色发光二极管闪亮;左第1列和第2列8只红色发光二极管闪亮;左第1列、第2列和第3列12只红色发光二极管闪亮;左第1列、第2列、第3列和第4列16只红色发光二极管闪亮;左第2列、第3列和第4列12只红色发光二极管闪亮;左第3列和第4列8只红色发光二极管闪亮;左第4列4只红色发光二极管闪亮;所有发光二极管全都熄灭,循环4次后进入模式二。模式二:上第1行4只红色发光二极管闪亮;上第1行和第2行8只红色发光二极管闪亮;上第1行、第2行和第3行12只红色发光二极管闪亮;上第1行、第2行、第3行和第4行16只红色发光二极管闪亮;上第2行、第3行和第4行12只红色发光二极管闪亮;上第3行和第4行8只红色发光二极管闪亮;上第4行4只红色发光二极管闪亮;所有发光二极管全都熄灭,循环4次后进入模式一,以此循环。

7.5 拓展与挑战

代码上传成功后,将电路板AN07安装到Arduino Uno开发板上,并接通电源。模式一:左第1列4只绿色发光二极管闪亮;左第1列和第2列8只绿色发光二极管闪亮;左第1列、第2列和第3列12只绿色发光二极管闪亮;左第1列、第2列、第3列和第4列16只绿色发光二极管闪亮;左第2列、第3列和第4列12只绿色发光二极管闪亮;左第3列和第4列8只绿色发光二极管闪亮;左第4列4只绿色发光二极管闪亮;所有发光二极管全都熄灭,循环4次后进入模式二。模式二:上第1行4只绿色发光二极管闪亮;上第1行和第2行8只绿色发光二极管闪亮;上第1行、第2行和第3行12只绿色发光二极管闪亮;上第1行、第2行、第3行和第4行16只绿色发光二极管闪亮;上第2行、第3行和第4行12只绿色发光二极管闪亮;上第3行和第4行8只绿色发光二极管闪亮;上第4行4只绿色发光二极管闪亮;所有发光二极管全都熄灭,循环4次后进入模式一,以此循环。

提示:

左第1列4只绿色发光二极管闪亮代码为Lights(0,1,1,1,0,1,1,1,0,1,1,1,0,1,1,1,1,1,1,1);。

左第4列4只绿色发光二极管闪亮代码为Lights(1,1,1,0,1,1,1,0,1,1,1,0,1,1,1,0,1,1,1,1);。

上第1行4只绿色发光二极管闪亮代码为Lights(1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1);。

上第4行4只绿色发光二极管闪亮代码为Lights(0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1);。