心情灯,引擎盖下

那是大学二年级的时候,还有另外两个学生(John Mera和Ryan Smock),我负责设计工程班级的数字编码和有线小组项目。 我们有2个月的时间设计和建造该项目; 我们决定创建一种情绪灯,该情绪灯会根据接收到的声音的频率和振幅来改变颜色。 我们完全依靠自己来选择适合该项目的工具,材料和零件。 我们讨论了适合该工作的最佳电气设计类型,然后我们开始写下这个经过精心编码的难题所需的不同零件。 我们最终用C ++编写了音乐心情灯

但是,在我们开始编码之前,我们需要一个可以让我们的程序通过其流动的管道。 我们使用的系统非常简单,包括:Arduino,微控制器; RGB LED灯; 麦克风 光敏电阻; 常规电阻器; 面包板(用于电路); 一些跨接电缆; 最后,一些纸充当灯罩。 我们还使用电线将它们绑在一起。

在不使用可变电阻的情况下,我们实现了LED的各种亮度级别。 我们使用软件来调整标准固​​定亮度RGB LED的亮度。 我们使用脉冲宽度调制实现了这一目标。 在很短的时间内,如果我们在50%的时间内关闭LED并在其他50%的时间内打开LED,对于人眼来说,它似乎是50%的亮度。 听到的关键是“时间短”,时间段必须足够短,这样我们就不能看到它闪烁。 在这种情况下,LED的占空比为50%。 如果我们关闭LED(使用软件)70%的时间,然后再打开30%的时间,则LED将亮30%,其占空比为30%。

麦克风接收声音并将其转换为电信号。 在我们的代码中,我们将电信号的幅度与LED的强度(亮度)相关联,并将电信号的频率与光的波长(颜色)相关联。 我们花了一些时间对其进行调音并使其正确,这样我们才能在高频和高振幅声音(即节拍下降时)中获得最亮的红色。 如果您想了解更多有关情绪灯的信息,请阅读我以前的文章 在音乐情境灯系列中。