电子发烧友App

硬声App

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

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

3天内不再提示
创作
电子发烧友网>电子资料下载>电子资料>Arduino合成器V3设计案例

Arduino合成器V3设计案例

2022-08-11 | zip | 0.01 MB | 次下载 | 2积分

资料介绍

电路板图如下:
pYYBAGL0Wa6AIWinAACkBXbvqxE604.jpg
pYYBAGL0WbGAdEXrAACiaOApkfE439.jpg
poYBAGL0WbOAcYYoAACcBiX6S14529.jpg
pYYBAGL0WbaAbXSeAAB-i5dMM1w708.png

描述

Arduino 合成器 V3

 

嘿伙计们怎么了!

所以这是我的 Arduino Synth V3,它是由 Arduino Nano 驱动的 DIY 合成器。

 

 

poYBAGL0WbyANFL6ABA8YKe43l4712.jpg

 

它有 12 个按钮开关和两个用于改变模式的 ON/OFF 开关和两个用于改变音高和速度的电位器

通过更改 Pitch Potentiometer,我们可以通过按任意 12 个按钮来更改输出波形,从而产生酷炫的科幻声音。它的工作原理与普通键盘合成器非常相似。

我制作合成器已经有一段时间了,制作了两个与这个工作相同的合成器,但它们都使用 Mozi 库来运行,但这个使用简单的代码,通过按钮和开关的状态调制输出。

 

这篇文章是关于这个合成器的整个构建过程,所以让我们开始吧。

 

所需材料

以下是我在此构建中使用的东西-

  • 定制PCB
  • Arduino纳米
  • 电位器
  • 开/关
  • 按按钮
  • 扬声器 4 欧姆
  • 排针母头

 

原理图

 

pYYBAGL0Wb-AMaFcAAGOzMnqexU345.jpg

 

该板的原理图很简单,Arduino Nano 连接了 12 个按钮。每个 Push Button 都连接一个 IO 端口,当我们按下任何按钮时,它会将 IO 端口拉低至 GND。

两个 ON-OFF 开关也是如此,但是当我们按下它们时,它们会使 IO 引脚拉下更长的时间。然后两个 Pot 用 A4 和 A5 连接。

PAM8403 模块与输出引脚 A2 相连,它放大信号并使其响亮。

 

PCB设计

 

poYBAGL0WcKAKXyBAAMuKMstifg584.png

 

完成原理图后,我导出了网表并开始进行 PCB 设计。

至于外形,我取材于通用键盘的美学和整体外观,Arduino Nano 放置在右上角,扬声器放置在 TOP 左侧。

我还在设计中添加了一些假钥匙,我在这些假钥匙上放置了按钮。也许未来的版本会有真正的电容式触摸键。

此外,我已经从假钥匙上移除了阻焊层,因此铜区域将未被填充,这将提供超酷的银色外观,因为电路板将被 HASL 覆盖。

 

从 PCBWAY 获取 PCB

 

 

poYBAGL0WcWAcR4YAAL1EMIQM-A547.png

 

poYBAGL0WciAA3P_AACdQd76v6Y526.jpg

 

pYYBAGL0WcqAed9oAACqS9LcTes124.jpg

 

pYYBAGL0WcyAcluQAACR6ppBeMw997.jpg

 

完成 PCB 后,我将 Gerber 数据发送到 PCBWAY 以获取样品。

我选择带有黑色丝印的白色阻焊层,因为如果我们添加黑色丝印图案,白色 PCB 通常看起来很酷。

我很快就收到了 PCB。至于PCB质量,它是一流的。

使用他们的服务已经有一段时间了,我不得不说,这对于入门来说是相当不错的。

 

看看我的复杂设计,我在 PCB 上放置了许多不寻常的图案,例如不规则的轮廓和阻焊层形状,这很难制作,但他们在制作 PCB 方面做得非常出色,没有任何问题。

 

电路板组装

poYBAGL0Wc6AfCD0AADcKm_3oNo171.jpg

 

在开始 PCB 组装之前,我们需要收集我们将在这个项目中使用的所有组件。

 

添加接头引脚、开关和电位器

poYBAGL0WdGAUSrtAACydDqLd8s778.jpg

 

poYBAGL0WdSAXta4AAC25xCVlW4644.jpg

 

我们首先为 Arduino Nano、开关和电位器添加 Header Pins。

 

添加按钮

pYYBAGL0WdeAYDbiAAC2z7pXrEs103.jpg

 

poYBAGL0WdmAKLAfAAC4-kiq1Ug548.jpg

 

接下来,我们将 12 个 Push Buttons 一个一个地添加到它们的位置。

 

焊接组件

pYYBAGL0WdyAbr0hAADD30A0uH4285.jpg

 

将所有开关和插头引脚放置到位后,我们使用普通烙铁和焊锡线将它们的端子焊接到 PCB。

 

添加 PAM8403 模块

poYBAGL0WeCABV4DAADZZApQEcA005.jpg

 

pYYBAGL0WeKAFOQ8AAC3M5PwGAs368.jpg

 

poYBAGL0WeWAbbgKAADEJ2bHpAs577.jpg

 

poYBAGL0WeeAfZn8AAC0TQChcgc454.jpg

 

pYYBAGL0WeqATPQkAACcmurGWLE024.jpg

 

接下来,我们通过使用一些公头引脚添加 PAM8403 模块,我们在 PCB 上添加公头引脚,然后在头引脚上添加 PAM8403。

最后,我们焊接引脚并将模块永久固定到位。

 

添加扬声器

pYYBAGL0WeyALoiLAAC1X1AdHTQ014.jpg

 

pYYBAGL0We-AdzEcAACxaMHIguI618.jpg

 

poYBAGL0WfGAWWw3AAC8tLOXkXA956.jpg

 

最后,我们在其位置添加一个扬声器。

我在 PCB 上添加了一个孔,这里的目标是通过这个孔从背面添加一个扬声器。扬声器粘在 PCB 上,然后我们通过两条跳线将扬声器的端子与 PAM8403 CON2 端口连接。

完成后,PCB就完成了。

 

PCB组装结果

pYYBAGL0WfWAch1eAAC5x5OI2_g953.jpg

 

pYYBAGL0WfeAStlyAAC5y9MQogk768.jpg

 

这是到目前为止的结果,所有组件都焊接好了,电路板就完成了。它看起来很像 Arduino Nano Sheild 或插件板。

下一步是将 Arduino Nano 添加到此板上并将主草图刷入 MCU

 

主要代码

 

这是我使用的主要草图。

C =  ;
CS =  ;
D =  ;
DS =  ;
E =  ;
F =  ;
FS =  ;
G =  ;
GS =  ;
A =  ;
AS =  ;
B =  ;
八八度 =  ;
八达利巴 =  ;
 tiempo = interwetten与威廉的赔率体系
读取(A4);
 pitch_bend = 模拟读取(A5);


c =  ;
cs =  ;
d =  ;
ds =  ;
e =  ;
f =  ;
fs =  ;
g =  ;
gs =  ;
a =  ;
 =  ;
 b =  ;

  {

pinMode(C,INPUT_PULLUP);
pinMode(CS,INPUT_PULLUP);
pinMode(D,INPUT_PULLUP);
pinMode(DS,INPUT_PULLUP);
pinMode(E,INPUT_PULLUP);
pinMode(F,INPUT_PULLUP);
pinMode(FS,INPUT_PULLUP);
pinMode(G,INPUT_PULLUP);
pinMode(GS,INPUT_PULLUP);
pinMode(A,INPUT_PULLUP);
pinMode(AS,INPUT_PULLUP);
pinMode(B,INPUT_PULLUP);
pinMode(octabajo, INPUT_PULLUP);
pinMode(octarriba, INPUT_PULLUP);
pinMode(A4,INPUT_PULLUP);

pinMode(A2,输出);

Serial.begin(  );
}



  {
 
 
digitalRead(  );
数字读取();
 
Serial.println(analogRead(A4));

(!digitalRead(C)){
音调(A2, c+(analogRead(A5)/  ));
延迟(模拟读取(A4));
数字读取(C);
}
 (!digitalRead(C)&&!digitalRead(octabajo)) {
音调(A2, c/  +((analogRead(A5)/  )));
延迟(模拟读取(A4));
数字读取(C);
}
 (!digitalRead(C)&&!digitalRead(octarriba)) {
音调(A2, c*  +((analogRead(A5)/  )));
延迟(模拟读取(A4));
数字读取(C);
}


数字阅读(CS);
(!digitalRead(CS)){
音调(A2, cs+(analogRead(A5)/  ));
延迟(模拟读取(A4));
数字阅读(CS);
}
(!digitalRead(CS)&&!digitalRead(octabajo)) {
音调(A2, cs/  +((analogRead(A5)/  )));
延迟(模拟读取(A4));
数字阅读(CS);
}
(!digitalRead(CS)&&!digitalRead(octarriba)) {
音调(A2, cs*  +((analogRead(A5)/  )));
延迟(模拟读取(A4));
数字阅读(CS);
}

数字读取(D);
(!digitalRead(D)){
音调(A2, d+(analogRead(A5)/  ));
延迟(模拟读取(A4));
数字读取(D);
}
 (!digitalRead(D)&&!digitalRead(octabajo)) {
音调(A2, d/  +((analogRead(A5)/  )));
延迟(模拟读取(A4));
数字读取(D);
}
 (!digitalRead(D)&&!digitalRead(octarriba)) {
音调(A2, d*  +((analogRead(A5)/  )));
延迟(模拟读取(A4));
数字读取(D);
}

数字读取(DS);
(!digitalRead(DS)){
音调(A2, ds+(analogRead(A5)/  ));
延迟(模拟读取(A4));
数字读取(DS);
}
(!digitalRead(DS)&&!digitalRead(octabajo)) {
音调(A2, ds/  +((analogRead(A5)/  )));
延迟(模拟读取(A4));
数字读取(DS);
}
(!digitalRead(DS)&&!digitalRead(octarriba)) {
音调(A2, ds*  +((analogRead(A5)/  )));
延迟(模拟读取(A4));
数字读取(DS);
}

数字阅读(E);
(!digitalRead(E)){
音调(A2, e+(analogRead(A5)/  ));
延迟(模拟读取(A4));
数字阅读(E);
}
 (!digitalRead(E)&&!digitalRead(octabajo)) {
音调(A2, e/  +((analogRead(A5)/  )));
延迟(模拟读取(A4));
数字阅读(E);
}
 (!digitalRead(E)&&!digitalRead(octarriba)) {
音调(A2, e*  +((analogRead(A5)/  )));
延迟(模拟读取(A4));
数字阅读(E);
}

数字读取(F);
(!digitalRead(F)){
音调(A2, f+(analogRead(A5)/  ));
延迟(模拟读取(A4));
数字读取(F);
}  (!digitalRead(F)&&!digitalRead(octabajo)) {
音调(A2, f/  +((analogRead(A5)/  )));
延迟(模拟读取(A4));
数字读取(F);
}
 (!digitalRead(F)&&!digitalRead(octarriba)) {
音调(A2, f*  +((analogRead(A5)/  )));
延迟(模拟读取(A4));
数字读取(F);
}

数字读取(FS);
(!digitalRead(FS)){
音调(A2, fs+(analogRead(A5)/  ));
延迟(模拟读取(A4));
数字读取(FS);
}
 (!digitalRead(FS)&&!digitalRead(octabajo)) {
音调(A2, fs/  +((analogRead(A5)/  )));
延迟(模拟读取(A4));
数字读取(FS);
}
(!digitalRead(FS)&&!digitalRead(octarriba)) {
音调(A2, fs*  +((analogRead(A5)/  )));
延迟(模拟读取(A4));
数字读取(FS);
}

数字阅读(G);
(!digitalRead(G)){
音调(A2, g+(analogRead(A5)/  ));
延迟(模拟读取(A4));
数字阅读(G);
}
(!digitalRead(G)&&!digitalRead(octabajo)) {
音调(A2, g/  +((analogRead(A5)/  )));
延迟(模拟读取(A4));
数字阅读(G);
}
(!digitalRead(G)&&!digitalRead(octarriba)) {
音调(A2, g*  +((analogRead(A5)/  )));
延迟(模拟读取(A4));
数字阅读(G);
}

数字阅读(GS);
(!digitalRead(GS)){
音调(A2, gs+(analogRead(A5)/  ));
延迟(模拟读取(A4));
数字阅读(GS);
}
 (!digitalRead(GS)&&!digitalRead(octabajo)) {
音调(A2, gs/  +((analogRead(A5)/  )));
延迟(模拟读取(A4));
数字阅读(GS);
}
 (!digitalRead(GS)&&!digitalRead(octarriba)) {
音调(A2, gs*  +((analogRead(A5)/  )));
延迟(模拟读取(A4));
数字阅读(GS);
}

数字阅读(一);
(!digitalRead(A)){
音调(A2, a+(analogRead(A5)/  ));
延迟(模拟读取(A4));
数字阅读(一);
}
 (!digitalRead(A)&&!digitalRead(octabajo)) {
音调(A2, a/  +((analogRead(A5)/  )));
延迟(模拟读取(A4));
数字阅读(一);
}
 (!digitalRead(A)&&!digitalRead(octarriba)) {
音调(A2, a*  +((analogRead(A5)/  )));
延迟(模拟读取(A4));
数字阅读(一);
}

数字阅读(AS);
(!digitalRead(AS)){
音调(A2,  +(analogRead(A5)/  ));
延迟(模拟读取(A4));
数字阅读(AS);
}
 (!digitalRead(AS)&&!digitalRead(octabajo)) {
音调(A2,  /  +((analogRead(A5)/  )));
延迟(模拟读取(A4));
数字阅读(AS);
}
 (!digitalRead(AS)&&!digitalRead(octarriba)) {
音调(A2,  *  +((analogRead(A5)/  )));
延迟(模拟读取(A4));
数字阅读(AS);
}

数字读取(B);
(!digitalRead(B)){
音调(A2, b+(analogRead(A5)/  ));
延迟(模拟读取(A4));
数字读取(B);
}
 (!digitalRead(B)&&!digitalRead(octabajo)) {
音调(A2, b/  +((analogRead(A5)/  )));
延迟(模拟读取(A4));
数字读取(B);
}
 (!digitalRead(B)&&!digitalRead(octarriba)) {
音调(A2, b*  +((analogRead(A5)/  )));
延迟(模拟读取(A4));
数字读取(B);
}

无音(A2);


}

poYBAGL0WfqAEDQnAADbux5v0FY331.jpg

 

poYBAGL0WfyAPYIqAAC9S4PZPTw181.jpg

 

我们首先在其位置添加 Arduino Nano,然后使用代码对其进行闪烁,结果将是一个正常工作的合成器播放随机嗡嗡声,我们可以通过按下按钮或调制电位器或 ON/OFF 开关来改变声音。

 

结果

 

这是总体结果,请观看演示视频

 

 

这就是今天的内容,请继续关注,我很快就会带着一个新项目回来。

特别感谢 PCBWAY 对这个项目的支持,看看他们以更低的成本获得优质的 PCB 服务。

和平

 

 

 

代码


下载该资料的人也在下载 下载该资料的人还在阅读
更多 >

评论

查看更多

下载排行

本周

  1. 1山景DSP芯片AP8248A2数据手册
  2. 1.06 MB  |  532次下载  |  免费
  3. 2RK3399完整板原理图(支持平板,盒子VR)
  4. 3.28 MB  |  339次下载  |  免费
  5. 3TC358743XBG评估板参考手册
  6. 1.36 MB  |  330次下载  |  免费
  7. 4DFM软件使用教程
  8. 0.84 MB  |  295次下载  |  免费
  9. 5元宇宙深度解析—未来的未来-风口还是泡沫
  10. 6.40 MB  |  227次下载  |  免费
  11. 6迪文DGUS开发指南
  12. 31.67 MB  |  194次下载  |  免费
  13. 7元宇宙底层硬件系列报告
  14. 13.42 MB  |  182次下载  |  免费
  15. 8FP5207XR-G1中文应用手册
  16. 1.09 MB  |  178次下载  |  免费

本月

  1. 1OrCAD10.5下载OrCAD10.5中文版软件
  2. 0.00 MB  |  234315次下载  |  免费
  3. 2555集成电路应用800例(新编版)
  4. 0.00 MB  |  33566次下载  |  免费
  5. 3接口电路图大全
  6. 未知  |  30323次下载  |  免费
  7. 4开关电源设计实例指南
  8. 未知  |  21549次下载  |  免费
  9. 5电气工程师手册免费下载(新编第二版pdf电子书)
  10. 0.00 MB  |  15349次下载  |  免费
  11. 6数字电路基础pdf(下载)
  12. 未知  |  13750次下载  |  免费
  13. 7电子制作实例集锦 下载
  14. 未知  |  8113次下载  |  免费
  15. 8《LED驱动电路设计》 温德尔著
  16. 0.00 MB  |  6656次下载  |  免费

总榜

  1. 1matlab软件下载入口
  2. 未知  |  935054次下载  |  免费
  3. 2protel99se软件下载(可英文版转中文版)
  4. 78.1 MB  |  537798次下载  |  免费
  5. 3MATLAB 7.1 下载 (含软件介绍)
  6. 未知  |  420027次下载  |  免费
  7. 4OrCAD10.5下载OrCAD10.5中文版软件
  8. 0.00 MB  |  234315次下载  |  免费
  9. 5Altium DXP2002下载入口
  10. 未知  |  233046次下载  |  免费
  11. 6电路仿真软件multisim 10.0免费下载
  12. 340992  |  191187次下载  |  免费
  13. 7十天学会AVR单片机与C语言视频教程 下载
  14. 158M  |  183279次下载  |  免费
  15. 8proe5.0野火版下载(中文版免费下载)
  16. 未知  |  138040次下载  |  免费