查看: 56|回复: 0

ChipKIT Uno32 教程--第五课:蜂鸣器

[复制链接]

主题

好友

68

积分

版主

  • TA的每日心情
    擦汗
    2017-8-7 15:27
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    发表于 2012-7-13 00:45:25 |显示全部楼层
    准备工作
    我们已经实现了通过数字口驱动LED,下面我们来试试用数字接口完成更多的事。蜂鸣器在电子设备中广泛运用的一种发声器件,这一节我们需要准备一个蜂鸣器元件。

    有源蜂鸣器

    蜂鸣器发声
    有源蜂鸣器的驱动非常简单,当正极输入为高时,内部驱动电路导通,蜂鸣器发出声音;当正极输入为低时,内部驱动电路截止,蜂鸣器不发出声音。

             
    • 根据有源蜂鸣器原理,其输入连接到数字口,就可以控制输出是蜂鸣器发出声音。

             
    • 发声程序如下,会使蜂鸣器模拟发出救护车警笛声音。

             
    • 下载程序到chipKIT Uno32中,观察结果。
    用chipKIT唱歌
    上面我们用for循环函数来产生声音频率,Arduino语言中有一个专门的发声函数,参见tone()
             
    • 修改程序使用tone函数产生声音频率也能模拟出同样效果
    利用tone函数我们可以方便实现发出各种频率声音,可以让chipKIT开始歌唱!
             
    • 首先我们需要定义一个头文件,将一些典型的常用的音阶频率定义下来。在程序的窗口点击图标,选择"New Tab"可以添加新文件

             
    • 添加音阶头文件pitchs.h
    #define NOTE_B0  31#define NOTE_C1  33#define NOTE_CS1 35#define NOTE_D1  37#define NOTE_DS1 39#define NOTE_E1  41#define NOTE_F1  44#define NOTE_FS1 46#define NOTE_G1  49#define NOTE_GS1 52#define NOTE_A1  55#define NOTE_AS1 58#define NOTE_B1  62#define NOTE_C2  65#define NOTE_CS2 69#define NOTE_D2  73#define NOTE_DS2 78#define NOTE_E2  82#define NOTE_F2  87#define NOTE_FS2 93#define NOTE_G2  98#define NOTE_GS2 104#define NOTE_A2  110#define NOTE_AS2 117#define NOTE_B2  123#define NOTE_C3  131#define NOTE_CS3 139#define NOTE_D3  147#define NOTE_DS3 156#define NOTE_E3  165#define NOTE_F3  175#define NOTE_FS3 185#define NOTE_G3  196#define NOTE_GS3 208#define NOTE_A3  220#define NOTE_AS3 233#define NOTE_B3  247#define NOTE_C4  262#define NOTE_CS4 277#define NOTE_D4  294#define NOTE_DS4 311#define NOTE_E4  330#define NOTE_F4  349#define NOTE_FS4 370#define NOTE_G4  392#define NOTE_GS4 415#define NOTE_A4  440#define NOTE_AS4 466#define NOTE_B4  494#define NOTE_C5  523#define NOTE_CS5 554#define NOTE_D5  587#define NOTE_DS5 622#define NOTE_E5  659#define NOTE_F5  698#define NOTE_FS5 740#define NOTE_G5  784#define NOTE_GS5 831#define NOTE_A5  880#define NOTE_AS5 932#define NOTE_B5  988#define NOTE_C6  1047#define NOTE_CS6 1109#define NOTE_D6  1175#define NOTE_DS6 1245#define NOTE_E6  1319#define NOTE_F6  1397#define NOTE_FS6 1480#define NOTE_G6  1568#define NOTE_GS6 1661#define NOTE_A6  1760#define NOTE_AS6 1865#define NOTE_B6  1976#define NOTE_C7  2093#define NOTE_CS7 2217#define NOTE_D7  2349#define NOTE_DS7 2489#define NOTE_E7  2637#define NOTE_F7  2794#define NOTE_FS7 2960#define NOTE_G7  3136#define NOTE_GS7 3322#define NOTE_A7  3520#define NOTE_AS7 3729#define NOTE_B7  3951#define NOTE_C8  4186#define NOTE_CS8 4435#define NOTE_D8  4699#define NOTE_DS8 4978

             
    • 输入以下程序,让chipKIT发出一段旋律。

             
    • 蜂鸣器的效果有限,如果chipKIT驱动扬声器的话能发出更动听的旋律。
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    关闭

    站长推荐上一条 /4 下一条

    手机版|电路城

    GMT+8, 2019-7-20 01:38 , Processed in 0.080813 second(s), 15 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz!

    返回顶部