ARDUINO 音乐门铃——蜂鸣器发声-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 8409|回复: 1

ARDUINO 音乐门铃——蜂鸣器发声

[复制链接]
发表于 2018-4-9 19:41 | 显示全部楼层 |阅读模式

今天学习了用arduino控制无缘蜂鸣器。
arduino的任何一个引脚控制无缘蜂鸣器进行声音的输出,通过输出高低电平的平率的高低来控制音阶的高低。通过调用pitches头文件中已经定义好的音阶可以轻松实现乐曲的播放控制。
下面是pitches.h文件中的音阶定义
pitches.zip (626 Bytes, 下载次数: 159)
tone(pin,melody,(time));控制引脚输出一个频率的PWM波,时间可以不要;
noTone(pin);停止一个引脚输出PWM波。
下面程序如下

#include "pitches.h"
int buzzerPin=9;
int melody[] = {NOTE_G4,NOTE_G4,NOTE_A4,NOTE_G4,NOTE_C5,NOTE_B4,0,NOTE_G4,NOTE_G4,NOTE_A4,NOTE_G4,NOTE_D5,NOTE_C5,0,NOTE_G4,NOTE_G4,NOTE_G5,NOTE_E5,NOTE_C5,NOTE_B4,NOTE_A4,0,NOTE_F5,NOTE_F5,NOTE_E5,NOTE_C5,NOTE_D5,NOTE_C5,0};
int noteDurations[] = {8, 8, 4, 4, 4, 4,4,8, 8, 4, 4, 4, 4,4,8, 8, 4, 4, 4, 4, 2,8,8, 8, 4, 4, 4, 2,4};
void setup()
{
  pinMode(buzzerPin,OUTPUT); delay(300); play();
  for (int i = 0; i < 29; i++)
{
    int noteDuration = 1000 / noteDurations;
    tone(buzzerPin, melody, noteDuration);
    int pauseBetweenNotes = noteDuration * 1.30;
    delay(pauseBetweenNotes);
    noTone(buzzerPin);
}
}

void loop()
{


}



发表于 2018-4-9 22:27 | 显示全部楼层
这个我还没玩到,学习了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-12-1 05:43 , Processed in 0.082678 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表