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

实验6 三阶立方灯

三阶立方灯是用3×3×3=27只双色发光二极管组成的立方体造型灯。

6.1 实验描述

运用Arduino Uno开发板编程控制三阶立方灯。三阶立方灯电原理图、电路板图、实物图如图6.1所示。

img

图6.1 三阶立方灯电原理图、电路板图、实物图、流程图

img

图6.1 三阶立方灯电原理图、电路板图、实物图、流程图(续)

6.2 知识要点

点,在几何学上是指在空间中只有位置、没有大小的图形。例如,线段的端点、两条直线相交处的交点都属于点。

线,在几何学上是指在空间中沿相同或相反方向运动的轨迹。线是由点组成的图形,有位置和一个维度的方向,没有粗细。例如,线段有两个端点,有长度,属于线。

面,在几何学上是指在空间中线移动所生成的形迹。面也是由点组成的图形,有位置和两个维度的方向,没有高度。例如,正方形有长度、宽度,且都相等,属于面。

体,在几何学上是指在空间中具有长、宽、高的结构。体也是由点组成的图形,有位置和三个维度的方向。例如,立方体有长度、宽度、高度,且都相等,属于体。

6.3 编程要点

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

(2)语句Lights(1,1,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1);表示函数Lights()的第3、6、9个参数为0,对应的端口A2、A1、A0(连接双色发光二极管VD11、VD21、VD31、VD14、VD24、VD34、VD17、VD27、VD37正极引脚)为低电平;其他12个参数为1,对应的端口(连接其他双色发光二极管引脚)为高电平。因此,双色发光二极管VD11、VD21、VD31、VD14、VD24、VD34、VD17、VD27、VD37反向导通,发绿光。

6.4 程序设计

(1)参考程序。

img
img
img

(2)实验结果。

代码上传成功后,将电路板AN06安装到Arduino Uno开发板上,并接通电源。模式一:左竖面9只绿色发光二极管闪亮;左竖面+中竖面18只绿色发光二极管闪亮;27只绿色发光二极管闪亮;中竖面+右竖面18只绿色发光二极管闪亮;右竖面9只绿色发光二极管闪亮;所有发光二极管全都熄灭,循环3次后进入模式二。模式二:上层9只绿色发光二极管闪亮;上层+中层18只绿色发光二极管闪亮;27只绿色发光二极管闪亮;中层+下层18只绿色发光二极管闪亮;下层9只绿色发光二极管闪亮;所有发光二极管全都熄灭,循环3次后进入模式一,以此循环。

6.5 拓展与挑战

代码上传成功后,将电路板AN06安装到Arduino Uno开发板上,并接通电源。模式一:左竖面9只红色发光二极管闪亮;左竖面+中竖面18只红色发光二极管闪亮;27只红色发光二极管闪亮;中竖面+右竖面18只红色发光二极管闪亮;右竖面9只红色发光二极管闪亮;所有发光二极管全都熄灭,循环3次后进入模式二。模式二:上层9只红色发光二极管闪亮;上层+中层18只红色发光二极管闪亮;27只红色发光二极管闪亮;中层+下层18只红色发光二极管闪亮;下层9只红色发光二极管闪亮;所有发光二极管全都熄灭,循环3次后进入模式一,以此循环。

提示:

左竖面9只红色发光二极管闪亮代码为Lights(0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0);。

右竖面9只红色发光二极管闪亮代码为Lights(1,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0);。

上层9只红色发光二极管闪亮代码为Lights(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0);。

下层9只红色发光二极管闪亮代码为Lights(1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1);。