#include "pitches.h"
int datapin = 2;
int clockpin = 3;
int latchpin = 4;
int box = 5;
const int buttonTones[] = {
NOTE_C4, NOTE_C4, NOTE_D4, NOTE_E4,
NOTE_F4, NOTE_G4, NOTE_A4, NOTE_B4
};
byte data[10] = { //定义一个数组用来写0123456789
// a, b, c, d, e, f, g,h.
0b00000011, // 0
0b10011111, // 1
0b00100101, // 2
0b00001101, // 3
0b10011001, // 4
0b01001001, // 5
0b01000001, // 6
0b00011111, // 7
0b00000001, // 8
0b00001001 // 9
};
//do ri mi fa so la xi
//1 2 3 4 5 6 7
int ptime=400;
int music[]={
1,2,3,1,5,0,6,6,6,1,5,0,
6,6,1,0,5,6,3,0,6,5,3,5,3,1,2,3,1,0
};
int number=0;
void setup()
{
// Set the three SPI pins to be outputs:
pinMode(datapin, OUTPUT);
pinMode(clockpin, OUTPUT);
pinMode(latchpin, OUTPUT);
pinMode(box, OUTPUT);
}
void loop()
{
int musics=0;
number=sizeof(music)/sizeof(music[0])-1;
for(int i=0;i<=number;i++){
musics=music[i];
if(music[i]!=0){
delay(100);
}else{
musics=music[i-1];
}
digitalWrite(latchpin,LOW);//准备接收数据
shiftOut(datapin,clockpin,LSBFIRST,data[musics]);
tone(box,buttonTones[musics]);
digitalWrite(latchpin,HIGH);
delay(ptime);
noTone(box);
}
}