APP下载

基于Arduino Uno 平台的“光魔方”设计研究

2019-07-29吴健翔蒋志恒卓展星

中国设备工程 2019年14期
关键词:灯光效果焊料立方体

吴健翔,蒋志恒,卓展星

(澳门大学科技学院,澳门 999078)

在日常生活中,我们可以看到各种五颜六色的霓虹灯、广告灯箱,甚至酒店和夜总会的各种灯光,当今时代的智能控制电子技术,给人们的生活带来了方便和舒适,而每到晚上,五颜六色的霓虹灯则把我们的城市点缀得格外迷人,为人们的生活增添了不少色彩。这些景观灯制作方法有很多种,有传统的分立元件,由数字逻辑电路构成的控制系统和单片机智能控制系统等。本文基于Arduino Uno R3嵌入式开发平台设计制作了“光魔方”,展现出不同的形状和性能的灯光效果,同时通过设计和实验,以及分析和解释数据,对这一系统进行优化。

1 Arduino Uno R3嵌入式开发平台 “光魔方”的设计

1.1 Arduino Uno R3 (Ch340g)板介绍

Arduino Uno是一个基于ATmega328的微控制器板。它有14个数字输入/输出引脚(其中6个可以用作PWM输出),6个模拟输入,一个16MHz的陶瓷谐振器,一个USB接口,一个电源插口,一个ICSP头和一个复位按钮。只需用USB连接线将其连接到计算机上,或用交流—直流电源适配器为其供电即可启动。

技术规范:

微控制器:ATmega328P-AU

工作电压:5V

输入电压(推荐):7~12V

输入电压(限制):6~20V

数字I/O引脚:14(其中6个提供PWM输出)

模拟输入引脚数:6

每I/O引脚直流电流:40mA

引脚直流电流(3.3V):50mA

闪存:32KB,其中0.5KB用于引导加载程序

静态随机存储器:2KB

电可擦只读存储器:1KB

时钟频率:16MHz

基于Arduino Uno R3嵌入式开发平台“光魔方”设计系统原理图如图1所示,包括Arduino Uno R3开发平台、走线面包板和立方LED灯。

图1 基于Arduino Uno R3嵌入式开发平台 “光魔方”设计系统原理图

1.2 立体LED “光魔方”硬件设计

图2

图3

图4

本立体LED “光魔方”基于面包板设计(如图2),面包板是专为电子电路的无焊接实验设计制造的。由于各种电子元器件可根据需要随意插入或拔出,免去了焊接,节省了电路的组装时间,而且元件可以重复使用,所以非常适合电子电路的组装、调试和训练。

立体LED“光魔方”硬件设计过程如下:

(1)检查所有LED灯是否正常工作。(验证LED灯亮:插入一个100Ω电阻和一个5V电源到板上检查是否能正常照明)。

(2)如果所有LED灯工作正常,可以将其按具体尺寸放入纸板中(图3中每条线相隔2.5cm),并固定。将它们的“腿”分离到阳极/阴极。每个“腿”应弯曲到90°角。然后,使用烙铁(与焊料)结合所有LED灯的“腿”,制作成立方体的形状。

(3)将“腿”的位置依次用烙铁连接,并把导线放在中间位置焊接。

(4)重复上述步骤四次。然后将四层LED灯堆叠起来,用烙铁将触点连接起来。

(5)确认所有的灯都可以重新亮起来。

(6)使用面包板进行组合。将100Ω电阻通过四个I/O引脚(A0-A3)连接到杜邦线,然后分别连接四层LED(如图4)。

(7)将16个I/O引脚(A4,A5,0-13)与底部16个LED灯脚相连。

(8)最后,将UNO宽带连接到计算机并进行测试。

1.3 基于 Arduino Uno R3 (Ch340g) 平台立体LED “光魔方”软件设计

(1)使用Arduino IDE,将Uno板连接到计算机后,选择Uno板的端口。在我的笔记本电脑中,端口是COM3,如图5。

(2)定义一个LEDPin 阵列包括16 个I/O 引脚(A4,A5, 0-13)和一个PlanePin 阵列包括 4 个I/O Pin(A0 -A3),如图6。

(3)在空位设置中,使用循环和PinMode将pin配置为输入或输出模式。同时设置LEDPin I/O的初始状态为HIGH, PlanePin I/O为LOW(如图7)。

(4)在空循环中,编写不同的代码来显示不同灯光效果,如图8。

图5

图6

图7

这是按顺序点亮LED灯的程序,可以用来测试灯是否工作良好。

图8

(5)为LED立方体设计的空循环代码。

程序代码

int LEDPin[] = {A4, A5, 0, 1, 2, 3, 4, 5, 6, 7,8, 9, 10, 11, 12, 13};

int PlanePin[] = {A0 , A1, A2, A3};

void setup()

{

for (int i = 0; i < 16; i++)

{

pinMode(LEDPin[i], OUTPUT);

digitalWrite(LEDPin[i], HIGH);

}

for (int i = 0; i < 4; i++)

{

pinMode(PlanePin[i], OUTPUT);

digitalWrite(PlanePin[i], HIGH);

}

}

void loop()

{

for (int i = 0; i < 16; i++)

{

digitalWrite(LEDPin[i], LOW);

delay(100);

}

for (int i = 0; i < 16; i++)

{

digitalWrite(LEDPin[16-i], HIGH);

delay(50);

}

digitalWrite(LEDPin[0], LOW);

delay(100);

digitalWrite(LEDPin[1], LOW);

delay(100);

digitalWrite(LEDPin[2], LOW);

delay(100);

digitalWrite(LEDPin[3], LOW);

delay(100);

digitalWrite(LEDPin[7], LOW);

delay(100);

digitalWrite(LEDPin[11], LOW);

delay(100);

digitalWrite(LEDPin[15], LOW);

delay(100);

digitalWrite(LEDPin[14], LOW);

delay(100);

digitalWrite(LEDPin[13], LOW);

delay(100);

digitalWrite(LEDPin[12], LOW);

delay(100);

digitalWrite(LEDPin[8], LOW);

delay(100);

digitalWrite(LEDPin[4], LOW);

delay(100);

digitalWrite(LEDPin[5], LOW);

delay(100);

digitalWrite(LEDPin[6], LOW);

delay(100);

digitalWrite(LEDPin[10], LOW);

delay(100);

digitalWrite(LEDPin[9], LOW);

delay(100);

}

2 效果展示及试验分析

该产品是由Arduino操作的LED立方体,图3展示了总体结果。

图3

在焊接过程中,焊料容易接触到灯泡的正极和负极。这可能会导致光亮不稳定,或者闪烁位置与代码的命令不匹配。因此,焊接时要仔细观察,尽量避免焊料对正负极的干扰。

3 结语

经过构思设计,制作组装了“光魔方”的外观,然后使用不同的代码创造各种灯光效果。在将来有机会能将它应用在家庭和娱乐场所(露营、夜总会等)的装饰中,也可以应用于广告牌。除了这些传统的应用,还可以进行一些创新设计,比如制作贪吃蛇游戏、立体时钟和3D动画文本,增加了实用性和可玩性。

猜你喜欢

灯光效果焊料立方体
钠冷快堆关键焊料ER316H中痕量金属元素检测和质量控制
Bi元素添加对Sn1.0Ag低银无铅焊料性能的影响
内克尔立方体里的瓢虫
Ag对Sn0.7Cu0.12Ni焊料性能影响研究
浅谈售楼处的灯光设计分析
浅析人性化设计在室内设计中的重要性
舞台灯光效果在舞台表演中的作用
灯光效果的艺术性分析
图形前线
立方体星交会对接和空间飞行演示