久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2044|回復: 0
收起左側

[更好用的單片機]Stduino學習(十八)無源蜂鳴器模塊

[復制鏈接]
ID:786043 發表于 2020-8-5 11:12 | 顯示全部樓層 |閱讀模式
說明:
我們已經在第十六講介紹過有源蜂鳴器,因此這里只介紹無源蜂鳴器。
18-無源蜂鳴器展示圖.png
無源蜂鳴器沒有震蕩源,因此需要通過脈寬調制(PWM)輸入特定的方波電壓信號來發聲。PWM原理可在其他教程中查找,本系列主要介紹傳感器。
演奏一首音樂,最重要的每個音的音調(頻率)和節拍(時長)。
C調音符對應的音調頻率如下圖:(每兩個音調頻率相差

音調
音符
音調
1
1#
2
2#
3
4
4#
5
5#
6
6#
7
C調低音
262
277
294
311
330
349
370
392
415
440
466
494
C調中音
523
554
587
622
659
698
740
784
831
880
932
988
C調高音
1046
1109
1175
1245
1318
1397
1480
1568
1661
1760
1865
1976

我們可以通過tone(pin,frequnce)函數來控制無源蜂鳴器的振動頻率,利用delay()來控制節拍,利用noTone(pin)來終止振動。

實驗目的:
控制無源蜂鳴器演奏《天空之城》。天空之城是C調,一拍為四分之一音符長度,每一小節為四拍。
黑點在上為高音,在下為低音,沒有為中音樂。而每兩個豎杠之間為一小節,每一小節共有四個四分之一拍。下面如果畫了一條橫線,則是四分之一拍的二分之一,即八分之一拍;畫了兩條橫線,則是四分之一的四分之一,即十六分之一拍。音符后面的橫線則是前一音符的延續。
18-無源蜂鳴器簡譜.png


器材:
Stduino UNO/Nano、杜邦線、無源蜂鳴器模塊

電路連接:
18-無源蜂鳴器電路圖.png

代碼展示:
#define C0 (2)

#define C1_LOW  (262)
#define C2_LOW  (294)
#define C3_LOW  (330)
#define C4_LOW  (349)
#define C5_LOW  (392)
#define C6_LOW  (440)
#define C7_LOW  (494)

#define C1      (523)
#define C2      (587)
#define C3      (659)
#define C4      (698)
#define C4S     (740)//C4#
#define C5      (784)
#define C5S     (831)//C5#
#define C6      (880)
#define C7      (988)

#define C1_HIGH (1046)
#define C2_HIGH (1175)
#define C3_HIGH (1318)
#define C4_HIGH (1397)
#define C5_HIGH (1568)
#define C6_HIGH (1760)
#define C7_HIGH (1976)

#define WHOLE (1)
#define HALF (0.5)
#define QUARTER (0.25)
#define EIGHTH (0.125)
#define SIXTEENTH (0.0625)

int tune[]=                 //根據簡譜列出各頻率
{
    C6,C7,
   
    C1_HIGH,C7,C1_HIGH,C3_HIGH,//
    C7,C3,C3,
    C6,C5,C6,C1_HIGH,
    C5,C0,C3,C3,
    C4,C3,C4,C1_HIGH,
    C3,C0,C1_HIGH,C1_HIGH,C1_HIGH,
    C7,C4S,C4S,C7,
   
    C7,C0,C6,C7,//
    C1_HIGH,C7,C1_HIGH,C3_HIGH,
    C7,C0,C3,C3,
    C6,C5,C6,C1_HIGH,
    C5,C0,C3,
    C4,C1_HIGH,C7,C7,C1_HIGH,
    C2_HIGH,C2_HIGH,C3_HIGH,C1_HIGH,C0,
   
    C1_HIGH,C7,C6,C6,C7,C5S,//
    C6,C0,C1_HIGH,C2_HIGH,
    C3_HIGH,C2_HIGH,C3_HIGH,C5_HIGH,
    C2_HIGH,C0,C5,C5,
    C1_HIGH,C7,C1_HIGH,C3_HIGH,C0,C0,
    C6,C7,C1_HIGH,C7,C2_HIGH,C2_HIGH,
    C1,C5,C5,C0,
   
    C4_HIGH,C3_HIGH,C2_HIGH,C1_HIGH,//
    C3_HIGH,
    C3_HIGH,C0,C3_HIGH,
    C6_HIGH,C5_HIGH,C5_HIGH,
    C3_HIGH,C2_HIGH,C1_HIGH,C0,C1_HIGH,
    C2_HIGH,C1_HIGH,C2_HIGH,C2_HIGH,C5_HIGH,
    C3_HIGH,C0,C3_HIGH,
    C6_HIGH,C5_HIGH,
    C3_HIGH,C2_HIGH,C1_HIGH,C0,C1_HIGH,
    C2_HIGH,C1_HIGH,C2_HIGH,C2_HIGH,C7,

    C6,C0,C6,C7,
   
    C6
};
float durt[]=                   //根據簡譜列出各節拍
{
    EIGHTH,EIGHTH,
   
    QUARTER + EIGHTH,EIGHTH,QUARTER,QUARTER,
    QUARTER + QUARTER + QUARTER,EIGHTH,EIGHTH,
    QUARTER + EIGHTH,EIGHTH,QUARTER,QUARTER,
    QUARTER + QUARTER,QUARTER,EIGHTH,EIGHTH,
    QUARTER + EIGHTH,EIGHTH,EIGHTH,QUARTER+EIGHTH,
    QUARTER + QUARTER,QUARTER,EIGHTH,EIGHTH,EIGHTH,
    QUARTER + EIGHTH,EIGHTH,QUARTER,QUARTER,
   
    QUARTER+QUARTER,QUARTER,EIGHTH,EIGHTH,
    QUARTER+EIGHTH,EIGHTH,QUARTER,QUARTER,
    QUARTER+QUARTER,QUARTER,EIGHTH,EIGHTH,
    QUARTER+EIGHTH,EIGHTH,QUARTER,QUARTER,
    QUARTER+QUARTER+QUARTER,EIGHTH,EIGHTH,
    QUARTER,EIGHTH,EIGHTH,EIGHTH,QUARTER,
    EIGHTH,EIGHTH,EIGHTH,QUARTER,QUARTER,
   
    QUARTER,EIGHTH,EIGHTH,EIGHTH,QUARTER,QUARTER,
    QUARTER+QUARTER,QUARTER,EIGHTH,EIGHTH,
    QUARTER+EIGHTH,QUARTER,QUARTER,QUARTER,
    QUARTER+QUARTER,QUARTER,EIGHTH,EIGHTH,
    EIGHTH,EIGHTH,QUARTER,QUARTER,
    QUARTER+QUARTER,QUARTER,QUARTER,
    EIGHTH,EIGHTH,QUARTER,QUARTER,EIGHTH,EIGHTH,
    QUARTER+EIGHTH,EIGHTH,QUARTER,QUARTER,
   
    QUARTER,QUARTER,QUARTER,QUARTER,
    QUARTER+QUARTER+QUARTER,
    QUARTER+QUARTER,QUARTER,QUARTER,
    QUARTER+QUARTER,QUARTER,QUARTER,
    EIGHTH,EIGHTH,QUARTER,EIGHTH,EIGHTH,
    QUARTER,EIGHTH,EIGHTH,EIGHTH,QUARTER,
    QUARTER+QUARTER,QUARTER,QUARTER,
    QUARTER+QUARTER,QUARTER+QUARTER,
    EIGHTH,EIGHTH,QUARTER+QUARTER,EIGHTH,EIGHTH,
    QUARTER,EIGHTH,EIGHTH,EIGHTH,QUARTER,
    QUARTER+QUARTER,QUARTER,EIGHTH,EIGHTH,
   
    QUARTER+QUARTER+QUARTER
   
};

int Time = 2000;
int BUZZER = A0;

int length;

void setup()
{
  // put your setup code here, to run once:

    length=sizeof(tune)/sizeof(tune[0]);   //計算長度
}

void loop()
{
  // put your main code here, to run repeatedly:
    for(int i=0;i<length;i++)
    {
        if(tune[ i]!=0)
        {
            tone(BUZZER,tune[ i]);
        }  
        else
        {
            noTone(BUZZER);
        }
        delay(Time*durt[ i]); //這里用來樂曲速度。
    }
    delay(2000);
}

Stduino IDE是一款面向32位處理器快速入門學習的集成開發平臺,目前已經支持Arduino_Core_STM32框架,集聚快捷、高效、免費、開源、易得于一身,軟件還集成了GDB調試功能。
IDE當前支持的功能有:

  • GDB調試
  • 封裝庫下載安裝
  • 代碼自動補全提示
  • 中英文模式
  • UTF-8\GBK編碼格式
  • 代碼快速格式化
  • SWD\串口程序下載&調試(已驗證)
  • DFU程序下載方式(待驗證)
  • USB HID程序下載方式(待驗證)
  • maple DFU程序下載方式(待驗證)
  • maple DFU2程序下載方式(待驗證)
  • MassStorage程序下載方式(待驗證)

更多功能細節請登錄圖片上水印顯示的網址進行了解

已經支持的芯片&板型列表:

  • Stduino UNO&Nano
  • Nucleo 144 boards
  • Nucleo 64 boards
  • Nucleo 32 boards
  • Discovery boards
  • Eval boards
  • STM32MP1 series coprocessor boards
  • Generic STM32F0 boards
  • Generic STM32F1 boards
  • Generic STM32F3 boards
  • Generic STM32F4 boards
  • Generic STM32H7 boards
  • Generic STM32L0 boards
  • 3D printer boards
  • LoRa boards
  • Electronic Speed Controller boards
  • Generic flight controllers
  • Garatronics boards
  • Midatronics boards

更多功能集成正在進行中~




回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 天天久久| 亚洲精品v日韩精品 | 亚洲一区二区中文字幕 | 一区中文字幕 | 日日做夜夜爽毛片麻豆 | 免费观看一级特黄欧美大片 | 国产在线中文字幕 | 欧美成人精品一区二区男人看 | 精品美女视频在线观看免费软件 | 国产一区二区在线免费 | 成人免费网站视频 | 成人国产在线视频 | 成人一区二区三区在线 | 国产一区二区不卡 | 天天夜碰日日摸日日澡 | 欧美精品一区二区三区四区五区 | 色先锋影音 | 久久九九免费 | 国产aⅴ爽av久久久久久久 | 91精品国产综合久久精品图片 | 亚洲毛片| av免费网址| 国产精品久久久久无码av | 一区二区不卡 | 亚洲国产精品久久久久婷婷老年 | www.青娱乐| 色天天综合| 亚洲欧美日韩精品久久亚洲区 | 成人a在线观看 | 国产亚洲久| 五月婷婷 六月丁香 | 免费一级淫片aaa片毛片a级 | 亚洲精品一区二区三区丝袜 | 亚洲高清视频在线 | 欧洲精品视频一区 | 亚洲视频 欧美视频 | 天天澡天天狠天天天做 | 久久久久久久电影 | 国产精品美女久久久久 | 我想看一级黄色毛片 | 国产免费看 |