lonewolf 发表于 2012-7-27 22:50:00

ATMega8最小系统和蜂鸣器做音乐盒

本帖最后由 lonewolf 于 2012-8-3 16:51 编辑

材料:
atmega8, 28pin芯片底座,16M晶振,22pf电容X2,蜂鸣器,cr2032电池,cr2032电池底座,一位拨码开关,洞洞板。

接线:
按照atmega8最小系统接线,数字口只引出一个连接蜂鸣器就可以了,其他的都不用接。我用的是2号数字口。

不会画电路图,上一张实物图凑合看吧。



用途:
听音乐?

优点:
体积小

缺点:
电池续航时间短,声音有点小。

代码内容:
循环播放生日快乐歌


用到的库:
http://rogue-code.googlecode.com/files/Arduino-Library-Tone.zip

代码:#include <Tone.h>

int speakerPin = 2;
Tone makeTone;

// notes to play; see Tone.h for frequencies;
int notes[] = {
NOTE_C4, NOTE_C4, NOTE_D4, NOTE_C4, NOTE_F4, NOTE_E4,
NOTE_C4, NOTE_C4, NOTE_D4, NOTE_C4, NOTE_G4, NOTE_F4,
NOTE_C4, NOTE_C4, NOTE_C5, NOTE_A4, NOTE_F4, NOTE_E4, NOTE_D4,
NOTE_AS4, NOTE_AS4, NOTE_A4, NOTE_F4, NOTE_G4, NOTE_F4};

// number of beats for each note
int beats[] = {
1, 1, 2, 2, 2, 4,
1, 1, 2, 2, 2, 4,
1, 1, 2, 2, 2, 2, 2,
1, 1, 2, 2, 2, 4};

// Calculate song length
int songLength = sizeof(notes) / sizeof(int);
int tempo = 220; // in milliseconds

void playNote(int note, int beat){
makeTone.stop(); // speaker reset
makeTone.play(note); // play tone
delay(tempo * beat); // for specified number of beats
makeTone.stop(); // speaker reset
delay(tempo / 4); // pause between notes
}

void setup() {
makeTone.begin(speakerPin); // set up piezo speaker
}

void loop() {
for (int i = 0; i < songLength; i++) {
    playNote(notes, beats); // make sound
}
}

迷你强 发表于 2012-7-27 23:06:33

;P这个音乐贺卡不错。。

lonewolf 发表于 2012-7-27 23:20:41

迷你强 发表于 2012-7-27 23:06 static/image/common/back.gif
这个音乐贺卡不错。。

明天就送人了

弘毅 发表于 2012-7-28 08:20:09

{:soso_e103:}送给MM的定情信物?

lonewolf 发表于 2012-7-28 08:43:06

弘毅 发表于 2012-7-28 08:20 static/image/common/back.gif
送给MM的定情信物?

寒碜了点吧?生日礼物。。。

Randy 发表于 2012-7-28 09:32:56

不寒碜,我觉得加上外包装好一点的话,决定是精品啊!{:soso_e102:}

lonewolf 发表于 2012-7-28 10:06:22

Randy 发表于 2012-7-28 09:32 static/image/common/back.gif
不寒碜,我觉得加上外包装好一点的话,决定是精品啊!

那你是没看到背面,焊得稀烂。。。

Randy 发表于 2012-7-28 10:10:28

lonewolf 发表于 2012-7-28 10:06 static/image/common/back.gif
那你是没看到背面,焊得稀烂。。。

所以说要包装起来呀,不给她拆就OK 了,哈哈!

lonewolf 发表于 2012-7-28 10:23:51

Randy 发表于 2012-7-28 10:10 static/image/common/back.gif
所以说要包装起来呀,不给她拆就OK 了,哈哈!

太麻烦了。
就这样了,做着玩儿的,不用那么认真。
裸露着比较有科技感。哈哈哈~~~

davidce 发表于 2012-7-28 14:26:27

还是包一下的好

lonewolf 发表于 2012-7-28 22:48:36

davidce 发表于 2012-7-28 14:26 static/image/common/back.gif
还是包一下的好

最后还是让花店小姑娘包了一下

acdc0616 发表于 2012-7-30 13:53:31

伙计,你有点大材小用了arduino,买个《生日快乐》的音乐芯片才1-2元,体积比这个小多了。

lonewolf 发表于 2012-7-30 16:40:03

acdc0616 发表于 2012-7-30 13:53 static/image/common/back.gif
伙计,你有点大材小用了arduino,买个《生日快乐》的音乐芯片才1-2元,体积比这个小多了。

DIY玩得不就是折腾嘛,呵呵。
正好手头有这些材料,所有这样做。如果手头有你说的音乐芯片,可能就是另一种做法了。

cnkids 发表于 2012-8-1 03:09:14

这个有点意思哈~回头整一个玩玩~

羽衣甘蓝 发表于 2012-8-3 13:19:33

我下了库函数,用的就是这段代码,但是编译的时候会出现这样的错误:sketch_aug03a:37: error: invalid conversion from 'int*' to 'int'
sketch_aug03a:37: error: initializing argument 2 of 'void playNote(int, int)',不知道是哪里出了问题
页: [1] 2
查看完整版本: ATMega8最小系统和蜂鸣器做音乐盒