自制电子鼓DIY图解

电子说

1.3w人已加入

描述

步骤1:需要的东西

* ELECTRONIC STUFF

#Arduino UNO R3

#SD卡屏蔽层

#USB电缆

#5 V适配器

#Micro SD卡

#压电换能器(又名压电磁盘)

#带状导线

#单芯屏蔽线。

#连接线。

#并行PCB。

#2个接触跳线。

#3.5mm音频插孔(公n母)

#电阻-1M和10K(每个约10个)

*硬件杂物

#PVC管(3.5厘米,理想厚度)-3米

#PVC T型接头

弯头

联轴器

塞子

#Thermocoal(实厚)。

#橡胶样材质(诚实地不要使用它的花哨名称。:)

任何具有求和刚度和弹跳力的材料。我是从鞋类制造商那里购得的。它们被用来制造鞋子的灵魂。 )#Rexin(这种材料将是人造膜。我使用了类似材料的黑布

.u可以使用任何使其看起来很酷的东西.u甚至可以使用皮革

。这不会影响方式你的鼓声。)#看起来很酷的东西,让你放进去。(我用了一个旧的笔记本电脑

cooler-pad.n里面的房间看起来很棒。)

*需要工具

#焊接设备。

#切割钳

#剥线钳

#剪刀(重型物品)

#Thermocol切割器

#钢锯

#测量

#Fevicol SR&SH(印度木材和制鞋业用胶水制造商。您可以在您所在的国家或地区使用相同的胶水:P)

#绝缘胶带。#Ducttape或大提琴胶带或美纹纸胶带。#砂纸(金属的颗粒大小各不相同。)#M密封(可模制成任何尺寸和棒状的材料) )##喷涂漆。(您的选择。我用黑色。)

*需要软件。

#Arduino编程环境。

#SOX (命令行格式转换器)

#FL Studio。

*需要其他填充物。

#一台用于对Arduino编程的PC。

#一个用于听到声音的放大器。

步骤2:工作

pcb

工作

在此步骤中,尝试尽可能简单地解释我们的E DRUM(或KIDU

)的工作。我只简单地谈谈制作每个子系统的步骤,然后在下面不详细介绍它们步骤。

由于我们正在处理电子鼓,因此需要将机械脉冲(在鼓上播放)覆盖到电信号中。此任务由压电圆盘完成。我们制造的鼓将包含1个这样的压电传感器。

当在磁盘上施加机械压力时,会产生电信号,其强度与压力成正比。

发送到Arduino模拟引脚(通过下拉电阻,稍后再解释)。由于UNO上只有6个anaog引脚。,将使用的鼓和的数量限制为6个。

我们使用数字引脚触发底鼓和扼流圈。

arduino还通过SPI引脚连接到SD卡屏蔽层。 。

(即引脚13到10)。

现在程序。如您所知,arduino的模拟引脚将其模拟输入转换为0到1024之间的值。这样,如果该值超过特定的画眉保持值,则从sd卡中提取相应的

音频文件,然后通过启用PWM的引脚对其进行播放。说起来容易做起来难。如果我们需要不使用任何音频解码器直接播放SD卡中的音频文件,则需要克服一些障碍。(稍后将对此进行详细说明。)

KIDU的另一个优势是因为它不需要任何控制按钮。

我已经对其进行了编程,以便可以使用鼓本身来

选择击鼓风格。

步骤3:框架

pcb

pcb

制作框架

我不太擅长机械领域的东西。.,但是我尽力了。

用于制造鼓和结构或框架。它使用了某些材料(不是最好的材料),但是我使用它们是因为它们易于使用,并且非常便宜且轻巧。

但是,这一步非常简单。任何一个具有低成像性的材料都可以制造。

请遵循结构框架图。

为了制作KIDU的框架,我使用了直径为3.5厘米的PVC管。

需要大约3米长我们需要将这3米长的pvc转换成如图所示的结构。

我可以给您精确测量框架部件的数量。但是

说实话。,我从来没有已经将它们切成确切的长度。我只剪了1米的pVC,并检查了这是否是我需要的长度。我认为我测量到的它太多了,并做了一点标记。我测量了我发现的高度

玩起来很舒服。我测量了4个这样的支柱。他通过这种反复试验的方法来确定所有组件的长度。但是令人惊讶的是,没有浪费任何东西。因为框架的所有组件都很小。并且在那里有很多连接。所以我使用了几乎上升了2.7米。剩下的很少了。

这是我使用的方法(有趣的方式)。

但是对于那些不喜欢太多有趣的人,请在另一张图上测量并标记。

命名框架组件。

这很重要,因为,当我们将它们组装在一起时,这非常有用。如果我们有很多组件并且没有办法知道哪个会很混乱。因此,我组成了一个结构

框架装配图。每个组件都有一个名称。

BL2-后左2

BL1-后左1

SL1-后左1

SL2-侧向左2

FL2-前向左2

FL1-前向左1

GL-左向

ML-中向左

M-中向

MR-中向右

GR -GOINT RIGHT

FR1 -FRONT RIGHT 1

FR2 -FRONT RIGHT 2

SR1 -SIDE RIGHT 1

SR2 -SIDE RIGHT 2

BR1 -BA CK RIGHT 1

BR2 -BACK RIGHT 2

(我的关节拼写错误。但是我很想去:P)

现在将整个东西连接在一起,没有鼓。 》使用喷漆进行喷涂。

提示:#在管道内部和外侧命名组件。

以防被油漆覆盖。

#喷涂时请记住至少要保持喷涂状态从

workpice离开25厘米。在喷涂时一定要移动,以获得良好的光洁度。

#将工件放在报纸上,以防止油漆破坏其他任何东西。

步骤4:制作鼓

制作鼓

我不太擅长机械方面的事情。。但是我尽力了。

用于制造鼓和结构或框架。它使用了一些材料

(不是最好的材料)但是我用它们是因为它们易于使用,并且非常便宜且轻巧。

如图所示,该鼓共有3层。大部分鼓都充满了我使用的是Thermocol(更好的刚性)。我对标准鼓组的鼓尺寸进行了搜索。然后在大块的Thermocol板上切成四个直径的圆。如下图所示。切下直径相同的rexin和有弹性的材料,如图所示。现在,在Thermocol的中心切出一个圆柱状的凹槽,使T结的tail部分紧紧地插入孔中。现在在Thermocol的t结部分附近标记4个位置。(请注意,这只是为了获得更大的强度。即使鼓手敲鼓,鼓也会掉落。

困难。)。

现在,您已经知道连接处在鼓上了,

移除结点。现在使用砂纸。,将Thermocol的侧面

。这是为了消除切割时可能产生的任何变形。

沿轴在热煤上形成一个凹槽。(轴是pvc管所在的假想线

。)

现在申请fevico l(SH级)位于热煤

和T形接合处的树丛壁上。请勿使用SR级coz,因为它将熔化热可可胶。(fevicol是印度胶水制造商的名称.ill也把图片放在照片上。您可以在您所在的国家/地区使用wat。)然后用一根细绳子将T结和Thermocol绑在一起。将细绳串成一串,穿过我们在Thermocol上切开的小树林。现在将其绑紧T结上的硬结。在串上接触

SR fevicol时应使其碰到PVC T结(不要在Thermocol上弄破SR。)SR会使PVC融化。 》然后将Thermocol固定在t结上。

现在拿一个压电盘,用2股带状导线焊接(从10股带状导线的2条)

确保用绝缘胶带将两根引线绝缘。现在将另一端的电线焊接到3.5mm音频插孔上,用一块小的塑料片拧紧插孔,并确保电线的长度等于半径

感光鼓。(我们不希望任何多余的电线从感光鼓中伸出。)

使用SR胶水,将压电磁盘粘在我们先前切出的

bolson材料的中心。绝缘胶带粘电线a

然后将磁盘放在圆上。现在将包含压电磁盘

的一侧粘贴到thermocol上。确保3.5插孔正确放置。可以从硒鼓的外面插入

(仅使用SH粘附在Thermocol上。)

现在使用SR胶将毒素粘附在有弹性的材料上。留待干燥。

现在用于喷涂感光鼓。我使用了喷漆(油漆-a-can)。问题是您不能直接在Thermocol上使用此涂料。因为它会产生与SR胶相同的效果。它会熔化整个物体。在将其喷涂之前,先在其顶部涂上胶带。

我还先涂了一层新闻纸,然后涂了一层胶带。

(不是必需的)。

涂上一层油漆。可以从鼓上移25厘米远,然后不断地喷洒,以获得良好的光洁度。否则,它可能会不均匀。

晾干。5分钟后重复。

涵盖了鼓的制作。但是制作making和踏板

将在下一步骤中进行说明。一个问题是我无法拍摄br和脚踏板的制作。我也没有一刻就把它们和我在一起。但是生病了我要尽快把它们照相并上传。

立即加载步骤。

提示:#每当您使用以前使用过的溶剂(如fevicol SH或SR)时,始终在样品上进行测试

》将其应用到原件上。

(我想强调这一点,是因为我在Thermocol上使用

SR浪费了1个大鼓。整件事融化成guie黏糊糊的泥浆:()

#插孔(固定压电),请确保插孔

位于鼓的易于插入的区域。(您不希望插孔位于鼓的左侧或右侧。因为可能很难另一个鼓侧面出现。

#始终使用总和标记来测量和标记鼓上的参数。

#我们将一起削减所有4个鼓的重要性。 。

因此可以轻松地标记出它们属于哪个鼓及其轴。 》#在粘贴任何东西之前,请始终检查其在框架上的状态。

注意:-根据我搜索过的网站的标准鼓尺寸。

18 x 22英寸低音鼓

9 x 12和10 x 13英寸架子鼓

16 x 16英寸落地鼓

5.5 x 14英寸小军鼓

步骤5:制作控制台

制作控制台。

基本上是将所有回路放置在一个漂亮的盒子中。

整齐地拼凑一种方法,可以与

在控制台上,我使用了一个旧的USB供电的笔记本电脑冷却器垫。我从垫子上取下了

风扇,并用一小块硬纸板粘了起来。将

SD卡护罩连接到arduino和将其拧紧到硬纸板上。

另一个重要的电路是下拉电阻。

如前所述,压电磁盘产生的电信号对应于施加在纸板上的压力。当我们将鼓与压电

内部粘在一起时,即使不弹鼓也会产生信号。因此要克服这个问题,我们放下了下拉电阻(1M〜1.3M )

在压电圆盘的带电和接地引线之间。

我们可以将其放在橡皮泥中。但是我决定将所需的所有

下拉电阻器放到一个PCB上,然后将其放置在控制台中。

此配置使必要时更容易进行任何维护。

电路图非常简单。

我将6个母跳线连接到并行PCB并使用了6个电阻器然后用挂钩线将所有跳线公插针的1个引线短路。然后从每个跳线插销中引出带电引线和短路的引线1个(用于GND)并分别焊接到Ribbonwire的1端。我将一小部分连接线连接到Ribbon Line的末端(以使其更易于连接到Arduino)。并连接这些线。与模拟p将这些销钉

暴露在外部,以便我们从外部进行连接。

接下来,将输出音频插座(3.5毫米母音频)连接到控制台。我们将2股带状导线焊接到地面并使其插在插座上,并使其另一端连接到连接导线。(以便于轻松连接到arduino。)现在在控制台上再打一个孔以取下孔

我使用USB电缆对arduino进行编程以为该设备供电。

这样,我可以使用同一根电缆为该设备供电并对其进行编程。我将USB电缆连接到一个用于供电的5V USB适配器。

这也减轻了控制台的重量,这是因为沉重的变压器实现了降压和更高的效率。

接下来是电缆系统。我使用的电缆系统是由

》单芯屏蔽罩,以获得最佳音质。每个鼓,cy和踏板都需要将电缆连接到控制台。切开约1.3米的屏蔽罩先将焊丝的一端焊接到3.5mm的公头插孔上,另一端焊接到跳线的母头部分上。

步骤6:准备SD卡

准备SD卡。

对我来说,这是最困难,最耗时的步骤。但请上传所有音频文件的所有链接我已经准备好了,以便那些

很难遵循的人可以使用这些文件并跳过此步骤。

但是我必须警告您,ull会错过很多乐趣:)。

link ishttp ://www.4shared.com/rar/AoDU14Vy/KIDU_files.html

在触摸sd卡之前,我们需要选择我们希望鼓

听起来像的声音。为此,我使用了图像行FL studio以Wave格式制作每个

Drum样本。对于不熟悉Fl Studio的用户,您可以简单地在Google上搜索并下载Drum样本,即使这样也太多了。 ,请继续使用我也使用过的wav文件的链接:)。

一旦您决定了声音,想听。让我们开始转换。

正如我在工作中告诉您的那样,如果没有专用的音频解码器,播放音频格式并不容易。如果我们有WAV防护罩,那本来是

easier。现在可以直接从sd卡播放音频文件。我们使用称为SimpleSDAudio.h的arduino库。为此,库要运行,我们需要.RAW中的音频文件。格式

和8.3命名格式的文件名,都存在于SD卡的根目录中。

为了将wave文件转换为原始文件,我找不到任何文件转换器

支持wav到raw的软件。(总视频转换器也不行。)

所以我使用了一个名为SOX的命令行转换器。您可以将Audacity用作GUI。但是我使用了命令行技术。

首先,您需要安装SOX。现在将所有需要的文件

转换到包含文件SOX.exe的相同目录。

现在打开命令提示符,并将其定向到与SOX.exe相同的目录

(或在其中创建一个记事本文件在目录中,键入command.com并将其保存为任何内容.bat。如果您打开此文件,则将打开命令提示符,并指向相同的目录。)现在键入以下命令。

cd%〜dp0

mkdir转换为sox input.wav --norm = -1 -e unsigned-integer -b 8 -r 62500 -c 1 -t raw“ converted output.raw”

暂停

在上面的命令中将input.wav替换为您使用的文件名。将

&output.raw替换为8.3文件名。(8.3 simpy表示8个字母或更少的名称,后跟

a‘ 。’和3个字母的格式(例如numb.mp3)。因此,如果您选择了要转换的军鼓声音。

type。

cd%〜dp0

mkdir转换的是sox snare.wav- -norm = -1 -e无符号整数-b 8 -r 62500 -c 1 -t原始“ converted 1_snr.raw”

暂停

正如我之前提到的,没有LCD显示。所有选择KIDU还叙述了

样式和其他必要的东西。因此,所有这些

音频文件也需要转换并传输到SD卡。

对于这些音频文件我还使用了FL Studio的语音合成器功能。您可以使用任何软件并以Wave格式获取语音音频。

然后将其转换为原始SOX。我还将上传n个链接这些音频文件。《

命名文件。

这样做是为了使编程更容易一些。系统地记录您所做的事情。

命名法

FORMAT _ .raw

我拥有的名称二手:用于样式计数1

1_snr.raw

1_tom1.raw

1_tom2.raw

1_ft.raw

1_cy.raw

1_kick.raw

1_ohh.raw

1_chh.raw

对于样式计数2,将上述所有第一个字母替换为2,以此类推,以替换任意数量的样式。

语音文件可以命名。

您可以使用原始格式的文件。我们可以将其传输到SD卡。为此,您可以使用内置格式化程序中的Windows,但是我建议使用SD格式化程序。(请勿进行快速格式化。) 2GB格式的SD卡

为FAT。其他所有格式均为FAT32。该库支持两个文件系统

现在将其从PC中取出,然后将其插入SD卡护罩中。

注意:在任何操作系统(MSDOS除外)上运行的计算机将不能

播放这些RAW文件。担心它在arduino中不能正常播放。如果您不相信它的真实性,您可以将这些文件转换回wav或mp3并在您的计算机中播放。

步骤7:源代码

//使用的变量和常量。

int snare;

int tom1;

int tom2;

int floortom;

int cymbal;

int highhat;

int stylecount = 0;

int select = 0;

int snarecount;

int tom1choose;

//////////////////////

const int snarepin = A0;

const int tom1pin = A1;

const int tom2pin = A2;

const int floortompin = A3;

const int cymbalpin = A4;

const int highhatpin = A5;

#include

void setup()

{

串行.begin(9600);

SdPlay.setSDCSPin(10);//芯片选择

SdPlay.init(SSDA_MODE_FULLRATE | SSDA_MODE_MONO | SSDA_MODE_AUTOWORKER);

Serial.println(“ sd ready”);

SdPlay.setFile(“ startup.raw”);//播放启动音。

SdPlay.play();

}

void loop()

{

//////////////////////////////////读取模拟引脚

snarecount = analogRead(snarepin);

tom1choose = analogRead(tom1pin);

tom2 = AnalogRead(tom2pin);

floortom = analogRead(floortompin);

ym = analogRead(cymbalpin);

highhat = analogRead(highhatpin);

/////////////////////////////////drum样式选择。

if(snarecount》 100)

{

SdPlay.setFile(“ slctdrm.raw“);//KIDU说“选择击鼓风格!”

SdPlay.play();

stylecount = stylecount + 1;

}

if(stylecount》 6)

{

stylecount = 1;

}

///////////////////////////////////////play鼓风格的名称。

如果(stylecount == 1)

{

SdPlay.setFile(“ 1_stdstl.raw”);//KIDU说“已选择标准鼓组!”

SdPlay.play();

}

如果(stylecount == 2)

{

SdPlay.setFile(“ 2_afrcon.raw” );//KIDU说“选择了非洲刚果风格!”

SdPlay.play();

}

if(stylecount == 3)

{

SdPlay.setFile(“ 3_hiho.raw “);//KIDU说“选择了嘻哈风格”

SdPlay.play();

}

if(stylecount == 4)

{

SdPlay.setFile(“ 4_indian.raw”);//KIDU说“选择了印度风格”

SdPlay.play();

}

如果(stylecount == 5)

{

SdPlay.setFile(“ 5_funny.raw”);//KIDU说“选择了有趣的声音”

SdPlay.play();

}

if(stylecount == 6)

{

SdPlay.setFile(“ 6_demo.raw”);//播放DEMO。

SdPlay.play();

}

///////____________________退出如果选择(tom1choose》 50)

{

SdPlay.setFile(“ selected.raw”);

SdPlay.play();

select =选择+ 1;结果,},点击Serial.println( “stylecount =”);结果,Serial.println(stylecount);结果,Serial.println( “选择=”);结果,Serial.println (选择);

同时(选择== 1)

{

/////////////////////////////////////将变量重新定义为鼓声触发器。

snare = analogRead(snarepin);

tom1 = analogRead(tom1pin);

tom2 = analogRead(tom2pin);

floortom = analogRead(floortompin);

ym = analogRead(cymbalpin);

highhat = analogRead(highhatpin);

if(snare》 50 && stylecount == 1)

{

SdPlay.setFile(“ 1_snare.raw”);

SdPlay.play();

Serial.println(“ snare”);

}

如果(tom1》 50 && stylecount = = 1)

{

SdPlay.setFile(“ 1_tom1.raw”);

SdPlay.play();

Serial.println(“ tom1”);

}

if(tom2》 50 && stylecount == 1)

{

SdPlay.setFile(“ 1_tom2.raw”);

SdPlay.play();

Serial.println(“ tom2”);

}

如果(floortom》 50 && stylecount == 1)

{

SdPlay.setFile(“ 1_ft.raw”);

SdPlay.play();

Serial.println(“ floortom”);

}

如果(cymbal》 50 && stylecount == 1)

{

SdPlay.setFile(“ 1_cy.raw”);

SdPlay.play();

Serial.println(“ cymbal”);

}

如果(highhat》 50 && stylecount == 1)

{

SdPlay.setFile(“ 1_ohh.raw”);

SdPlay.play();

串行。 println(“ open highhat”);

}

//////////////////////////////////////////style 2

if(snare》 50 && stylecount == 2)

{

SdPlay.setFile(“ 2_snare.raw”);

SdPlay.play ();

Serial.println(“ 2snare”);

}

如果(tom1》 50 && stylecount == 2)

{

SdPlay.setFile(“ 2_tom1.raw”) ;

SdPlay.play();

Serial.println(“ 2tom1”);

}

如果(tom2》 50 && stylecount == 2)

{

SdPlay.setFile(“ 2_tom2.raw”);

SdPlay.play();

Serial.println(“ 2tom2”);

}

如果(floortom》 50 && stylecount == 2)

{

SdPlay.setFil e(“ 2_ft.raw”);

SdPlay.play();

Serial.println(“ 2floortom”);

}

如果(cymbal》 50 && stylecount == 2)

{

SdPlay.setFile(“ 2_cy.raw”);

SdPlay.play();

Serial.println(“ 2cymbal”);

}

if(highhat》 50 && stylecount == 2)

{

SdPlay.setFile(“ 2_ohh.raw”);

SdPlay.play();

Serial.println(“ 2open highhat”);

}

//////////////////////////////////////////////style3

if(snare》 50 && stylecount == 3)

{

SdPlay.setFile(“ 3_snare.raw”);

SdPlay.play();

Serial.println( “ 3snare”);

}

如果(tom1》 50 && stylecount == 3)

{

SdPlay.setFile(“ 3_tom1.raw”);

SdPlay.play();

Serial.println(“ 3tom1”);

}

如果(tom2》 50 && stylecount == 3)

{

SdPlay.setFile(“ 3_tom2.raw”) ;

SdPlay.play();

Serial.println(“ 3tom2”);

}

if(floortom》 50 && stylecount == 3)

{

SdPlay.setFile (“ 3_ft.raw”);

SdPlay.play();

Serial.println(“ 3floortom”);

}

如果(cymbal》 50 && stylecount == 3)

{

SdPlay.setFile(“ 3_cy.raw”) ;

SdPlay.play();

Serial.println(“ 3cymbal”);

}

if(highhat》 50 && stylecount == 3)

{

SdPlay.setFile (“ 3_ohh.raw”);

SdPlay.play();

Serial.println(“ 3open highhat”);

}

//////////////////////////////////////////印度风格

如果(snare》 50 && stylecount == 4)

{

SdPlay.setFile(“ 4_snare.raw”);

SdPlay.play();

Serial.println(“ 4snare”);

}

如果(tom1》 50 && stylecount == 4 )

{

SdPlay.setFile(“ 4_tom1.raw”);

SdPlay.play();

Serial.println(“ 4tom1”);

}

如果(tom2》 50 && stylecount == 4)

{

SdPlay.setFile(“ 4_tom2.raw”);

SdPlay.play();

Serial.println(“ 4tom2”);

}

if(floortom》 50 && stylecount == 4)

{

SdPlay.setFile(“ 4_ft.raw”);

SdPlay.play();

串行。 println(“ 4floortom”);

}

if(cymbal》 50 && stylecount == 4)

{

SdPlay.setFile(“ 4_cy.raw”);

SdPlay.play( );

Serial.println(“ 4cymbal”);

}

if(highhat》 50 && stylecount == 4)

{

SdPlay.setFile(“ 4_ohh.raw”);

SdPlay.play ();

Serial.println(“ 4open highhat”);

}

////////////STYLE 5 FUNNY

if(snare》 50 && stylecount == 5)

{

SdPlay.setFile(“ 5_snare.raw”);

SdPlay.play();

Serial.println(“ 5snare”);

}

如果( tom1》 50 && stylecount == 5)

{

SdPlay.setFile(“ 5_tom1.raw”);

SdPlay.play();

Serial.println(“ 5tom1”);

}

如果(tom2》 50 && stylecount == 5)

{

SdPlay.setFile(“ 5_tom2.raw”);

SdPlay.play();

串行.println(“ 5tom2”);

}

如果(floortom》 50 && stylecount == 5)

{

SdPlay.setFile(“ 5_ft.raw”);

SdPlay.play ();

Serial.println(“ 5floortom”);

}

if(cymbal》 50 && stylecount == 5)

{

SdPlay.setFile(“ 5_cy.raw”) ;

SdPlay.play();

Serial.println(“ 5cymbal”);

}

if(highhat》 50 && stylecount == 5)

{

SdPlay.setFile (“ 5_ohh.raw”);

SdPlay.play();

Serial.println(“ 5open highhat”);

}

如果(stylecount == 6)

{

SdPlay.setFile(“ demo.raw”);

SdPlay.play();

}

}

}

步骤8:源代码工作

源代码工作

我们用来播放sd卡音频的库是

SimpleSDAudio.h,其详细信息已经详细说明了准备SD卡的主干。

现在在草图中。我仅具有4个鼓和一个a片的程序。

因为我还没有讲解脚踏板的制作方法。《我会尽我最大的努力尽快将其上传。但是我已经转换了所有声音(每个鼓风格8个组件),即4个鼓,1个mb片,打开高帽和关闭高帽的声音。

如前所述,该程序也使用鼓来触发。

对我来说这是一个很大的挑战。但是我最终做到了。

您可能会在源代码中注意到,我已经进行了两次模拟读取。

每次使用2个具有不同变量名称的鼓。

第一次。我们使用小鼓和tom1鼓来选择鼓风格。

小鼓是用作样式计数。计数从1到6

,并从1重复n。您可以添加与您使用的SD卡大小一样多的样式。您只需上传所需的所有声音即可。

还有另一种方法可以遍历下一组模拟读数。 br》这是选择计数。如果您已经用小鼓确定了计数,我们将通过tom1鼓对其进行确认。一旦tom1鼓被击中,

它将开始选择计数。选择计数为1(即第一次敲击tom1鼓),鼓触发循环开始。

鼓触发循环非常简单。如果模拟读数超过一个保持力,KIDU将发出相应的声音。循环不断。

例如:如果Analogread值》 thrushold且stylecount == 1

,则播放小鼓的音频文件1_snare.raw。

编例如:

如果(snare》 50 && stylecount == 1)

{

SdPlay.setFile(“ 1_snare.raw”);

SdPlay.play();

Serial.println(“ snare”) ;

}

现在该程序涉及kick ahd高帽游戏,它并不难。

我们要做的就是包括digita部分l读取按钮。

我们需要使用一个简单的单脉冲开关和一个反跳功能来进行踢动。

反跳功能在arduino编程环境和高礼帽的示例中都存在。 ,则去抖和切换部分相同。

if循环在打开和关闭时都会有一个额外的条件。

ie

如果(扼流圈==高&&高》 thrushold && stylecount == 1)

{

SdPlay.setFile(“ 1_chh.raw”);

SdPlay.play();

Serial.println(“ closed highhat”);

}

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分