河南led灯批发联盟

一口气能把LED灯吹灭?看这个工程师爸爸是怎么实现的

21ic电子网 2021-08-25 07:49:20

 “要怎么样,才可以让 LED 蜡烛可以被吹熄呢?”


某天晚上,John Keefe 的女儿问了他这个问题。这问题看似天真,但 Keefe 一时也没有想到一个确切的答案;于是,父女俩花了整个晚上,终于在互联网这片大海里,找到他们的答案。


LED 蜡烛


这作品是一个简单的 LED “蜡烛”,LED 蜡烛在点燃后,只要对着它吹气(或者摆在风大的地方), LED 蜡烛就会熄灭,这时可以按下它的按钮,它就会重新被“点燃”。



如何侦测吹气

 

要了解 LED 蜡烛运作的原理,就必须了解 LED 蜡烛的核心零件——风速传感器的运转机制。有别于一般气象站用的叶扇式风速传感器,这里所使用的风速传感器,并没有会随着风而移动的零件;他是间接感测风速(其实跟我们会对着热汤,吹气降温的道理一样)。当你对着一个“温度高于室温”的物体吹起时,流经它的空气使它降温,这边使用的风速传感器,正是利用这个原理,透过测量一根加热过的电线温度变化、间接感测出风速。注1


材料


LED 蜡烛需要一下这些材料:

♦Arduino - 作者是用 Arduino Uno

♦风速传感器 - 作者是用从 Modern Device 取得的风速传感器

♦跳线 - 总共需要 9 条

♦LED 灯, 电阻, 按钮 – 都各一个就好

♦面包板 - 非必要,但如果是初学者建议使用,可以让接线更简单


不同零售商卖的风速传感器,规格可能不一样,如果你买到的风速传感器,跟作者买到的一样,没有排针的话,那你除了上面列出的材料外,还需要烙铁跟焊锡,并且先把排针焊到传感器电路板上;如果觉得零件动来动去不好焊的话,可以借助一些焊接小帮手。


组装

 

LED 蜡烛的线路配置图的如上,如果你已经是个 DIY 老手,这段你大可跳过,直接看下一段就好;如果你还是新手,也不要担心,接下来会一步步带你把蜡烛从无到有组装起来。


1、把面包板拿出来,并把 Arduino 放到它的右侧。

2、将按钮放到面包板的正中间,让它横跨中间的沟槽,它应该会有两只脚会在第 1 行,另外两只脚在第 3 行。

3、把电阻的其中一只脚放到面包板的第 3 行 J 栏,另一只脚放到第 3 行蓝色负号(-)栏。

4、把 LED 的两只脚往同个方向折 90 度,这样放到面包板上时就会平行于面包板的板面。

5、把 LED 灯的长脚放到面包板的第 21 行 A 栏,短脚放到第 23 行 A 栏。

6、把风速传感器的插针,插到面包板 A 栏的 26 到 29 行(也就是最下面 5 行),传感器的板子应该要伸出面包板外。

 


电子零件放好后,接下来就是伤眼力的跳线接接乐了。这边我们提供一个简单的表格,让你知道每一条跳线要接在哪里(没特别注明就是面包板的插槽),不过颜色的部分你并不一定要用一模一样的颜色注2,这只是为了方便你对照上面的线路配置图而已。

  


程序代码


如果你是个Arduino新手,请参阅https://www.arduino.cc/en/Guide/ArduinoUno,按照他们的指示来连接你的电脑。然后点击“复制代码到剪贴板”按钮。


打开你的Arduino软件和开始一个新的Arduino项目,从菜单中使用File→New 。你会得到一个大多空白的项目窗口。删除小的代码,单击空白窗口内的任何地方,然后Edit→Paste,将网上复制的代码粘贴过来。使用File→Save保存您的工作。

 


现在使用USB电缆上传代码到Arduino。你可以从菜单中,通过选择 Sketch→Upload,但是一个更简单的办法是点击上传箭头上方的蓝色Arduino软件窗口。您应该看到 “Done Uploading”的信息在窗口下部的Arduino和你的LED这时应该被点亮。恭喜你!你刚刚完成了你的Arduino编程。


如果你想要改变 LED 蜡烛对于风速的灵敏度,你可以把 if (WindSpeed_MPH > 6 ) { 这行的 6 改成其他数字。数字改得越小,蜡烛就越灵敏,反之,数字改得越大,蜡烛就越不灵敏。


如何工作的


随着空气在传感器的“热线”(不是很烫)上流动,线缆开始冷却,其电导率也在变化。板子上的其他电子产品检测到这种变化后把它变成Arduino可以读取的值。当这些值达到一定的阈值,代码就熄灭了LED蜡烛,等下次有人按下按钮时才会再次点亮LED蜡烛。

 

关于代码的建议


在这个项目中会用到一些数学知识,虽然你不必完全理解,但,我觉得指出并解释下这些基本的数学符号是有必要的。


谁都知道10²的意思,在Arduino里, 它被写成pow(10, 2),意思就是100!


如果你详细看一下这个项目的代码,你会发现两个“老朋友” void setup() 和 void loop() ,这两个几乎用在每一个Arduino程序中。


再往下看,你会发现,它们被加入了一些新的结构: void douseCandle() 和void lightCandle(). 这代表什么呢?这是我创建的两个函数在代码中实现特定的任务。


就像这样:

if (WindSpeed_MPH > 6) {

douseCandle();

}


当程序“看到”douseCandle(), 它就会寻找我刚创建的函数,就是这样写的:


void douseCandle() {

// turn LED off

digitalWrite(led, LOW);

}


当函数被调用时, 程序在函数的brackets { }之间运行代码  — 把LED pin设定为LOW.

函数非常有用,你可以为代码创建函数,任何时间,在你需要时都可以调用函数,这样,你就不用老是重复工作了,就是所谓的DRY code.


延伸讨论


既然你现在已经了解风速传感器背后运作的原理,也知道如何让 Arduino 读取当下的风速,接下来你可以试试用风速传感器和 Arduino 做一个个人气象站。不过,想要风速测得准一点的话,记得参考这里,看看要怎么校正传感器。


另外,既然你的 LED 蜡烛 Prototype 已经成功了,你可以试着把它的外观做成一根蜡烛。你需要把 LED 蜡烛缩小;试试用 Arduino Nano(或其他 跟 Arduino 兼容的小型开发版)取代 Arduino Uno,并且舍弃面包板这个中介,直接把跳线焊到板子上,再把它整个放到纸桶中,你就有一个栩栩如生的可吹熄蜡烛了!


参考数据


 注1:更详细的来说,传感器其实也不是直接测量温度,它测的是“电线导电度”的变化,这是因为电线的导电度会随着温度而变化。透过测量导电度,传感器就可以间接的知道电线温度的变化,进而知道当下的风速。
 
注2:跳线都是一样的,颜色只是为了方便区分不同条的跳线,而且跳线的两端也没有任何不同,没有“插反”这种事。


(本文作者:John Keefe 原文链接:http://makezine.com/projects/make-an-led-candle-you-can-blow-out/)



特别推荐