色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

構建一個基于Arduino的吉他調音器

科技觀察員 ? 來源:circuitdigest ? 作者:伊曼紐爾·奧敦拉 ? 2022-11-07 15:45 ? 次閱讀

在過去的幾周里,我一直在努力重新與我對吉他的熱愛聯系起來。彈奏箱式吉他是我在薩克斯管接管之前的幾年前放松的方式。回到吉他,在3年很少彈奏和弦之后,我發現我不再知道每根弦應該如何發聲,用我朋友的話來說,“我的聽力不再調諧”,因此,如果沒有鍵盤或移動應用程序的幫助,我無法調吉他后來下載。幾周過去了,直到幾天前,我的制造商變得有動力,我決定建立一個基于Arduino的吉他調音器。在今天的教程中,我將分享如何構建自己的DIY Arduino吉他調音器。

吉他調諧器的工作原理

在我們轉向電子產品之前,了解構建背后的原理很重要。有 7 個主要音符由字母表示;A,B,C,D,E,F,G,通常以另一個A結尾,該A始終比第一個A高一個八度。在音樂中,這些音符存在幾個版本,如第一個A和最后一個A。這些音符分別與它們的變化區分開來,并通過稱為音高的聲音特征之一來區分彼此。音高被定義為聲音的響度或低度,并由該聲音的頻率表示。由于這些音符的頻率是已知的,因此要確定吉他是否調音,我們只需要將特定弦的音符頻率與弦所代表的音符的實際頻率進行比較即可。

7個音符的頻率是:

A = 27.50Hz

B = 30.87Hz

C = 16.35Hz

D = 18.35Hz

E = 20.60Hz

F = 21.83Hz

G = 24.50Hz

這些音符的每個變化總是在等于 FxM 的音高,其中 F 是頻率,M 是非零整數。因此,對于如前所述比第一個 A 高一個八度的最后一個 A,頻率是;

27.50 x 2 = 55Hz。

吉他(主音/盒式吉他)通常有 6 根弦,由開弦上的音符 E、A、D、G、B、E 表示。像往常一樣,最后一個 E 將比第一個 E 高一個八度。我們將設計我們的吉他調音器,以幫助使用這些音符的頻率調整吉他。

根據標準的吉他調音,每根弦的音符和相應的頻率如下表所示。

字符串 頻率 表示法
1 (E) 329.63赫茲 E4
2 (B) 246.94赫茲 B3
3 (G) 196.00赫茲 G3
4 (D) 146.83赫茲 D3
5 (一) 110.00赫茲 答2
6 (E) 82.41赫茲 E2

poYBAGNot5KAO22BAAB7oYqcD70245.jpg

項目流程非常簡單;我們將吉他產生的聲音信號轉換為頻率,然后與被調諧琴弦的確切頻率值進行比較。當值相關時,使用 LED 通知吉他手。

頻率檢測/轉換涉及 3 個主要階段;

放大

抵消

模數轉換(采樣)

產生的聲音信號太弱,Arduino的ADC無法識別,因此我們需要放大信號。放大后,為了將信號保持在Arduino的ADC可識別的范圍內以防止信號削波,我們偏移了信號的電壓。偏移后,信號被傳遞到Arduino ADC,在那里對其進行采樣并獲得該聲音的頻率。

必需組件

生成此項目需要以下組件;

阿杜伊諾烏諾 x1

LM386 x1

電容麥克風 x1

麥克風/音頻插孔 x1

10k 電位器 x1

O.1uf 電容器 x2

100歐姆電阻 x4

10歐姆電阻 x1

10uF 電容器 x3

5毫米黃色發光二極管 x2

5毫米綠色發光二極管 x1

常開按鈕 x6

跳線

面包板

圖表

連接組件,如下面的吉他調諧器電路圖所示。

Arduino-Guitar-Tuner-Circuit-Diagram.png

按鈕連接時沒有上拉/下拉電阻,因為將使用Arduino內置的上拉電阻。這是為了確保電路盡可能簡單。

poYBAGNot6KAQ4NJAAGVCn-OUDo284.jpg

吉他調諧器的Arduino代碼

這個吉他調音器項目代碼背后的算法很簡單。為了調音特定的琴弦,吉他手通過按下相應的按鈕來選擇琴弦,然后彈奏一根開放的琴弦。聲音由放大級收集并傳遞到Arduino ADC。對頻率進行解碼和比較。當串的輸入頻率小于指定頻率時,對于該串,其中一個黃色 LED 亮起,指示應擰緊串。當測量的頻率大于該串的規定頻率時,另一個 LED 亮起。當頻率在該弦的規定范圍內時,綠色 LED 亮起以引導吉他手。

最后給出了完整的Arduino代碼,這里我們簡要解釋了代碼的重要部分。

我們首先創建一個數組來容納開關。

int buttonarray[] = {13, 12, 11, 10, 9, 8}; // [E2, A2, D3, G3, B3, E4]

接下來,我們創建一個數組來保存每個字符串的相應頻率。

float freqarray[] = {82.41, 110.00, 146.83, 196.00, 246.94, 329.63};//all in Hz

完成此操作后,我們聲明LED連接的引腳以及將用于從ADC獲取頻率的其他變量。

int lowerLed = 7;

int higherLed = 6;

int justRight = 5;

#define LENGTH 512

byte rawData[LENGTH];

int count;

接下來是 void setup() 函數。

在這里,我們首先為開關連接到的每個引腳啟用Arduino上的內部上拉。之后,我們將LED連接的引腳設置為輸出,并啟動串行監視器以顯示數據。

void setup()

{

for (int i=0; i<=5; i++)

{

pinMode(buttonarray[i], INPUT_PULLUP);

}

pinMode(lowerLed, OUTPUT);

pinMode(higherLed, OUTPUT);

pinMode(justRight, OUTPUT);

Serial.begin(115200);

}

接下來,就是空隙環路功能,我們實現頻率檢測和比較。

void loop(){

if (count < LENGTH)?

{

count++;

rawData[count] = analogRead(A0)>>2;

}

else {

sum = 0;

pd_state = 0;

int period = 0;

for(i=0; i < len; i++)

{

// Autocorrelation

sum_old = sum;

sum = 0;

for(k=0; k < len-i; k++) sum += (rawData[k]-128)*(rawData[k+i]-128)/256;

// Serial.println(sum);

// Peak Detect State Machine

if (pd_state == 2 && (sum-sum_old) <=0)?

{

period = i;

pd_state = 3;

}

if (pd_state == 1 && (sum > thresh) && (sum-sum_old) > 0) pd_state = 2;

if (!i) {

thresh = sum * 0.5;

pd_state = 1;

}

}

// Frequency identified in Hz

if (thresh >100) {

freq_per = sample_freq/period;

Serial.println(freq_per);

for (int s=0; s<=5; s++)

{

if (digitalRead(buttonarray[i])== HIGH)

{

if (freq_per - freqarray[i] < 0)

{

digitalWrite(lowerLed, HIGH);

}

else if(freq_per - freqarray[i] > 10)

{

digitalWrite(higherLed, HIGH);

}

else

{

digitalWrite(justRight, HIGH);

}

}

}

}

count = 0;

}

}

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Arduino
    +關注

    關注

    188

    文章

    6468

    瀏覽量

    186956
收藏 人收藏

    評論

    相關推薦

    如何使用Arduino構建計算

    在本教程中,我們將使用 Arduino 構建自己的計算。這些值可以通過鍵盤(4×4 鍵盤)發送,結果可以在 LCD 屏幕上查看(16×2 點陣)。該計算可以執行簡單的運算,例如整數
    的頭像 發表于 11-21 17:43 ?6083次閱讀
    如何使用<b class='flag-5'>Arduino</b><b class='flag-5'>構建</b><b class='flag-5'>一</b><b class='flag-5'>個</b>計算<b class='flag-5'>器</b>

    如何使用Arduino Nano構建金屬探測

    在這個項目中,我們將使用線圈和電容器來檢測金屬。在這里,我們使用Arduino Nano來構建這個金屬探測項目。對于所有電子愛好者來說
    的頭像 發表于 11-22 17:15 ?3634次閱讀
    如何使用<b class='flag-5'>Arduino</b> Nano<b class='flag-5'>構建</b><b class='flag-5'>一</b><b class='flag-5'>個</b>金屬探測<b class='flag-5'>器</b>

    基于TMS320LF2407A的調音器設計

    基于TMS320LF2407A的調音器設計 摘要:設計了種基于數字信號處理芯片TMS320LF2407的調音器系統,以咪頭拾取吉他弦音,將聲音信號轉換為電信號,再用模數轉換
    發表于 12-18 11:43

    誰能給MIC調音器的電路圖啊

    如圖所示,自己想焊塊MIC麥克風式的電路板,但是又不懂放大電路什么的,有沒有現成的MIC調音器的電路圖?
    發表于 07-24 22:02

    吉他調音器設計

    有哪位大神設計過吉他調音器的嵌入式開發?幫忙指點下,謝謝
    發表于 12-04 13:11

    有誰做過樂器的調音器的,

    本帖最后由 doudizhu 于 2017-3-29 16:47 編輯 最近在搞樂器類的調音器,利用蜂鳴片拾音,通過LM358運放濾波,通過單片機的FFT傅里葉變換計算出頻率。誰有這方面的算法和典型應用電路,給小弟指引
    發表于 03-29 16:46

    Auified發布吉他效果?AmpLion 2 Rock Essentials

    設計的GUI。你能得到三傳奇的箱頭模型,四音箱,十五stompbox,十麥克風,都是使用最先進的建模重現出來。簡易的調音器。打開即可
    發表于 03-30 09:22

    莫夫大吉他法茲的構建教程

    描述莫夫大吉他法茲這是 Big Muff 的 PCB。我在 Eagle 中設計了這個。我在這里使用了 The Big Muff Page 的零件編號。使用此板,您應該能夠構建任何版本的標準 Big Muff。只需選擇原理圖并將零件編號與該板匹配即可。
    發表于 07-05 07:33

    使用Arduino構建數字羅盤

    方向。在本文中,您將學習如何使用 Arduino 構建自己的數字羅盤。通過它,您將能夠了解HMC5883L傳感的完整操作,來檢測它的方位方向。此外,您將學習如何構建自己的電子羅盤板并
    發表于 08-25 06:11

    基于Arduino制作吉他自動調音器

    吉他時最重要的事情之是確保樂器音準。即使是最好的吉他手,用把走調的吉他也不會聽起來有任何好處。使用標準
    發表于 08-15 15:31 ?2026次閱讀
    基于<b class='flag-5'>Arduino</b>制作<b class='flag-5'>吉他</b>自動<b class='flag-5'>調音器</b>

    構建基于晶體管的吉他失真踏板電路

    誰不喜歡失真的電吉他的隆隆聲?它是許多重要音樂流派的關鍵部分,特別是在布魯斯和搖滾音樂流派中,并且也經常用于硬搖滾、金屬或朋克音樂流派。在這個項目中,我們將使用簡單的電路為吉他
    發表于 08-16 15:52 ?1692次閱讀
    <b class='flag-5'>構建</b><b class='flag-5'>一</b><b class='flag-5'>個</b>基于晶體管的<b class='flag-5'>吉他</b>失真踏板電路

    如何使用Arduino構建無線門鈴

     在這個項目中,我們將使用 Arduino 構建無線門鈴。我們將有按鈕,按下該按鈕將無線
    發表于 08-19 15:57 ?1805次閱讀
    如何使用<b class='flag-5'>Arduino</b><b class='flag-5'>構建</b><b class='flag-5'>一</b><b class='flag-5'>個</b>無線門鈴

    使用Arduino構建摩爾斯電碼轉換

    在本教程中,我們將使用 Arduino 構建摩爾斯電碼轉換,它將任何字符作為串行監視的輸
    發表于 08-29 16:46 ?4038次閱讀
    使用<b class='flag-5'>Arduino</b><b class='flag-5'>構建</b><b class='flag-5'>一</b><b class='flag-5'>個</b>摩爾斯電碼轉換<b class='flag-5'>器</b>

    Arduino MEGA吉他踏板開源分享

    電子發燒友網站提供《Arduino MEGA吉他踏板開源分享.zip》資料免費下載
    發表于 10-27 11:41 ?0次下載
    <b class='flag-5'>Arduino</b> MEGA<b class='flag-5'>吉他</b>踏板開源分享

    Arduino UNO吉他踏板開源

    電子發燒友網站提供《Arduino UNO吉他踏板開源.zip》資料免費下載
    發表于 11-08 09:22 ?3次下載
    <b class='flag-5'>Arduino</b> UNO<b class='flag-5'>吉他</b>踏板開源
    主站蜘蛛池模板: 美女洗澡脱得一二干净| 久久久久亚洲精品影视| 国产精品国产三级国产an | 亚洲精品久久区二区三区蜜桃臀| 亚洲 欧美 日本 国产 高清 | 欧美深深色噜噜狠狠yyy| 青青青久久| 少妇一夜未归暴露妓女身份| 五月丁香婷姐色| 亚洲色图19p| 海角社区在线视频播放观看| 国产私拍福利精品视频| 精品欧美一区二区三区久久久 | 国产这里有精品| 九色PORNY真实丨国产免费| 麻豆精品人妻一区二区三区蜜桃| 欧美 亚洲 有码中文字幕| 日韩亚洲不卡在线视频| 亚洲精品国产字幕久久vr| 中国jjzz| 厨房玩朋友娇妻中文字幕| 国内精品伊人久久久影院| 伦理电影2499伦理片| 色爱AV综合区| 亚洲一品AV片观看五月色婷婷| 99re久久精品在线播放| 国产A级毛片久久久久久久| 九九九色成人网| 欧美最猛12teevideos欧美| 武侠艳妇屈辱的张开双腿| 在线播放成人无码日| 背着老婆爆操性感小姨子| 国产人成精品综合欧美成人| 乱码AV午夜噜噜噜噜| 日日夜夜天天操| 野花社区WWW韩国日本| japonensis护士| 黄色三级在线| 青娱乐在线一区| 影音先锋色小姐| 国产99久9在线|