電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學(xué)習在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區
創(chuàng )作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內不再提示
創(chuàng )作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>Arduino合成器V3設計案例

Arduino合成器V3設計案例

2022-08-11 | zip | 0.01 MB | 次下載 | 免費

資料介紹

電路板圖如下:
pYYBAGL0Wa6AIWinAACkBXbvqxE604.jpg
pYYBAGL0WbGAdEXrAACiaOApkfE439.jpg
poYBAGL0WbOAcYYoAACcBiX6S14529.jpg
pYYBAGL0WbaAbXSeAAB-i5dMM1w708.png

描述

Arduino 合成器 V3

?

嘿伙計們怎么了!

所以這是我的 Arduino Synth V3,它是由 Arduino Nano 驅動(dòng)的 DIY 合成器。

?

?

poYBAGL0WbyANFL6ABA8YKe43l4712.jpg

?

它有 12 個(gè)按鈕開(kāi)關(guān)和兩個(gè)用于改變模式的 ON/OFF 開(kāi)關(guān)和兩個(gè)用于改變音高和速度的電位器。

通過(guò)更改 Pitch Potentiometer,我們可以通過(guò)按任意 12 個(gè)按鈕來(lái)更改輸出波形,從而產(chǎn)生酷炫的科幻聲音。它的工作原理與普通鍵盤(pán)合成器非常相似。

我制作合成器已經(jīng)有一段時(shí)間了,制作了兩個(gè)與這個(gè)工作相同的合成器,但它們都使用 Mozi 庫來(lái)運行,但這個(gè)使用簡(jiǎn)單的代碼,通過(guò)按鈕和開(kāi)關(guān)的狀態(tài)調制輸出。

?

這篇文章是關(guān)于這個(gè)合成器的整個(gè)構建過(guò)程,所以讓我們開(kāi)始吧。

?

所需材料

以下是我在此構建中使用的東西-

  • 定制PCB
  • Arduino納米
  • 電位器
  • 開(kāi)/關(guān)
  • 按按鈕
  • 揚聲器 4 歐姆
  • 排針母頭

?

原理圖

?

pYYBAGL0Wb-AMaFcAAGOzMnqexU345.jpg

?

該板的原理圖很簡(jiǎn)單,Arduino Nano 連接了 12 個(gè)按鈕。每個(gè) Push Button 都連接一個(gè) IO 端口,當我們按下任何按鈕時(shí),它會(huì )將 IO 端口拉低至 GND。

兩個(gè) ON-OFF 開(kāi)關(guān)也是如此,但是當我們按下它們時(shí),它們會(huì )使 IO 引腳拉下更長(cháng)的時(shí)間。然后兩個(gè) Pot 用 A4 和 A5 連接。

PAM8403 模塊與輸出引腳 A2 相連,它放大信號并使其響亮。

?

PCB設計

?

poYBAGL0WcKAKXyBAAMuKMstifg584.png

?

完成原理圖后,我導出了網(wǎng)表并開(kāi)始進(jìn)行 PCB 設計。

至于外形,我取材于通用鍵盤(pán)的美學(xué)和整體外觀(guān),Arduino Nano 放置在右上角,揚聲器放置在 TOP 左側。

我還在設計中添加了一些假鑰匙,我在這些假鑰匙上放置了按鈕。也許未來(lái)的版本會(huì )有真正的電容式觸摸鍵。

此外,我已經(jīng)從假鑰匙上移除了阻焊層,因此銅區域將未被填充,這將提供超酷的銀色外觀(guān),因為電路板將被 HASL 覆蓋。

?

從 PCBWAY 獲取 PCB

?

?

poYBAGL0WcWAcR4YAAL1EMIQM-A547.png

?

poYBAGL0WciAA3P_AACdQd76v6Y526.jpg

?

pYYBAGL0WcqAed9oAACqS9LcTes124.jpg

?

pYYBAGL0WcyAcluQAACR6ppBeMw997.jpg

?

完成 PCB 后,我將 Gerber 數據發(fā)送到 PCBWAY 以獲取樣品。

我選擇帶有黑色絲印的白色阻焊層,因為如果我們添加黑色絲印圖案,白色 PCB 通??雌饋?lái)很酷。

我很快就收到了 PCB。至于PCB質(zhì)量,它是一流的。

使用他們的服務(wù)已經(jīng)有一段時(shí)間了,我不得不說(shuō),這對于入門(mén)來(lái)說(shuō)是相當不錯的。

?

看看我的復雜設計,我在 PCB 上放置了許多不尋常的圖案,例如不規則的輪廓和阻焊層形狀,這很難制作,但他們在制作 PCB 方面做得非常出色,沒(méi)有任何問(wèn)題。

?

電路板組裝

poYBAGL0Wc6AfCD0AADcKm_3oNo171.jpg

?

在開(kāi)始 PCB 組裝之前,我們需要收集我們將在這個(gè)項目中使用的所有組件。

?

添加接頭引腳、開(kāi)關(guān)和電位器

poYBAGL0WdGAUSrtAACydDqLd8s778.jpg

?

poYBAGL0WdSAXta4AAC25xCVlW4644.jpg

?

我們首先為 Arduino Nano、開(kāi)關(guān)和電位器添加 Header Pins。

?

添加按鈕

pYYBAGL0WdeAYDbiAAC2z7pXrEs103.jpg

?

poYBAGL0WdmAKLAfAAC4-kiq1Ug548.jpg

?

接下來(lái),我們將 12 個(gè) Push Buttons 一個(gè)一個(gè)地添加到它們的位置。

?

焊接組件

pYYBAGL0WdyAbr0hAADD30A0uH4285.jpg

?

將所有開(kāi)關(guān)和插頭引腳放置到位后,我們使用普通烙鐵和焊錫線(xiàn)將它們的端子焊接到 PCB。

?

添加 PAM8403 模塊

poYBAGL0WeCABV4DAADZZApQEcA005.jpg

?

pYYBAGL0WeKAFOQ8AAC3M5PwGAs368.jpg

?

poYBAGL0WeWAbbgKAADEJ2bHpAs577.jpg

?

poYBAGL0WeeAfZn8AAC0TQChcgc454.jpg

?

pYYBAGL0WeqATPQkAACcmurGWLE024.jpg

?

接下來(lái),我們通過(guò)使用一些公頭引腳添加 PAM8403 模塊,我們在 PCB 上添加公頭引腳,然后在頭引腳上添加 PAM8403。

最后,我們焊接引腳并將模塊永久固定到位。

?

添加揚聲器

pYYBAGL0WeyALoiLAAC1X1AdHTQ014.jpg

?

pYYBAGL0We-AdzEcAACxaMHIguI618.jpg

?

poYBAGL0WfGAWWw3AAC8tLOXkXA956.jpg

?

最后,我們在其位置添加一個(gè)揚聲器。

我在 PCB 上添加了一個(gè)孔,這里的目標是通過(guò)這個(gè)孔從背面添加一個(gè)揚聲器。揚聲器粘在 PCB 上,然后我們通過(guò)兩條跳線(xiàn)將揚聲器的端子與 PAM8403 CON2 端口連接。

完成后,PCB就完成了。

?

PCB組裝結果

pYYBAGL0WfWAch1eAAC5x5OI2_g953.jpg

?

pYYBAGL0WfeAStlyAAC5y9MQogk768.jpg

?

這是到目前為止的結果,所有組件都焊接好了,電路板就完成了。它看起來(lái)很像 Arduino Nano Sheild 或插件板。

下一步是將 Arduino Nano 添加到此板上并將主草圖刷入 MCU。

?

主要代碼

?

這是我使用的主要草圖。

C =  ;
CS =  ;
D =  ;
DS =  ;
E =  ;
F =  ;
FS =  ;
G =  ;
GS =  ;
A =  ;
AS =  ;
B =  ;
八八度 =  ;
八達利巴 =  ;
 tiempo = 模擬讀?。ˋ4);
 pitch_bend = 模擬讀?。ˋ5);


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)/  ));
延遲(模擬讀?。ˋ4));
數字讀?。–);
}
 (!digitalRead(C)&&!digitalRead(octabajo)) {
音調(A2, c/  +((analogRead(A5)/  )));
延遲(模擬讀?。ˋ4));
數字讀?。–);
}
 (!digitalRead(C)&&!digitalRead(octarriba)) {
音調(A2, c*  +((analogRead(A5)/  )));
延遲(模擬讀?。ˋ4));
數字讀?。–);
}


數字閱讀(CS);
(!digitalRead(CS)){
音調(A2, cs+(analogRead(A5)/  ));
延遲(模擬讀?。ˋ4));
數字閱讀(CS);
}
(!digitalRead(CS)&&!digitalRead(octabajo)) {
音調(A2, cs/  +((analogRead(A5)/  )));
延遲(模擬讀?。ˋ4));
數字閱讀(CS);
}
(!digitalRead(CS)&&!digitalRead(octarriba)) {
音調(A2, cs*  +((analogRead(A5)/  )));
延遲(模擬讀?。ˋ4));
數字閱讀(CS);
}

數字讀?。―);
(!digitalRead(D)){
音調(A2, d+(analogRead(A5)/  ));
延遲(模擬讀?。ˋ4));
數字讀?。―);
}
 (!digitalRead(D)&&!digitalRead(octabajo)) {
音調(A2, d/  +((analogRead(A5)/  )));
延遲(模擬讀?。ˋ4));
數字讀?。―);
}
 (!digitalRead(D)&&!digitalRead(octarriba)) {
音調(A2, d*  +((analogRead(A5)/  )));
延遲(模擬讀?。ˋ4));
數字讀?。―);
}

數字讀?。―S);
(!digitalRead(DS)){
音調(A2, ds+(analogRead(A5)/  ));
延遲(模擬讀?。ˋ4));
數字讀?。―S);
}
(!digitalRead(DS)&&!digitalRead(octabajo)) {
音調(A2, ds/  +((analogRead(A5)/  )));
延遲(模擬讀?。ˋ4));
數字讀?。―S);
}
(!digitalRead(DS)&&!digitalRead(octarriba)) {
音調(A2, ds*  +((analogRead(A5)/  )));
延遲(模擬讀?。ˋ4));
數字讀?。―S);
}

數字閱讀(E);
(!digitalRead(E)){
音調(A2, e+(analogRead(A5)/  ));
延遲(模擬讀?。ˋ4));
數字閱讀(E);
}
 (!digitalRead(E)&&!digitalRead(octabajo)) {
音調(A2, e/  +((analogRead(A5)/  )));
延遲(模擬讀?。ˋ4));
數字閱讀(E);
}
 (!digitalRead(E)&&!digitalRead(octarriba)) {
音調(A2, e*  +((analogRead(A5)/  )));
延遲(模擬讀?。ˋ4));
數字閱讀(E);
}

數字讀?。‵);
(!digitalRead(F)){
音調(A2, f+(analogRead(A5)/  ));
延遲(模擬讀?。ˋ4));
數字讀?。‵);
}  (!digitalRead(F)&&!digitalRead(octabajo)) {
音調(A2, f/  +((analogRead(A5)/  )));
延遲(模擬讀?。ˋ4));
數字讀?。‵);
}
 (!digitalRead(F)&&!digitalRead(octarriba)) {
音調(A2, f*  +((analogRead(A5)/  )));
延遲(模擬讀?。ˋ4));
數字讀?。‵);
}

數字讀?。‵S);
(!digitalRead(FS)){
音調(A2, fs+(analogRead(A5)/  ));
延遲(模擬讀?。ˋ4));
數字讀?。‵S);
}
 (!digitalRead(FS)&&!digitalRead(octabajo)) {
音調(A2, fs/  +((analogRead(A5)/  )));
延遲(模擬讀?。ˋ4));
數字讀?。‵S);
}
(!digitalRead(FS)&&!digitalRead(octarriba)) {
音調(A2, fs*  +((analogRead(A5)/  )));
延遲(模擬讀?。ˋ4));
數字讀?。‵S);
}

數字閱讀(G);
(!digitalRead(G)){
音調(A2, g+(analogRead(A5)/  ));
延遲(模擬讀?。ˋ4));
數字閱讀(G);
}
(!digitalRead(G)&&!digitalRead(octabajo)) {
音調(A2, g/  +((analogRead(A5)/  )));
延遲(模擬讀?。ˋ4));
數字閱讀(G);
}
(!digitalRead(G)&&!digitalRead(octarriba)) {
音調(A2, g*  +((analogRead(A5)/  )));
延遲(模擬讀?。ˋ4));
數字閱讀(G);
}

數字閱讀(GS);
(!digitalRead(GS)){
音調(A2, gs+(analogRead(A5)/  ));
延遲(模擬讀?。ˋ4));
數字閱讀(GS);
}
 (!digitalRead(GS)&&!digitalRead(octabajo)) {
音調(A2, gs/  +((analogRead(A5)/  )));
延遲(模擬讀?。ˋ4));
數字閱讀(GS);
}
 (!digitalRead(GS)&&!digitalRead(octarriba)) {
音調(A2, gs*  +((analogRead(A5)/  )));
延遲(模擬讀?。ˋ4));
數字閱讀(GS);
}

數字閱讀(一);
(!digitalRead(A)){
音調(A2, a+(analogRead(A5)/  ));
延遲(模擬讀?。ˋ4));
數字閱讀(一);
}
 (!digitalRead(A)&&!digitalRead(octabajo)) {
音調(A2, a/  +((analogRead(A5)/  )));
延遲(模擬讀?。ˋ4));
數字閱讀(一);
}
 (!digitalRead(A)&&!digitalRead(octarriba)) {
音調(A2, a*  +((analogRead(A5)/  )));
延遲(模擬讀?。ˋ4));
數字閱讀(一);
}

數字閱讀(AS);
(!digitalRead(AS)){
音調(A2,  +(analogRead(A5)/  ));
延遲(模擬讀?。ˋ4));
數字閱讀(AS);
}
 (!digitalRead(AS)&&!digitalRead(octabajo)) {
音調(A2,  /  +((analogRead(A5)/  )));
延遲(模擬讀?。ˋ4));
數字閱讀(AS);
}
 (!digitalRead(AS)&&!digitalRead(octarriba)) {
音調(A2,  *  +((analogRead(A5)/  )));
延遲(模擬讀?。ˋ4));
數字閱讀(AS);
}

數字讀?。˙);
(!digitalRead(B)){
音調(A2, b+(analogRead(A5)/  ));
延遲(模擬讀?。ˋ4));
數字讀?。˙);
}
 (!digitalRead(B)&&!digitalRead(octabajo)) {
音調(A2, b/  +((analogRead(A5)/  )));
延遲(模擬讀?。ˋ4));
數字讀?。˙);
}
 (!digitalRead(B)&&!digitalRead(octarriba)) {
音調(A2, b*  +((analogRead(A5)/  )));
延遲(模擬讀?。ˋ4));
數字讀?。˙);
}

無(wú)音(A2);


}

poYBAGL0WfqAEDQnAADbux5v0FY331.jpg

?

poYBAGL0WfyAPYIqAAC9S4PZPTw181.jpg

?

我們首先在其位置添加 Arduino Nano,然后使用代碼對其進(jìn)行閃爍,結果將是一個(gè)正常工作的合成器播放隨機嗡嗡聲,我們可以通過(guò)按下按鈕或調制電位器或 ON/OFF 開(kāi)關(guān)來(lái)改變聲音。

?

結果

?

這是總體結果,請觀(guān)看演示視頻。

?

?

這就是今天的內容,請繼續關(guān)注,我很快就會(huì )帶著(zhù)一個(gè)新項目回來(lái)。

特別感謝?PCBWAY?對這個(gè)項目的支持,看看他們以更低的成本獲得優(yōu)質(zhì)的 PCB 服務(wù)。

和平

?

?

?

代碼


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  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元宇宙深度解析—未來(lái)的未來(lái)-風(fēng)口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費
  11. 6迪文DGUS開(kāi)發(fā)指南
  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開(kāi)關(guān)電源設計實(shí)例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書(shū))
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數字電路基礎pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實(shí)例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅動(dòng)電路設計》 溫德?tīng)栔?zhù)
  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十天學(xué)會(huì )AVR單片機與C語(yǔ)言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費
亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看