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

爱你的心辉 发表于 2018-4-9 19:41

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

https://www.arduino.cn/forum.php?mod=image&aid=42052&size=300x300&key=409fff16fa201fb0&nocache=yes&type=fixnone
今天学习了用arduino控制无缘蜂鸣器。
arduino的任何一个引脚控制无缘蜂鸣器进行声音的输出,通过输出高低电平的平率的高低来控制音阶的高低。通过调用pitches头文件中已经定义好的音阶可以轻松实现乐曲的播放控制。
下面是pitches.h文件中的音阶定义
https://www.arduino.cn/forum.php?mod=image&aid=42060&size=300x300&key=e3c2ab782032e421&nocache=yes&type=fixnone
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()
{


}



cxk1314 发表于 2018-4-9 22:27

这个我还没玩到,学习了:)
页: [1]
查看完整版本: ARDUINO 音乐门铃——蜂鸣器发声