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

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

3天内不再提示

Arduino萤火虫的制作教程

454398 来源:工程师吴畏 2019-08-12 16:47 次阅读

第1步:你需要什么。

Arduino萤火虫的制作教程

到让你的bug闪烁,你需要这些组件:

Arduino。我从Nano开始,但任何与Arduino兼容的微控制器都可以。

黄色LED,5毫米。您最多可以使用其中的6个。

电阻器。每个LED需要一个电阻来限制电流。我用了470欧姆,但是150欧姆以上的任何东西应该可以保护你的微控制器。

面包板。

跳线。

要完成后院项目,您需要:

防风雨项目箱。

连接器的9伏电池。 (请参阅本节底部的注释。)

切换。 (我选择了这些防水开关。如果你不在外面使用它,任何开关都可以。)

几码线将LED放在花园周围。我每个LED使用大约10英尺的Cat5以太网线。

小型面包板或一些穿孔板。

LED导线穿过的防风雨电缆接头。 (如果你不在外面也使用它,你可以省略它。)

热缩管以保护你的LED虫屁股。

绿色钩环(即魔术贴)条带将LED萤火虫固定在花园中的植物和柱子上。

将组件插入小型面包板的公头。

工具:

钻头项目框。 (利用这个机会给自己一个很好的步骤。你会很高兴你做到了)。

热胶枪。

烙铁。

旋转工具(即Dremel),用于在需要时在工程箱中划出空间。

这里有一些注意事项:

1。电池选择是为了快速简便的启动。永久使用9伏电池有点浪费。你最好使用4x AA电池座以延长使用寿命(但是你需要一个更大的项目盒来安装它)。

2。如果您选择为导线解构Cat 5以太网电缆,请确保它们是铜芯并将它们整齐地包裹在某些PVC周围,以便在您工作时保持整齐。我再次使用每个LED大约10英尺的电线。如果你想要远远地扩散灯光,一定要使用更长的电线!

3。最后,我提供的所有链接仅仅是建议。在构建或购买任何东西之前,请仔细阅读整个Instructable,因为您将更好地了解您希望如何亲自前进。

第2步:构建电路。

此项目使用脉冲Arduino上的宽度调制引脚。微控制器有6个这样的引脚,欢迎您随意使用。电路非常简单。将脉冲宽度调制(PWM)引脚D3,D5,D6,D9,D10和D11的所有电源连接到LED的正极端。将负端连接到电阻器然后连接到公共地。 (电阻可以放在LED的前面或后面。除非你想要防止更高电流的短路,否则没有区别。)我提供了一些原理图来帮助接线。 (使用Fritzing设计软件创建的图表。)

第3步:代码。

如果您是一位经验丰富的程序员,那么‘我会发现这段代码过于简单。这是一个很好的代码开始学习,因为它向您介绍变量,pinmodes,函数甚至随机生成器的使用。代码并不像它那样紧凑,因为我确信使用数组等可以实现相同的效果。

代码注释列出了每个部分的逻辑。整个代码都嵌入在这里,您可以下载下面的草图。

/*

This script flashes 6 LEDs (yellow, of course) in random order

at random intervals using PWM.

Each LED is controlled by it’s own function.

*/

int led1 = 3; // LED connected to PWM pin 3, etc. I used all 6 PWM pins.

int led2 = 5;

int led3 = 6;

int led4 = 9;

int led5 = 10;

int led6 = 11;

long randnum; // randnum controls the time interval between flashes and

long randbug; //randbug controls which bug lights up.

void setup() {

pinMode(led1,OUTPUT); //Setting all PWM pins as outputs.

pinMode(led2,OUTPUT);

pinMode(led3,OUTPUT);

pinMode(led4,OUTPUT);

pinMode(led5,OUTPUT);

pinMode(led6,OUTPUT);

}

void loop(){

randbug = random(3,12); //randbug randomly chooses a function to execute,

//thus randomly chooses a bug to light up.

if (randbug == 3) {

bug1();

}

if (randbug == 5) {

bug2();

}

if (randbug == 6) {

bug3();

}

if (randbug == 9) {

bug4();

}

if (randbug == 10) {

bug5();

}

if (randbug == 11) {

bug6();

}

}

/*

* Each of these functions work the same way. ‘for loops’ increase then decrease

* the output of that pin to control LED brightness.

* ‘randnum’ is a random time interval between 10 and 3000 ms

* and chooses a time interval between bug flashes.

* ‘delay 10’ is just for the fade effect.

*/

void bug1(){

randnum = random(10, 3000);

for(int fadeValue = 0 ; fadeValue 《= 255; fadeValue +=5) {

analogWrite(led1, fadeValue);

delay(10);

}

for(int fadeValue = 255 ; fadeValue 》= 0; fadeValue -=5) {

analogWrite(led1, fadeValue);

delay(10);

}

delay (randnum);

}

void bug2() {

randnum = random(10, 3000);

for(int fadeValue = 0 ; fadeValue 《= 255; fadeValue +=5) {

analogWrite(led2, fadeValue);

delay(10);

}

for(int fadeValue = 255 ; fadeValue 》= 0; fadeValue -=5) {

analogWrite(led2, fadeValue);

delay(10);

}

delay (randnum);

}

void bug3() {

randnum = random(10, 3000);

for(int fadeValue = 0 ; fadeValue 《= 255; fadeValue +=5) {

analogWrite(led3, fadeValue);

delay(10);

}

for(int fadeValue = 255 ; fadeValue 》= 0; fadeValue -=5) {

analogWrite(led3, fadeValue);

delay(10);

}

delay (randnum);

}

void bug4(){

randnum = random(10, 3000);

for(int fadeValue = 0 ; fadeValue 《= 255; fadeValue +=5) {

analogWrite(led4, fadeValue);

delay(10);

}

for(int fadeValue = 255 ; fadeValue 》= 0; fadeValue -=5) {

analogWrite(led4, fadeValue);

delay(10);

}

delay (randnum);

}

void bug5() {

randnum = random(10, 3000);

for(int fadeValue = 0 ; fadeValue 《= 255; fadeValue +=5) {

analogWrite(led5, fadeValue);

delay(10);

}

for(int fadeValue = 255 ; fadeValue 》= 0; fadeValue -=5) {

analogWrite(led5, fadeValue);

delay(10);

}

delay (randnum);

}

void bug6() {

randnum = random(10, 3000);

for(int fadeValue = 0 ; fadeValue 《= 255; fadeValue +=5) {

analogWrite(led6, fadeValue);

delay(10);

}

for(int fadeValue = 255 ; fadeValue 》= 0; fadeValue -=5) {

analogWrite(led6, fadeValue);

delay(10);

}

delay (randnum);

}

第4步:构建框。

一旦你用代码刷新你的Arduino并得到你的萤火虫以你喜欢的方式工作,你可能想把它们放在花园里;这意味着一个项目盒和一些热缩,以保持Arduino和LED干燥。让我们来吧!

第5步:构建Bug Butts!

将LED引线修剪约5mm。

剥去并使用你正在使用的电线的末端,也约5毫米。

在每个电线末端滑动1mm热缩管。

将LED焊接到电线上。 (此时,你应该选择你的对中的哪一根线是正面的,哪一根是负的。我选择实线为正线,白线为负线。在整个项目中保持该策略以避免后来的头痛!)

将热量一直向上滑过裸线和LED引线。在它们上面快速燃烧,将它们收缩到电线上。

在LED上滑动另一块热缩管,并将LED透镜伸出末端并将其熔化到位。

将几片热缩管滑到整个长度上,然后每隔几英尺将其熔化,以保持线材整洁。

步骤6:准备项目框。

使用带有砂磨钻头的旋转工具清除任何不需要的东西塑料在您的项目框中。 (小心不要切掉任何可能需要将盒子重新放在一起的螺丝安装座。)

确定您需要开关的位置以及LED线是否出来。我建议双方使用符合您需求的东西。

使用合适尺寸的钻头为电缆接头和开关打孔。

注意:在上面的照片中,你会看到我做了一个“假人”电缆。”这是一组6对我用于LED的电线,它们通过热缩将它们捆在一起。我用它来确保电缆接头与实际的电缆束很好地配合,并且一旦开关,电缆接头和盖子打开,也要测试盒子的防水性能。 (在6英寸水中淹没24小时后,里面的水分很少。我很乐意将这个盒子称为“耐候性”。)

第7步:带来电源!

通过粗略放置所有电池和开关线来确定您需要多少电池和开关线才能到达Arduino项目框中的三个组件。修剪开关和9V电池连接器的电线。剥开并涂上两端。将一些热收缩滑动到下一步。

从条带上切掉两个插头(但要将它们粘在一起)。

将9V电池连接器的红色引线焊接到开关的一端。将开关的另一端焊接到公头插针。将黑色电池引线焊接到另一个插头引脚。

如上图所示,插头引脚将进入面包板,为VIN(正极)和GND(负极)的Nano供电。 VIN引脚可以处理7到12伏电压。如果您计划以9V电池以外的方式为Arduino供电,请使用其他电源引脚。

步骤8:如果需要修改Nano。

因为我的项目框很浅,我需要移除ICSP插头引脚才能适应。这些引脚是Arduino的辅助接口。删除它们不会损坏您的Nano,因为您始终可以通过USB端口加载脚本。

注意:如果您的Nano需要焊接接头引脚,请在组装Arduino时省略这些引脚。

步骤9:连接内部。

将电缆压盖端口连接到为其钻孔的项目盒中。如果您对如何使用电缆接头感到困惑,我在YouTube上发现的这个视频显示正在组装的视频。 (快进到0:57。)你可能有橡皮垫圈。这是在项目箱和电缆密封套的外部螺母之间进行的。

收集LED线的松散端。花这个时间将它们修剪成相等的长度,剥去并涂上两端。将端部穿过电缆密封套的盖子并使用一块热缩端将端部捆在一起,留下足够的长度以到达盒子内侧的面包板。

将电线束通过电缆压盖端口送入工程箱并扭转压盖,将电线锁定到位,最好围绕用于将它们捆在一起的热缩器周围。

将地线与正极线分开(记住您之前选择的那些)。将所有接地线焊接在一起。从该束中连接一根短导线,并用1个插头完成。使用热缩保护您的裸露焊点。

每根正极线两端的焊接公头。再次,使用热缩。

将正端公头插入面包板,连接到Arduino上的PWM引脚。

将公共地插入面包板,使其通过限流电阻,然后通过Arduino上的GND。

放入电池并将开关穿过先前钻过的盒子中的孔。将橡胶垫圈安装在项目盒和螺帽之间。将电源线插入面包板。

将盖子卡在盒子上。你已经完成了!

注意:注意在原理图和开发阶段我每个LED使用一个限流电阻。通常情况下,每个LED应该通常使用自己的电阻,一次点亮多个LED。该代码不允许一次点亮多个LED,因此只使用一个电阻就可以保护Arduino。这也节省了小面包板上的空间,或者使用串联电阻器对每个LED进行时间焊接。那说。..。..警告!!!如果您计划更改代码以便一次点亮多个LED,则每个LED需要单独的电阻。

步骤10:使用它。

使用Velcro皮带或少量热胶将LED固定在植物,栅栏,粉红色的火烈鸟或院子里的任何其他东西上。将它们塞进酒架,窗帘后面,甚至将天花板上的电线悬挂在黑暗中进行3D浮动效果!这些对于派对,婚礼,电影和摄影来说都是一个很好的选择。

步骤11:更进一步。..。..

如前所述,这是该项目的早期版本,但它充满了潜力!通过连接移位寄存器来运行更多的LED(请参阅JColvin91的说明,了解具体方法。)添加一个光传感器,太阳能充电器和定时器,用于“设置并忘记它”功能!与代码混淆,为bug添加自己的耀斑。分享您的成就和享受!!

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

    关注

    187

    文章

    6464

    浏览量

    186641
收藏 人收藏

    评论

    相关推荐

    基于Arduino的串口通信项目

    基于Arduino的串口通信项目涉及多个方面,包括硬件连接、软件编程、串口参数配置等。 一、硬件准备 Arduino开发板 :确保你有一块Arduino开发板,如Arduino Uno
    的头像 发表于 11-22 09:24 173次阅读

    蔚来第三品牌定名“firefly萤火虫”,2025年上半年交付首款车型

    近日,蔚来汽车正式揭晓了其第三品牌的命名——“firefly萤火虫”,并宣布该品牌的首款车型将与品牌同名。这一举措标志着蔚来在产品线上的进一步丰富和拓展,旨在满足更多消费者的多样化需求。 据悉
    的头像 发表于 11-21 13:51 436次阅读

    如何使用Arduino实现CAN总线通信

    CAN总线(Controller Area Network)是一种多主控制的串行通信协议,广泛应用于汽车电子、工业自动化等领域。它以其高可靠性、实时性和灵活性而受到青睐。Arduino作为一个
    的头像 发表于 11-12 10:09 317次阅读

    李斌否认萤火虫采用增程式混动技术的传言

    11月1日讯,近日,蔚来汽车的首席执行官李斌对有关公司第三品牌FIREFLY(萤火虫)将采用增程式混动技术的传闻进行了明确否认。   此前有媒体曾报道,蔚来正在规划混合动力系统,并声称其萤火虫项目将运用增程式混合动力技术,预计产品将于2026年上市。这一报道引发了外
    的头像 发表于 11-01 16:31 779次阅读

    西北工业大学成功研发仿萤火虫通信无人机

    据介绍,“萤火虫”尾部的闪烁是其独特的加密通讯方式,通过特定的发光模式和频率,实现识别同伴、警示危险以及指引方向等功能。
    的头像 发表于 05-07 10:55 687次阅读

    如何用Arduino制作一个简易自动喂鱼器

    如果你家里养有鱼,并想找到一种自动化喂食的方法,这个项目可能会对你有所启发。 在这个教程中,作者将展示如何制作自己的基于Arduino的自动喂鱼器,让小鱼不在饿肚子。 自动喂鱼器的工作原理非常
    发表于 03-28 11:25

    几何E萤火虫电动SUV正式上市,起售价5.98万元

    整车配置包括电子怀挡设计,具备10.25寸双高清大屏幕和多重实用功能,如支持蓝牙钥匙、驻车舒享模式、电动天窗等。同时,新车还使用了婴儿级生态材料作为座椅,配备CN95级别空调滤芯及全新的空气净化系统,确保全程环保无污染。
    的头像 发表于 03-08 09:39 601次阅读

    几何E萤火虫301KM龙腾版纯电SUV,起售价5.98万元

    几何 E 萤火虫装配了电子怀挡、双10.25英寸高清显示屏并支持蓝牙钥匙、驻车舒享模式和电动天窗等先进功能。在环保领域,新车采用了适合婴儿使用的生态座椅材料,并安装了CN95级别的空调滤芯和新风系统。
    的头像 发表于 03-07 10:02 656次阅读

    如何制作自己的Arduino电容计

    在这个项目中,您将学习如何制作自己的Arduino电容计(测量电容器的值,范围从pF到1000的uF)。一般来说,电子爱好者喜欢设计自己的小工具而不是购买。在这个项目中,我们使用两种电容测量方法,即
    的头像 发表于 02-25 15:10 1458次阅读
    如何<b class='flag-5'>制作</b>自己的<b class='flag-5'>Arduino</b>电容计

    arduino如何停止loop循环

    Arduino的loop循环是其主要的程序执行部分,该循环将在Arduino开发板上持续运行,并且只有在程序被重新上传或开发板断电重启时才会停止。然而,在某些情况下,你可能需要在程序执行过程中停止或
    的头像 发表于 02-14 16:24 4217次阅读

    如何使用Arduino制作智能垃圾箱

    在这个项目中,我将向您展示如何使用Arduino制作智能垃圾箱,当您带着垃圾接近时,垃圾箱的盖子会自动打开。
    的头像 发表于 02-11 12:22 2854次阅读
    如何使用<b class='flag-5'>Arduino</b><b class='flag-5'>制作</b>智能垃圾箱

    使用Arduino Nano制作一个4×4×4 LED立方体

    在这个项目中,我们将使用 Arduino Nano 制作一个很酷的 4×4×4 LED立方体。LED 立方体,也称为 LED矩阵,可以照亮您的房间、学习空间或创客区域,使其看起来非常酷炫。此外,它非常容易构建,并帮助您在电子和编码方面发挥创意。
    的头像 发表于 02-11 12:07 3056次阅读
    使用<b class='flag-5'>Arduino</b> Nano<b class='flag-5'>制作</b>一个4×4×4 LED立方体

    2023年Arduino开放原码报告:持续茁壮的Arduino生态系!

    所谓出钱就是买一片Arduino开发板或是付费订阅Arduino Cloud云端服务,或单纯资金赞助;出力就是撰写Arduino相关的程序并无私的分享程序代码或回报错误或投入翻译等,笔者即有若干翻译新版
    的头像 发表于 01-25 16:45 1330次阅读
    2023年<b class='flag-5'>Arduino</b>开放原码报告:持续茁壮的<b class='flag-5'>Arduino</b>生态系!

    Arduino制作循迹小车教程

    Arduino制作循迹小车完全教程
    发表于 01-05 11:09 7次下载

    Arduino的功能及其限制

    Arduino是一种开源电子原型平台,它基于易于使用的硬件和软件,可以用于制作各种嵌入式系统。然而,尽管Arduino非常强大,但它也有一些功能上的限制。本文将详细介绍Arduino
    的头像 发表于 12-21 14:15 1147次阅读