最好的电子音响科技diy制作网站

haoDIY_音响电子电脑科技DIY小制作发明

冷色调的25美元以下(LED矩阵太阳镜)

时间:2017-06-04 22:05来源:未知 作者:admin 点击:
} } //中断routinevoid display() { digitalwrite(COLS [西],低);//把以前的全部列了胶原+ +;如果(Col = = 8){ col = 0;}为(行= 0;排<8;排+ +){ if(LED [西]【7行】= = 1){ digitalwrite(行[行],
冷色调的25美元以下(LED矩阵太阳镜)

我一直想建立自己的LED矩阵的太阳镜,自从我看到有人佩戴一个hackathon,一年半前。然而,时间和一次又一次,学校已经妨碍了我为自己建立一个计划。现在,我有机会建立自己的以及目前我的经验给你,在希望你能为自己创造一个好。

我想强调所有的读者,这是你的项目。让自己的艺术与工程创新引导和使用这可能为指导。我写了这样一种方式,都是一个综合性的指导和沟通的本质裸露的构建,你可以编造自己的设计。

免责声明:我在完成引导其他更多的图像来之中。我赶这可能使它的灯比赛截止发布和提交。这将最终确定为5月31日11:59pst

步骤1:材料和工具

材料和工具

材料
1。(100件)3mm绿色发光二极管- 12美元

2。(1件)4017十进制计数器- 1美元

三.(16件)330欧姆1/2瓦的电阻- 0.72美元

4。(2件)74HC595 - 8位移位登记2.50美元

5。(6件)1K欧姆1/2瓦的电阻- 0.27美元

6。(6件)2N3904晶体管- 0.5美元

7。(3件)8引脚集成电路插座- 1美元

8。太阳镜- $自由

9。跳线- 3美元

10。约束板- 1美元

工具

1。烙铁和焊锡

2。剪刀和刀片

三.剥线钳

4。钳子

5。Arduino和电脑

步骤2:测试每个LED

测试每个LED

这一步很重要,因为它可以节省大量时间调试LED如果矩阵如果即使只有一个LED的坏了。
1。使用面包板和Arduino,插头从Arduino的5V或VCC引脚跳线电缆头一个红色的板上的红色轨道,并插入一个黑色的跳线从GND(地)的Arduino板上的蓝色的火车头销。

2。连接一个330欧姆的1/2瓦的电阻从5V或VCC(红色)在线路板上插在另一侧的板的中间的空槽轨。

三.连接LED的线路板插入相同的列数LED长销。

4。将LED到GND脚短(蓝色)在面包板上轨道。这将点亮LED。如果LED不那么亮,尤其是有缺陷的,LED。

注:当故障排除后,检查电阻上不烧和验证的VCC和GND之间的电压差为5V使用万用表。
用万用表检查电压差,去段的万用表选择与V与直杆和点缀在顶线杆和选择20。然后,将红色的线从Arduino和从Arduino的黑色跳线电缆的黑丝红跳线。

步骤3:绘制轮廓

画的轮廓

1。在一张空白纸,把眼镜,它平铺在纸上,然后追踪太阳的外轮廓。

2。弹出的镜头都从太阳镜并使其与跟踪外轮廓。

三.微量的太阳镜在这张纸上的内轮廓。

4。把长度和宽度的太阳镜的LED的数量放在纵向和横向加一。这将是长度增量的网格线应画。

5。用一把尺子,衡量,马克,和规则的长度增量需要内纵向和横向,根据前一步的计算长度。这将作为网格点的LED应对齐。

步骤4:设计的太阳镜

设计的太阳镜

设计多少LED可以实际安装在水平和垂直方向的太阳镜。

我选择了16个LED发光二极管垂直水平和5给我约3:1的纵横比。

它是如何工作的?

首先我们需要了解复用的思想。复用是能够发送发送信号,发送信号的选择。我们可以查看多个LED闪烁的LED一次一次只能在一个非常高的速度,人眼无法观察的闪烁速率。这就是所谓的PWM信号。因此,形成一种特定的模式LED幻象被点燃而具有完全控制的LED控制。

行数和列数决定了移位寄存器的数量(材料4)、电阻(材料3和5),而晶体管(材料6)你需要。

水平:

发光二极管的数量水平是330欧姆的电阻的确切数量(材料3)你需要。转移登记有8个输入和输出引脚,所以把你的列8

垂直地:

发光二极管的数量垂直是1K欧姆的电阻的确切数量(材料5)和晶体管(材料6)。

步骤5:couloring LED的负极引脚

couloring LED的负极引脚

1。使用记号笔,彩色LED的负极引脚。这将使它更容易确定哪些引脚是正的或负的当他们是弯曲的。

步骤6:弯曲的LED引脚

弯曲的LED引脚

1。弯曲的LED 180度方向相反的两引脚互相。用一张桌子的边缘作为一个指南,当按下LED是有帮助的。

步骤7:切割和用LED代替

切割和带LED的地方

1。把消极的LED引脚短,约2-3毫米长。
2。将正针沿垂直网格线将LED线的交叉。
2。带正针沿销对角,它不沿销轴旋转。
4。重复直到全排完成。

步骤8:焊接负极棒

1。所有的焊接LED引脚上负一条线从所有的负面终端需要连接到一个共同的电压输入。
2。重复这五行。

步骤9:正柱端钢筋焊接

正柱端钢筋焊接

类似以前的步骤,每个正柱端需要焊接和连接到一个共同点。然而,这一步是相当复杂一点比以前的,因为它必须保证没有接触或短路LED的正负引脚之间。

1。首先,焊料每个LED灯的第一和第二行列。
2。然后,焊料每个LED灯的第四行和第五行的列
三.降低LED的第三行正针约2-3毫米长度。
4。测量和切割适当长度的导线连接每一个第一和第二行正杆到第三行。
5。带两端的这根电线用一对剥线钳或剪刀,以防止线路是一小段电线滑落。或者,你会发现很容易,因为我有,滑出套管完全剪掉它的一小部分,滑回。

6。锡两端的导线和接触点。用钳子把焊线每个正极引脚从第一和第二行的每一行对应列的第三。
7。重复焊接第三排和第五排的第四列。

8。焊接一个330欧姆的1/2瓦的电阻,每个列在第一行的发光二极管。然后,弯曲90度的所有引脚电阻这样的跳线接线将整洁。

步骤10:把LED矩阵上的太阳镜。

胶的LED矩阵上的太阳镜。

1。流行太阳镜的镜片放回架。

2。用热胶枪将慷慨珠热熔胶线的底部网格LED矩阵线到太阳镜。你也可以用热熔胶为裸电线绝缘体。虽然没有触电的危险,因为电压和电流都很低,对人体的登记。

步骤11:切割头引脚长度

切割头的引脚长度

1。计数八女头销两套,一套五女头销。然后,评分与四周的刀片。

2。慢慢地、仔细地剪头引脚长度用剪刀。

步骤12:焊接转移登记器电路

焊接转移登记器电路

使用电路图为焊接转移登记器电路指南。采取的步骤,以及公交路径焊接顺序如下。

1。将八针插座到约束板带下来,防止它移动时的焊接
2。在板的另一侧,焊每个引脚各自垫。
三.然后,将八针头旁边的IC插座,分别带他们的地方。
4。焊料每个引脚的头。
5。在约束板的铜面,连接引脚8和引脚13为使用跳线的IC插座。这是IC的接地引脚。
6。同样,连接引脚10和引脚16使用跳线。这是IC的VCC电压输入或。
7。使用跳线,焊锡引脚8,11,12,14和16在平行的所有IC插座
8。指定一个用于转移登记作为主要的IC插座和其他的二、三IC插座,等。
9。焊针9的主要IC插座引脚14第二IC插座。如果你有超过2个移位寄存器,然后继续第二IC插座9脚焊到引脚14第三IC插座,等等。
10。焊锡引脚1-7和15每个IC插座到各自的头销。
11。一五引脚头焊于主IC插座的右。
12。焊锡引脚8,11,12,14,和16的初级IC插座五脚的标题和标签,销数焊接头。
13。轻轻地将每一个移位登记IC到IC插座,这样在ICS的缺口与缺口对IC插座。


最后,检查所有连接使用万用表万用表基于原理的连续性测试。此外,确认有VCC和接地或通过目视检查和使用万用表的连续性测试任何错误连接之间没有短路。

步骤13:焊接计数器电路。

焊接的十进制计数器电路。

使用电路图为指导。

1。将IC插座在任何空的空间的约束板,同时确保有空焊盘相邻的引脚和带下来。

2。将相邻的引脚的晶体管,留下一个空的空间之间的每个晶体管和带下来。

三.在约束板的铜面,焊料中的每个IC插座和晶体管引脚各自垫。

4。剪断多余的晶体管引线。

5。焊接电阻的顺序如图所示的电路图。

6。GND引脚焊锡的转移登记的GND引脚复用电路

7。VCC引脚焊接到转移登记复用电路的VCC引脚

8。轻轻地将十进制计数器IC到IC插座,这样在IC与IC插座的缺口缺口。

步骤14:布线使用跨接电缆连接。

布线使用跨接电缆连接。

1。撕下两套八的女性对男性的跳线从跳线带套。这将连接头销从转移登记复用电路的LED矩阵的列。

2。撕下5个一组的男性对男性的跳线跳线丝带设置形式。这将连接设置转移登记连接到VCC,GND引脚10,11,5针,12,Arduino。后者的三是来自Arduino的信号,指示灯打开信号线。

三.撕下2个一组的男性对男性的跳线跳线设置形式带连接到2针组相邻的十进制计数器IC连接到引脚8和9为前一步中的示意图。

4。连接线作为描述所有以前的步骤和组织他们,他们边太阳镜的边缘。

步骤15:编写arduino代码

1。下载Arduino IDEarduino.cc

2。复制并粘贴以下代码到Arduino IDE并单击“编译”(第一个按钮,从菜单栏的左边)。

/ *显示讯息8X8 LED点阵,*从右至左拖动。*使用frequencytimer2图书馆*总是中断在指定频率的常规*。这*刷新显示无*主回路有什么。* */#include #define SPACE { \ {0, 0, 0, 0, 0, 0, 0, 0}, \ {0, 0, 0, 0, 0, 0, 0, 0}, \ {0, 0, 0, 0, 0, 0, 0, 0}, \ {0, 0, 0, 0, 0, 0, 0, 0}, \ {0, 0, 0, 0, 0, 0, 0, 0}, \ {0, 0, 0, 0, 0, 0, 0, 0}, \ {0, 0, 0, 0, 0, 0, 0, 0}, \ {0, 0, 0, 0, 0, 0, 0, 0} \}#define H { \ {0, 1, 0, 0, 0, 0, 1, 0}, \ {0, 1, 0, 0, 0, 0, 1, 0}, \ {0, 1, 0, 0, 0, 0, 1, 0}, \ {0, 1, 1, 1, 1, 1, 1, 0}, \ {0, 1, 0, 0, 0, 0, 1, 0}, \ {0, 1, 0, 0, 0, 0, 1, 0}, \ {0, 1, 0, 0, 0, 0, 1, 0}, \ {0, 1, 0, 0, 0, 0, 1, 0} \}#define E { \ {0, 1, 1, 1, 1, 1, 1, 0}, \ {0, 1, 0, 0, 0, 0, 0, 0}, \ {0, 1, 0, 0, 0, 0, 0, 0}, \ {0, 1, 1, 1, 1, 1, 1, 0}, \ {0, 1, 0, 0, 0, 0, 0, 0}, \ {0, 1, 0, 0, 0, 0, 0, 0}, \ {0, 1, 0, 0, 0, 0, 0, 0}, \ {0, 1, 1, 1, 1, 1, 1, 0} \}#define L { \ {0, 1, 0, 0, 0, 0, 0, 0}, \ {0, 1, 0, 0, 0, 0, 0, 0}, \ {0, 1, 0, 0, 0, 0, 0, 0}, \ {0, 1, 0, 0, 0, 0, 0, 0}, \ {0, 1, 0, 0, 0, 0, 0, 0}, \ {0, 1, 0, 0, 0, 0, 0, 0}, \ {0, 1, 0, 0, 0, 0, 0, 0}, \ {0, 1, 1, 1, 1, 1, 1, 0} \}#define O { \ {0, 0, 0, 1, 1, 0, 0, 0}, \ {0, 0, 1, 0, 0, 1, 0, 0}, \ {0, 1, 0, 0, 0, 0, 1, 0}, \ {0, 1, 0, 0, 0, 0, 1, 0}, \ {0, 1, 0, 0, 0, 0, 1, 0}, \ {0, 1, 0, 0, 0, 0, 1, 0}, \ {0, 0, 1, 0, 0, 1, 0, 0}, \ {0, 0, 0, 1, 1, 0, 0, 0} \}byte col = 0;byte leds[8][8];// pin[xx] on led matrix connected to nn on Arduino (-1 is dummy to make array start at pos 1)int pins[17]= {-1, 5, 4, 3, 2, 14, 15, 16, 17, 13, 12, 11, 10,9, 8, 7, 6};// col[xx] of leds = pin yy on led matrixint cols[8] = {pins[13], pins[3], pins[4], pins[10], pins[06],pins[11], pins[15], pins[16]};// row[xx] of leds = pin yy on led matrixint rows[8] = {pins[9], pins[14], pins[8], pins[12], pins[1],pins[7], pins[2], pins[5]};const int numPatterns = 6;byte patterns[numPatterns][8][8] = { H,E,L,L,O,SPACE};int pattern = 0;void setup() { // sets the pins as output for (int i = 1; i <= 16; i++) { pinMode(pins[i], OUTPUT); } // set up cols and rows for (int i = 1; i <= 8; i++) { digitalWrite(cols[i - 1], LOW); } for (int i = 1; i <= 8; i++) { digitalWrite(rows[i - 1], LOW); } clearLeds(); // Turn off toggling of pin 11 FrequencyTimer2::disable(); // Set refresh rate (interrupt timeout period) FrequencyTimer2::setPeriod(2000); // Set interrupt routine to be called FrequencyTimer2::setOnOverflow(display); setPattern(pattern);}void loop() { pattern = ++pattern % numPatterns; slidePattern(pattern, 60);}void clearLeds() { // Clear display array for (int i = 0; i < 8; i++) { for (int j = 0; j < 8; j++) { leds[i][j] = 0; } }}void setPattern(int pattern) { for (int i = 0; i < 8; i++) { for (int j = 0; j < 8; j++) { leds[i][j] = patterns[pattern][i][j]; } }}void slidePattern(int pattern, int del) { for (int l = 0; l < 8; l++) { for (int i = 0; i < 7; i++) { for (int j = 0; j < 8; j++) { leds[j][i] = leds[j][i+1]; } } for (int j = 0; j < 8; j++) { leds[j][7] = patterns[pattern][j][0 + l]; } delay(del); #p#分页标题#e#} } //中断routinevoid display() { digitalwrite(COLS [西],低);//把以前的全部列了胶原+ +;如果(Col = = 8){ col = 0;}为(行= 0;排<8;排+ +){ if(LED [西]【7行】= = 1){ digitalwrite(行[行],低);/ /打开这导致其他digitalwrite } {(行[行],高);/ /关闭LED } } digitalwrite(COLS [西],高);//把整列在一旦(等于照明时代)}
【获取代码】

示例代码为“生命”(需要frequencytimer2图书馆):

/* * Conway's "Life" * * Adapted from the Life example * on the Processing.org site * * Needs FrequencyTimer2 library */#include byte col = 0;byte leds[8][8];// pin[xx] on led matrix connected to nn on Arduino (-1 is dummy to make array start at pos 1)int pins[17]= {-1, 5, 4, 3, 2, 14, 15, 16, 17, 13, 12, 11, 10,9, 8, 7, 6};// col[xx] of leds = pin yy on led matrixint cols[8] = {pins[13], pins[3], pins[4], pins[10], pins[06],pins[11], pins[15], pins[16]};// row[xx] of leds = pin yy on led matrixint rows[8] = {pins[9], pins[14], pins[8], pins[12], pins[1],pins[7], pins[2], pins[5]};#define DELAY 0#define SIZE 8extern byte leds[SIZE][SIZE];byte world[SIZE][SIZE][2];long density = 50;void setup() { setupLeds(); randomSeed(analogRead(5)); for (int i = 0; i < SIZE; i++) { for (int j = 0; j < SIZE; j++) { if (random(100) < density) { world[i][j][0] = 1; } else { world[i][j][0] = 0; } world[i][j][1] = 0; } }}void loop() { // Display current generation for (int i = 0; i < SIZE; i++) { for (int j = 0; j < SIZE; j++) { leds[i][j] = world[i][j][0]; } } delay(DELAY); // Birth and death cycle for (int x = 0; x < SIZE; x++) { for (int y = 0; y < SIZE; y++) { // Default is for cell to stay the same world[x][y][1] = world[x][y][0]; int count = neighbours(x, y); if (count == 3 && world[x][y][0] == 0) { // A new cell is born world[x][y][1] = 1; } if ((count < 2 || count > 3) && world[x][y][0] == 1) { // Cell dies world[x][y][1] = 0; } } } // Copy next generation into place for (int x = 0; x < SIZE; x++) { for (int y = 0; y < SIZE; y++) { world[x][y][0] = world[x][y][1]; } }}int neighbours(int x, int y) { return world[(x + 1) % SIZE][y][0] + world[x][(y + 1) % SIZE][0] + world[(x + SIZE - 1) % SIZE][y][0] + world[x][(y + SIZE - 1) % SIZE][0] + world[(x + 1) % SIZE][(y + 1) % SIZE][0] + world[(x + SIZE - 1) % SIZE][(y + 1) % SIZE][0] + world[(x + SIZE - 1) % SIZE][(y + SIZE - 1) % SIZE][0]+ world[(x + 1) % SIZE][(y + SIZE - 1) % SIZE][0]; }void setupLeds() { // sets the pins as output for (int i = 1; i <= 16; i++) { pinMode(pins[i], OUTPUT); } // set up cols and rows for (int i = 1; i <= 8; i++) { digitalWrite(cols[i - 1], LOW); } for (int i = 1; i <= 8; i++) { digitalWrite(rows[i - 1], LOW); } clearLeds(); // Turn off toggling of pin 11 and 3 FrequencyTimer2::disable(); // Set refresh rate (interrupt timeout period) FrequencyTimer2::setPeriod(2000); // Set interrupt routine to be called FrequencyTimer2::setOnOverflow(display);}void clearLeds() { // Clear display array for (int i = 0; i < 8; i++) { for (int j = 0; j < 8; j++) { leds[i][j] = 0; } }}// Interrupt routinevoid display() { digitalWrite(cols[col], LOW); // Turn whole previous column off col++; if (col == 8) { col = 0; } for (int row = 0; row < 8; row++) { if (leds[col][7 - row] == 1) { digitalWrite(rows[行],低);/ /打开这导致其他digitalwrite } {(行[行],高);/ /关闭LED } } digitalwrite(COLS [西],高);//把整列次(等于照明时代)}

步骤16:上传Arduino代码

Arduino代码上传

1。一旦Arduino代码已经编译成功没有任何错误,点击工具> >板:“Arduino:****”并选择Arduino Uno / genuino(除非你使用的是不同的板)。

2。点击“上传代码”(第二按钮在菜单栏的左侧)。这将把当前的程序到Arduino板,控制LED。

我已经强调过,这是你的项目,我强烈建议你要创造你自己的个人风格独特,所以更改代码循环中创建不同的模式,其中0是,1是。

步骤17:谢谢你,请投票!

如果你正在阅读本文,那么你就要结束,希望行使你的艺术和电子技能,使自己的LED矩阵的太阳镜。

谢谢你花时间读这你!我已进入这个“LED竞赛可能的,所以如果你喜欢阅读和/或使它,请为我投票的比赛。


从科技的火星谢谢你!!!


(责任编辑:admin)
织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
相关文章
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片