VU仪表或体积仪表是电子领域中非常受欢迎且有趣的项目。我们可以将 音量计 视为 均衡器,它存在于音乐系统中。在其中我们可以看到LED根据音乐的变化,如果音乐很大,则均衡器达到峰值,更多的LED发光,如果音乐低,则更少的LED发光。音量计(VU)是LED上声级强度的指示器或表示,也可以用作 音量测量设备。
以前,我们是在不使用微控制器的情况下构建VU表的,音频输入是从Condenser Mic获得的。这次我们使用Arduino构建VU Meter,并从3.5毫米插孔获取音频输入,以便您可以使用AUX电缆或3.5毫米音频插孔轻松地从手机或笔记本电脑提供音频输入。您可以轻松地在Breadboard上构建它,但是在这里,我们使用EasyEDA在线PCB模拟器和设计器将其作为Arduino Shield在PCB上进行设计。
所需组件:
- Arduino UNO
- VU Meter Arduino Shield(自行设计)
- 电源供应
VU Meter Arduino防护罩的组件:
- 3.5毫米音频插孔
- 贴片电阻100 ohm(10)
- 发光二极管
- 防盗条
为Arduino设计体积计(VU)盾:
为了设计 用于Arduino的VU Meter Shield, 我们使用了EasyEDA,其中首先设计了原理图,然后通过EasyEDA的自动布线功能将其转换为PCB布局。
EasyEDA是一个免费的在线工具和一站式解决方案,可轻松开发您的电子项目。您可以一键绘制电路,对其进行仿真并获得其PCB布局。它还提供定制的PCB服务,您可以以非常低的价格订购设计的PCB。在此处查看有关如何使用Easy EDA进行原理图,PCB布局,模拟电路等的完整教程。
EasyEDA最近发布了其新版本(3.10.x),其中他们引入了许多新功能并改善了整体用户体验,这使EasyEDA更加易于使用,可用于设计电路。新版本包括:改进的MAC体验,改进的组件搜索对话框,一键式更新PCB布局,在原理图下方的框架中添加设计说明以及更多其他功能,您可以在此处找到EasyEDA 3.10版的所有新功能。此外,他们即将推出其桌面版本,该版本可下载并安装在您的计算机上以供离线使用。
我们已经公开了此VU仪表板的电路和PCB设计,因此您只需单击链接即可访问电路图和PCB布局。
以下是EasyEDA的PCB布局顶层快照,您可以通过选择“层”窗口中的层来查看PCB的任何层(顶层,底层,顶层丝绸,底层丝绸等)。
如果您在使用EasyEDA时发现任何问题,请查看我们先前创建的100瓦逆变器电路,在此逐步说明了该过程。
在线订购PCB:
完成PCB设计之后,您可以单击 Fabrication output 图标 ,这将带您进入PCB订购页面。在这里,您可以在Gerber Viewer中查看您的PCB或下载您的PCB的Gerber文件并将其发送给任何制造商,直接在EasyEDA中订购它也更加容易(而且更便宜)。在这里,您可以选择要订购的PCB数量,所需的铜层数,PCB的厚度,铜的重量,甚至PCB的颜色。选择所有选项后,单击“保存到购物车”并完成您的订购,几天后您将获得PCB。
在订购PCB几天后,我们得到了VU Meter Arduino Shield PCB,我们发现PCB的包装精美,并且PCB的质量令人印象深刻。
拿到PCB之后,我们已经在PCB上安装并焊接了所有必需的组件和防盗条,您可以在这里进行最后的外观:
现在我们只需要在Arduino上放置这个VU Meter Shield。将盾牌的针脚与Arduino对齐,然后将其牢牢按在Arduino上。现在,只需将代码上传到Arduino并打开电路电源即可!您的VU仪表可以在音乐上跳舞。在末尾查看视频以进行演示。
电路说明:
在此VU Meter Arduino Shield中,我们使用了8个LED,其中2个LED红色是较高的音频信号,2个黄色LED是中等音频信号,而4个绿色LED是较低音频信号。我们可以通过连接LCD,ESP8266 Wi-Fi模块,DHT11 H&T模块,稳压器,更多的VCC,+ 5v,+ 3.3v和GND引脚在此Shield中添加更多选项。但是在此项目演示中,我们仅组装了LED,音频插孔和电源LED。在此屏蔽层中,我们使用了一些SMD组件,即电阻器和LED。另外,我们有两个选项可将音频信号直接施加到此板上,或者直接使用音频插孔。
该项目的电路非常简单,我们在引脚号D3-D10处连接了8个LED。音频插孔直接连接到Arduino的模拟引脚A5。
如果需要连接LCD,则可以使用诸如lcd(14,15,16,17,18,2)之类的连接来连接J1和J7处的LCD(请参见下面的电路)。
编程说明:
这个方案的Arduino VU表是很容易的。在此代码中,我们没有为特定的LED命名。我只是记住连接并直接编写代码。
在给定的 void setup() 函数中,我们初始化LED的输出引脚。在这里,我们可以看到一个 for循环 ,其中我们将i = 3的值初始化并将其运行为10。这里i = 3是Arduino的第三个引脚,整个 for循环 将初始化Arduino的D3-D10引脚。
void setup(){for(i = 3; i <11; i ++)pinMode(i,OUTPUT); }
现在在 void loop() 函数中,我们从Arduino的A5引脚读取模拟值,并将该值存储在变量 “ value”中 。现在,将此 “值” 除以10得到一个结果,该结果直接用于通过for循环获取Arduino的引脚号。
void loop(){int value = analogRead(A5); 值/ = 10; for(i = 3; i <= value; i ++)digitalWrite(i,HIGH); for(i = value + 1; i <= 10; i ++)digitalWrite(i,LOW); }
可以通过示例进行解释,例如假设模拟值为50,现在将其除以10,我们将得到:
价值= 50
值=值/ 10
值= 50/10 = 5
现在我们已经使用 了 像这样 的循环 :
for(i = 3; i <= value; i ++)digitalWrite(i,HIGH);
在上面的“ for”循环中,i = 3是D3,而Value = 5意味着D5。
因此,这意味着回路将从D3转到D5,并且在D3,D4和D5连接的LED指示灯将亮起。
在下面的“ for”循环中, i = value + 1 表示value = 5 + 1表示D6,而i <= 10表示D10。
for(i = value + 1; i <= 10; i ++)digitalWrite(i,LOW);
意味着回路将从D6转到D10,并且在D6-D10连接的LED将为“ OFF”。
这就是我们可以构建自己的VU Meter Arduino Shield的方式,其中LED会根据声音的强度发光,就像您可以在下面的视频中查看的一样。您可以使用3.5毫米音频插孔或AUX电缆直接从手机或笔记本电脑提供输入,并享受美丽的照明效果。