![Arduino Uno轻松进阶36例](https://wfqqreader-1252317822.image.myqcloud.com/cover/547/43738547/b_43738547.jpg)
实验6 三阶立方灯
三阶立方灯是用3×3×3=27只双色发光二极管组成的立方体造型灯。
6.1 实验描述
运用Arduino Uno开发板编程控制三阶立方灯。三阶立方灯电原理图、电路板图、实物图如图6.1所示。
![img](https://epubservercos.yuewen.com/63FB11/23020659601694706/epubprivate/OEBPS/Images/txt006_1.jpg?sign=1738857204-kvIgegav9YWMyiYk2pUzZPwwVoJHW14r-0-9651669199deb31aa47de59c47c339e1)
图6.1 三阶立方灯电原理图、电路板图、实物图、流程图
![img](https://epubservercos.yuewen.com/63FB11/23020659601694706/epubprivate/OEBPS/Images/txt006_2.jpg?sign=1738857204-1r9RVHOUJ9jWEl8mn6QlMe6ae33dYwIK-0-ad22a960142805fd405ca013ebfaad2d)
图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](https://epubservercos.yuewen.com/63FB11/23020659601694706/epubprivate/OEBPS/Images/txt006_3.jpg?sign=1738857204-hsEEsSmUbwVkULUxB07zQejdBtVHZuZ9-0-23b69a800c4ee6af793df80783ac3db0)
![img](https://epubservercos.yuewen.com/63FB11/23020659601694706/epubprivate/OEBPS/Images/txt006_4.jpg?sign=1738857204-glko58XnWGhSioVGl7FOSIfs5Np9eMi8-0-130324e8a7ad21760d0dd8d0a2ac0e14)
![img](https://epubservercos.yuewen.com/63FB11/23020659601694706/epubprivate/OEBPS/Images/txt006_5.jpg?sign=1738857204-3J3SS0zuz1p3syqXii6iyjcQlWMZj6z7-0-5c3d757cd57568570955ccd408b5b1eb)
(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);。