簡體   English   中英

如何制作 function 以在 Arduino 蜂鳴器上保存和重放音調?

[英]How to make function for save and replay tones on Arduino buzzer?

我對我在 Arduino 中的項目有疑問,我有這個頻率數組作為注釋:

int note[] = {261, 293, 329, 349, 392, 440, 494, 523};

如果按下其中一個按鈕,則此 function 用於播放音符:

void play(float U_ADC0){ 


        if(U_ADC0 >= 4.80) { // ADC conversion (Voltage value)  PB1
            BUZZ (0.1 , note[0]) ; _delay_ms (100) ;  //  buzz
            lcd_clear();
            lcd_write("C4");  // lcd display 

        }
        
        if(U_ADC0 < 4.80 && U_ADC0 >= 4.70){ //PB2
            BUZZ (0.1 , note[1]) ; _delay_ms (100) ;
            lcd_clear();
            lcd_write("D4");
        }
        
        if(U_ADC0 < 4.72 && U_ADC0 >= 4.65){ //PB3
            BUZZ (0.1 , note[2]) ; _delay_ms (100) ;
            lcd_clear();
            lcd_write("E4");
        }
        
        if(U_ADC0 < 4.60 && U_ADC0 >= 4.50){  //PB4
            BUZZ (0.1 , note[3]) ; _delay_ms (100) ;
            lcd_clear();
            lcd_write("F4");
        }
        
        if(U_ADC0 < 4.20 && U_ADC0 >= 4.05){ //PB5
            BUZZ (0.1 , note[4]) ; _delay_ms (100) ;
            lcd_clear();
            lcd_write("G4");
        }
        
        if(U_ADC0 < 3.80 && U_ADC0 >= 3.70){ //PB6
            BUZZ (0.1 , note[5]) ; _delay_ms (100) ;
            lcd_clear();
            lcd_write("A4");
        }
        
        if(U_ADC0 < 3.55 && U_ADC0 >= 3.30){ //PB7
            BUZZ (0.1 , note[6]) ; _delay_ms (100) ;
            lcd_clear();
            lcd_write("B4");
        }
        
        if(U_ADC0 < 2.55 && U_ADC0 >= 2.45){ //PB8
            BUZZ (0.1 , note[7]) ; _delay_ms (100) ;
            lcd_clear();
            lcd_write("C5");

        }

}

那么,我怎樣才能通過按下按鈕按順序制作新的頻率場,以便我可以保存並在蜂鳴器上重播我的旋律? 我使用了我所有的想法,但沒有奏效,我也沒有新的想法。 所以如果有人有想法,你能幫幫我嗎?

我會使用一個按鈕(我們稱之為錄制按鈕)在播放和錄制之間切換,並且只播放 這樣,每當你按下按鈕,得到那些蜂鳴器頻率不會保存,但當你喜歡旋律並想保存時,你可以點擊錄制按鈕開始保存。 為了實現這一點,請遵循以下算法:

在您的第一個 function 之后,創建一個 function 用於錄制按鈕 在這個 function 中,您需要調用您已經編寫的第一個 function(無效播放)並添加一個代碼片段,用於將按下按鈕的值分配到您將在代碼開頭創建的int 數組中(我們稱之為int記錄[] )。

還剩下一步,即檢查(如果按下錄制按鈕)開關按鈕,因此它將在錄制和播放播放之間切換,並調用相應的 function。 最后,您可以再添加一個按鈕來播放int Recorded[]中的旋律。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM