我整理了一套Arduino零基础 从入门到高级 完整系统课程,包含视频讲解、全套源码、接线图纸、库文件、ESP32/ESP32-S3 摄像头 物联网实战项目,循序渐进,新手也能零基础吃透。需要系统学习可以查看我主页专属课程(零基础保姆级Arduino教程从入门到实战_在线视频教程-CSDN程序员研修院)。哈喽大家好!本次分享Arduino超好玩的蜂鸣器音乐演奏项目,很多小伙伴初学Arduino都想做一个能播放音乐的小装置,本文从零讲解乐理基础、音高频率对照表、音符时值、拍号速度、蜂鸣器区别、tone()发声函数,最后手把手实现经典的《生日快乐歌》演奏,附带课后作业《小星星》完整源码,零基础直接跑通!一、项目概述本项目通过Arduino驱动无源蜂鸣器,利用不同频率方波发出不同音高,结合简谱节奏、音符时值、歌曲速度,实现完整歌曲演奏。有源蜂鸣器只能滴滴响,只有无源蜂鸣器可以演奏旋律,这是新手最容易踩的坑,文末会详细区分。二、核心乐理知识1.音名、唱名、简谱对应关系很多新手分不清 Do Re Mi 和简谱数字,这里整理一一对应关系:唱名:Do、Re、Mi、Fa、So、La、Si简谱:1、2、3、4、5、6、7音名:C、D、E、F、G、A、B音的高低由振动频率决定:频率越高,音调越高;频率越低,音调越低。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~100BPM60BPM:1拍 = 1000ms;100BPM:1拍 ≈ 600ms三、有源蜂鸣器vs无源蜂鸣器(关键区别)1.有源蜂鸣器内部自带震荡源通电即响,只能发出固定“滴滴”声无法演奏旋律,不能变调2.无源蜂鸣器(本次项目使用)内部无震荡源需要 2K~5KHz 方波驱动可通过改变频率改变音调,支持演奏任意歌曲无正负极区分,接线简单四、Arduino音乐核心函数:tone() / noTone()1. tone()发声函数