基本信息
文件名称:Arduino 系列:Arduino Gemma (基于 ATtiny85)_(11).示例项目:音乐播放器.docx
文件大小:29.91 KB
总页数:37 页
更新时间:2025-06-24
总字数:约2.11万字
文档摘要

PAGE1

PAGE1

示例项目:音乐播放器

在本节中,我们将详细介绍如何使用ArduinoGemma(基于ATtiny85)制作一个简单的音乐播放器。ArduinoGemma是一款小巧的微控制器,非常适合用于各种便携式项目。通过本项目,你将学习如何使用Gemma控制一个扬声器或蜂鸣器来播放音乐。我们将从基础的硬件连接开始,逐步介绍如何编写代码来实现音乐播放功能。

硬件准备

所需材料

ArduinoGemma

一个小型扬声器或蜂鸣器

连接线

电池(可选)

硬件连接

连接扬声器或蜂鸣器:

将扬声器或蜂鸣器的正极连接到Gemma的D1引脚。

将扬声器或蜂鸣器的负极连接到Gemma的GND引脚。

连接电池(如果需要):

将电池的正极连接到Gemma的VOUT引脚。

将电池的负极连接到Gemma的GND引脚。

软件准备

安装ArduinoIDE

确保你已经安装了ArduinoIDE。如果还没有安装,可以从Arduino官网下载并安装。

安装ArduinoGemma支持

打开ArduinoIDE。

进入文件-首选项。

在附加开发板管理器网址中添加以下URL:

https://adafruit.github.io/arduino-board-index/package_adafruit_index.json

进入工具-开发板-开发板管理器。

搜索Adafruit并安装AdafruitAVRBoards。

选择开发板

进入工具-开发板。

选择AdafruitGemma8MHz。

项目原理

ArduinoGemma可以通过脉冲宽度调制(PWM)来生成不同频率的声音,从而实现音乐播放。我们将使用tone函数来控制扬声器或蜂鸣器发出不同的音调。tone函数的基本语法如下:

tone(pin,frequency,duration);

pin:连接扬声器或蜂鸣器的引脚。

frequency:音调的频率,以赫兹(Hz)为单位。

duration:音调持续的时间,以毫秒(ms)为单位。

编写代码

基本音调播放

首先,我们编写一个简单的代码来播放一个基本的音调。

//定义扬声器连接的引脚

constintspeakerPin=1;

voidsetup(){

//初始化扬声器引脚为输出模式

pinMode(speakerPin,OUTPUT);

}

voidloop(){

//播放一个1000Hz的音调,持续1000毫秒

tone(speakerPin,1000,1000);

//等待2000毫秒

delay(2000);

}

播放简单旋律

接下来,我们编写一个代码来播放一个简单的旋律,例如《玛丽有只小羊羔》。

//定义扬声器连接的引脚

constintspeakerPin=1;

//定义音符的频率

constintNOTE_C4=262;

constintNOTE_D4=294;

constintNOTE_E4=330;

constintNOTE_F4=349;

constintNOTE_G4=392;

constintNOTE_A4=440;

constintNOTE_B4=494;

constintNOTE_C5=523;

//定义旋律

intmelody[]={

NOTE_C4,NOTE_C4,NOTE_D4,NOTE_D4,NOTE_E4,NOTE_E4,NOTE_F4,NOTE_F4,

NOTE_G4,NOTE_G4,NOTE_A4,NOTE_A4,NOTE_B4,NOTE_B4,NOTE_C5,NOTE_C5

};

//定义每个音符的持续时间

intnoteDurations[]={

500,500,500,500,500,500,500,500,

500,500,500,500,500,500,500,500

};

voidsetup(){

//初始化扬声器引脚为输出模式

pinMode(speakerPin,OUTPUT);

}

voidloop(){

//遍历旋律数组

for(inti=0;i16;i++){

//播放当前音符

tone(speakerPin,melody[i],not