0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

怎样制作通过运动激活的LED矩阵升级圣诞节花环

454398 来源:网络整理 作者:网络整理 2019-11-28 11:19 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

圣诞节又来了,无论是一年中最喜欢的假期还是冷汗带走,装饰品都在增加。今年,为什么不在您的装饰品中加入一些DIY技术以使其脱颖而出呢?

在此项目中,我们将从头开始构建防风雨,运动激活的8 x 8 LED矩阵……价格不到20美元。尽管可以在房子周围的任何地方使用,但它的设计都适合放在标准圣诞门花环的中央。而且由于它是电池供电的,所以也可以在房子外的任何地方!

零件清单

对于此项目,您将需要:

Arduino

我使用Nano的原因是它的体积很小,但是您几乎可以使用任何与Arduino兼容的微控制器

64个xred LED。

8 x 220欧姆电阻

PIR运动传感器

许多Arduino入门套件都附带了这些。我从亚马逊以10美元的价格购买了多包包装。

一块原型板。

这里使用的是9 x 7厘米,尽管可以使用任何大小的电池。

7-12v电池。出于经济原因,这里使用了一个简单的电池组,但是移动银行充电器可能持续时间更长。

各种短导线。

特百惠盒或类似的防风雨外壳。

确保将

圣诞花环。足够大以容纳所有组件了。

任何人都可以,只要确保外壳盒可以放入其中即可。

li》

焊接铁和焊料。

虽然不是严格必要的,因为您可以将组件直接焊接到Nano上,但我还发现了一块小面包板在测试时非常有用。 Ahot胶枪还有助于将所有零件组装在一起。

怎样制作通过运动激活的LED矩阵升级圣诞节花环

该项目需要大量的焊接,作为初学者,这似乎令人生畏。我个人还是焊接的初学者,发现它并不像看起来那样具有挑战性或耗时。如果您还不熟悉焊接,这里有一些很好的技巧可以帮助您。

如果您真的不热衷于焊接,可以使用LED灯条或现成的项目来完成此项目。入门套件中可能包含的LED矩阵。如果您决定走那条路线,则必须进行一些代码调整。

设置Arduino

我们将从Arduino的电路图以及将要连接的电线开始

在矩阵内部

现在制作我们的8 x 8 LED矩阵。首先创建矩阵的一行和一列是一个好主意,以确保它恰好位于原型板上的位置。

在上面的照片中,所有的LED均已放置,使得阳极(较长的正极脚)朝向原型板的顶部。这很重要,因为我们将通过将共同的阳极连接在一起来创建共同的阳极列,以及共同的阴极行(较短的负极)。立即解决此问题将在以后省去头痛!

我们将建立一个公共的行阴极矩阵,该图显示了它们如何连接。

乍一看可能有些令人生畏,但这是一个非常简单的配置。在每一行中,所有阴极从右到左连接,然后连接到我们的Arduino引脚之一。之后,我们对阳极的每一列都执行相同的操作。这样,根据我们加电的那一列以及接地的那一行,我们可以打开阵列中的任何单个LED。

让焊接开始

开始通过放置第一排LED。确保所有阳极都朝向顶部,并将其翻转过来。我发现在每个角落添加另一个LED,并使用一根弹性绳将另一块Protoboard固定在顶部有助于将所有东西固定在适当的位置。

现在通过将每个LED的阴极(短)脚向左弯曲,使它们彼此重叠。从左侧开始向右操作最简单。如果您使用一块较大的原型板,则可以先将它们焊接到板上,然后使用焊盘将它们连接在一起。注意不要将任何阴极连接到板上的任何其他线或阳极上!

对所有八行重复此过程,完成后,您应该会看到类似以下内容的东西:

跳跃阳极!

阳极的列是多一点点。在上图中,阳极每次穿过一排阴极时就会弯曲。这是因为它们根本无法触摸行。我们必须将阳极弯曲到阴极行上方,并将它们彼此连接。您可能会发现用笔弯曲腿有很大帮助。

对每一排阳极执行此操作,并在每个顶部连接一个电阻阳极。您可能会发现将电阻器放置在原型板的下一个孔中并使用焊料将其连接起来更为容易。您现在应该有这样的内容:

恭喜! LED矩阵已完成。在此阶段,请彻底检查焊接,以确保没有间断,并且所有列均未接触到行。如果它看起来不漂亮,请不要担心,我们只需要它起作用即可!您现在可以通过在列的任意一端附加5v,并在行的任意一端接地来分别检查每个LED。

如上图所示,将连接线连接到每一列和每一行,然后将其连接到您的Arduino。

让我们开始编码

打开Arduino IDE,选择您的开发板,然后港口。如果您不熟悉Arduino,请查阅此入门指南。

将此代码输入编辑器。如果您不熟悉它,则它是非常密集的代码,但是可以在此处使用完整注释的代码来帮助理解它的工作原理

const int row[8] = {

2,3,4,5,6,7,8,9

};

const int col[8] ={

10,11,12,14,15,16,17,18

};

int pirPin = 19;

int pirState = LOW;

int val = 0;

bool pirTrigger = false;

const int pirLockTime = 12000;

int pirCountdown = pirLockTime;

int pixels[8][8];

const int refreshSpeed = 500;

int countDown = refreshSpeed;

int currentCharIndex = 0;

typedef bool CHAR_MAP_NAME[8][8];

const CHAR_MAP_NAME blank = {

{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},

};

const CHAR_MAP_NAME threedownthreein = {

{0 , 0 , 0 , 0 , 0 , 0 , 0 , 0},

{0 , 0 , 0 , 0 , 0 , 0 , 0 , 0},

{0 , 0 , 1 , 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},

};

const int noOfFrames = 5;

const CHAR_MAP_NAME *charMap[noOfFrames] ={

&blank,

&threedownthreein,

&blank,

&blank,

&threedownthreein

};

void setup(){

for (int i=0;i《8;i++){

pinMode(row[i], OUTPUT);

pinMode(col[i],OUTPUT);

//motion sensor

pinMode(pirPin, INPUT);

digitalWrite(col[i], LOW);

}

}

void screenSetup(){

const CHAR_MAP_NAME *thisMap = charMap[currentCharIndex];

for (int x = 0; x 《 8; x++)

{

for (int y = 0; y 《 8; y++) { bool on = (*thisMap)[x][y]; if(on) { pixels[x][y] = HIGH; } else { pixels[x][y] = LOW; } } } currentCharIndex++; if(currentCharIndex》=noOfFrames){

currentCharIndex = 0;

}

}

void refreshScreen(){

for (int currentRow = 0; currentRow 《 8; currentRow++){

digitalWrite(row[currentRow], LOW);

for (int currentCol = 0; currentCol 《 8; currentCol++){

int thisPixel = pixels[currentRow][currentCol];

digitalWrite(col[currentCol], thisPixel);

if (thisPixel == HIGH) {

digitalWrite(col[currentCol], LOW);

}

}

digitalWrite(row[currentRow], HIGH);

}

}

void loop(){

val = digitalRead(pirPin);

if (val == HIGH){

pirTrigger = true;

}

else if (val == LOW && pirCountdown 《=0) { pirTrigger=false; pirCountdown = pirLockTime; } if(pirTrigger==true && pirCountdown 》 0)

{

refreshScreen();

countDown--;

pirCountdown--;

if(countDown 《= 0)

{

countDown = refreshSpeed;

screenSetup();

}

}

}

要理解的重要部分是:

refreshSpeed 变量。此变量确定每个屏幕之间的时间刷新方式。数字越大意味着等待时间越长。

常量 CHAR_MAP_NAME s。在此处放置要显示的每个字符映射表(或框架,如果更容易想到它们的话)。

noOfFrames 变量。这决定了一个完整播放中显示多少帧。请注意,它可以与字符映射表的数量不同。例如,如果要显示“ A CAT”,则只需要定义四个不同的框架:空白, A , C 和 T 。

现在,当运动传感器检测到运动时,LED屏幕应使LED向下闪烁3次,并从左上角闪烁3次。如果显示不正确,请再次检查接线,以确保一切均在正确的位置!当您添加自己的图像或消息时,它可能会过早切断或播放时间过长。尝试更改 pirLockTime 变量,直到它播放所需的时间。

将每帧添加到LED显示屏的过程可能有点繁琐,因此我们创建了此电子表格,以便为您的LED矩阵创建文本和图像(创建Google表格的副本,以便您对其进行编辑)变得更加容易。

使用电子表格,您可以将创建的内容直接复制到代码。

使它勇于挑战

现在,我们有了一个有效的LED矩阵,我们需要一种方法来使其在冬天的天气中生存下来。虽然此方法可能无法经受热带风暴或在游泳池中浸泡,但应足以保护所有电子设备免受元件侵害。

我使用了直径为15厘米的圆形特百惠盒子和6厘米深,因为它完全适合我的组件。在盖子上切一个比您的LED矩阵稍大的窗户,并在上面贴上一层透明的塑料膜,确保没有液体进入的空间。用某些包装坚固的塑料效果最好,但这就是我的全部。您也可以为原型板安装一些安装座,尽管两个工作都可以使用坚固的防水胶带轻松完成。

接下来,在Protoboard的下面做一个小孔然后小心缓慢地加宽窗口,直到您的PIR传感器只能通过。您希望它尽可能贴合。

安装PIR传感器,并用胶带或热胶填充您可以看到的任何间隙。/p》

清理所有可能使包装盒无法正常关闭的胶带或胶水,然后将所有组件和电池一起添加到包装盒中。在这里,使用了一个简单的AA电池组,直接插入Nano的VCC引脚。将几小瓶软木塞添加到外壳的外部,以帮助将模型悬挂在花环的中央。

然后我们完成了

一旦盒子被密封,将其与您的圣诞花环一起悬挂,并等待您的访客对您低于20美元的高科技个人欢迎商品做出反应!您甚至可以更进一步,还可以为房子周围的其他地方创建很棒的DIY装饰!

在此项目中,我们建立了一个独立的LED矩阵从零开始的运动系统,即运动激活的系统,即使在最恶劣的天气下,也可以在室外生存。在其他项目的假期结束后,此构建将很有用,并且可以使用相同的技术为其他项目创建便宜的防风雨外壳。

责任编辑:wv

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Arduino
    +关注

    关注

    190

    文章

    6515

    浏览量

    195958
  • LED矩阵
    +关注

    关注

    0

    文章

    86

    浏览量

    18137
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    力芯微矩阵型恒压LED驱动芯片为车载显示屏带来“智”变

    在汽车智能化飞速发展的今天,车载显示屏作为人车交互的重要窗口,其显示效果和性能直接影响到用户的驾驶体验和行车安全。力芯微矩阵型恒压LED驱动芯片,凭借其卓越的性能和创新的技术,为车载显示屏的应用带来
    的头像 发表于 10-27 16:02 230次阅读
    力芯微<b class='flag-5'>矩阵</b>型恒压<b class='flag-5'>LED</b>驱动芯片为车载显示屏带来“智”变

    STEVAL-LLL013V1 LED矩阵面板技术解析与应用指南

    STMicroelectronics STEVAL-LLL013V1 7x25 LED矩阵板由两个STP16CPC26 LED驱动器控制,评估STP16CPC26 LED驱动器在用于驱
    的头像 发表于 10-25 16:00 1284次阅读
    STEVAL-LLL013V1 <b class='flag-5'>LED</b><b class='flag-5'>矩阵</b>面板技术解析与应用指南

    LP5862 LED矩阵驱动器技术解析与应用指南

    Texas Instruments LP5862 2×18 LED矩阵驱动器设计用于改善动画和指示的用户体验,采用小尺寸解决方案的LED矩阵。LP5861驱动器集成了18个具有N(N
    的头像 发表于 09-19 11:02 517次阅读
    LP5862 <b class='flag-5'>LED</b><b class='flag-5'>矩阵</b>驱动器技术解析与应用指南

    ‌LP5864 LED矩阵驱动器技术解析与应用指南

    Texas Instruments LP5864 4×18 LED矩阵驱动器设计用于使用LED矩阵以小尺寸解决方案来改善具有动画效果和指示功能的善用户体验。LP5864集成了18个具有
    的头像 发表于 09-19 10:53 512次阅读
    ‌LP5864 <b class='flag-5'>LED</b><b class='flag-5'>矩阵</b>驱动器技术解析与应用指南

    省钱攻略!双大促:LED电源芯片成本直降+技术服务送

    电源芯片一站式解决方案的IC优惠盛宴,助力企业在节能减排、智能化升级的浪潮中抢占先机。 LED电源芯片HT9126DA 一、双同庆,优惠助力行业发展 全球对绿色能源和高效照明需求的不断提升,
    的头像 发表于 09-15 15:15 295次阅读
    省钱攻略!双<b class='flag-5'>节</b>大促:<b class='flag-5'>LED</b>电源芯片成本直降+技术服务送

    TPS92665-Q1汽车级LED矩阵管理器技术解析

    Texas Instruments TPS92665 LED矩阵管理器通过提供单独的像素级LED控制实现全动态自适应照明解决方案。该器件包括四个子串的三串联集成开关,用于旁路连接独立
    的头像 发表于 09-07 11:10 739次阅读
    TPS92665-Q1汽车级<b class='flag-5'>LED</b><b class='flag-5'>矩阵</b>管理器技术解析

    LP5891-Q1 LED矩阵显示驱动器评估模块技术解析

    Texas Instruments LP5891Q1EVM驱动器评估模块 (EVM) 用于评估矩阵LED显示驱动器LP5891-Q1的特性、运行和使用情况。LP5891-Q1是一款高度集成的共阴极
    的头像 发表于 08-27 11:02 721次阅读
    LP5891-Q1 <b class='flag-5'>LED</b><b class='flag-5'>矩阵</b>显示驱动器评估模块技术解析

    ‌TPS92662-Q1 高亮度LED矩阵管理器技术文档总结

    TPS92662-Q1 LED 矩阵管理器器件通过提供单独的像素级 LED 控制,实现全动态自适应照明解决方案。 该器件包括三个串联集成开关的四个子串,用于旁路单个
    的头像 发表于 08-26 10:00 818次阅读
    ‌TPS92662-Q1 高亮度<b class='flag-5'>LED</b><b class='flag-5'>矩阵</b>管理器技术文档总结

    ‌TPS92663-Q1 高亮度LED矩阵管理器芯片总结报告

    TPS92663-Q1 LED 矩阵管理器设备通过提供单独的像素级 LED 控制来实现完全动态的自适应照明解决方案。 该器件包括三个串联集成开关的两个子串,用于旁路单个
    的头像 发表于 08-25 16:11 638次阅读
    ‌TPS92663-Q1 高亮度<b class='flag-5'>LED</b><b class='flag-5'>矩阵</b>管理器芯片总结报告

    ‌TPS92663A-Q1 高亮度LED矩阵管理器技术文档总结

    TPS92663A-Q1 LED 矩阵管理器设备通过提供单独的像素级 LED 控制来实现完全动态的自适应照明解决方案。 该器件包括三个串联集成开关的两个子串,用于旁路单个
    的头像 发表于 08-22 14:43 910次阅读
    ‌TPS92663A-Q1 高亮度<b class='flag-5'>LED</b><b class='flag-5'>矩阵</b>管理器技术文档总结

    ‌LP5890 LED矩阵驱动器技术文档总结

    LP5890 是一款高度集成的共阴极矩阵 LED 显示驱动器,具有 48 个恒流源和 16 个扫描 FET。单个 LP5890 能够驱动 16 × 16 个 RGB LED 像素,而堆叠两个
    的头像 发表于 08-22 10:48 901次阅读
    ‌LP5890 <b class='flag-5'>LED</b><b class='flag-5'>矩阵</b>驱动器技术文档总结

    TPS92665-Q1 汽车级低噪声16通道LED矩阵管理器摘要

    TPS92665 LED 矩阵管理器设备通过提供单独的像素级 LED 控制来实现完全动态的自适应照明解决方案。该器件包括四个串联集成开关的四个子串,用于旁路单个
    的头像 发表于 08-21 18:13 995次阅读
    TPS92665-Q1 汽车级低噪声16通道<b class='flag-5'>LED</b><b class='flag-5'>矩阵</b>管理器摘要

    ‌LP5867 LED矩阵驱动器技术文档总结‌

    电子设备变得越来越智能,需要使用更多的 LED 来进行动画和指示,并且需要高性能 LED 矩阵驱动器以小尺寸的解决方案来改善用户体验。 LP5867 是一款高性能 LED
    的头像 发表于 08-20 11:24 959次阅读
    ‌LP5867 <b class='flag-5'>LED</b><b class='flag-5'>矩阵</b>驱动器技术文档总结‌

    LP5860T LED矩阵驱动器技术解析与应用指南

    Texas Instruments LP5860T LED矩阵驱动器是一款大电流、高性能LED矩阵驱动器。该器件集成了18个恒定电流阱和N (N = 6/8/11)个开关MOSFET,
    的头像 发表于 08-15 14:16 747次阅读
    LP5860T <b class='flag-5'>LED</b><b class='flag-5'>矩阵</b>驱动器技术解析与应用指南

    梦幻圣诞季,LED 点亮别样浪漫

    的铃铛与彩带相互交织,闪烁着微光;挂满装饰品的橱窗。其中最重要的元器LED 灯珠不动声色地融入每一个装饰细节,以其独有的节能环保、绚丽多彩、安全耐用等诸多魅力,彻底重塑着圣诞节的光影世界,让传统的圣诞景致焕发出
    的头像 发表于 12-27 10:01 1420次阅读
    梦幻<b class='flag-5'>圣诞</b>季,<b class='flag-5'>LED</b> 点亮别样浪漫