|
|
本帖最后由 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[i], beats[i]); // make sound
- }
- }
复制代码 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|