跳转到主内容
趣航编程网 - 趣学编程,启航技术之路!

Arduino玩转蜂鸣器音乐,你会了吗?

一、文章导读

大家好,今天顺亿来跟大家聊聊Arduino的一个超有趣项目——用蜂鸣器演奏音乐!从乐理基础到编程实现,一步步带你玩转《生日快乐歌》,还能课后练习《小星星》,快来一起看看吧!

二、项目概述

本项目通过Arduino控制无源蜂鸣器,利用不同频率的方波发出不同音高,结合简谱节奏和音符时值,实现完整歌曲的演奏。别小看这个项目,它可是新手最容易踩的坑哦,比如区分有源蜂鸣器和无源蜂鸣器。

三、核心乐理知识

1. 音名、唱名、简谱对应关系

Do Re Mi 和简谱数字,新手们很容易搞混,这里顺亿给大家整理了唱名、简谱和音名的对应关系,还有音的高低是由振动频率决定的,频率越高,音调越高。

2. 完整音高频率表

表格横向为八度组别(0~8),纵向为音名,数值为对应频率(Hz),Arduino tone()函数直接调用该频率即可发出标准音高。比如中央C(中音Do),对应4组C,频率262Hz,但电子音适合高一点更好听,所以可以用C5作为中音Do(523HZ)。

3. 音符时值(音的长短)

同样一个音高,通过控制发声时长,就能唱出节奏。时值规则如下:

  • 全音符:4拍
  • 二分音符:2拍
  • 四分音符:1拍
  • 八分音符:0.5拍
  • 十六分音符:0.25拍

4. 拍号与歌曲速度(BPM)

4/4拍:以四分音符为一拍,每小节4拍

3/4拍:以四分音符为一拍,每小节3拍

BPM:每分钟节拍数,本文生日快乐采用常规速度60~100BPM。60BPM:1拍 = 1000ms;100BPM:1拍 ≈ 600ms

四、有源蜂鸣器 vs 无源蜂鸣器(关键区别)

1. 有源蜂鸣器

内部自带震荡源,通电即响,只能发出固定“滴滴”声,无法演奏旋律,不能变调。

2. 无源蜂鸣器(本次项目使用)

内部无震荡源,需要2K~5KHz方波驱动,可通过改变频率改变音调,支持演奏任意歌曲。无正负极区分,接线简单。

五、Arduino音乐核心函数:tone() / noTone()

1. tone() 发声函数:用于使蜂鸣器发声,参数为频率和时长。

2. noTone() 停止发声函数:用于停止蜂鸣器发声。

小结与拓展

今天的Arduino蜂鸣器音乐演奏项目就聊到这里,希望对大家有所帮助。想了解更多Arduino编程技巧,欢迎关注顺亿和「趣航编程网」(www.vqhf.com),我们下期再见!

相关文章