期末作品
目的:
利用所學會的程式基礎及Arduino做搭配,製作出具有可觀賞且有趣的成品來。
困難點:
1.在於要將程式打出前,必須要先理解程式的使用方法,依照對程式的理解去做出正確的結果。
2.在焊接上須小心使用及先行規畫畫好焊接點避免排序錯誤導致失敗。
YOUTUBE影片:
https://www.youtube.com/watch?v=UnhxEMz7OGs
程式:
#define C 524
#define D 588
#define E 660
#define F 698
#define G 784
#define A 880
#define B 988
#define aF 740
#define aD 554
#define hC 1046
#define hD 1175
#define hE 1318
#define hF 1397
#define hG 1568
#define hA 1760
#define hB 1976
const byte SW=2;//觸碰開關
const byte LEDs[]={3,4,5,6,7,9,10,11,12,13}; //LED接腳
const byte total = sizeof(LEDs); //LED數量
byte index = 0;
void playAll1(){//小星星
for(int i=0;i<2;i++){
tone(8,C,250);
digitalWrite(3,HIGH);
delay(250);
tone(8,C,250);
digitalWrite(4,HIGH);
delay(250);
tone(8,G,250);
digitalWrite(5,HIGH);
delay(250);
tone(8,G,250);
digitalWrite(6,HIGH);
delay(250);
tone(8,A,250);
digitalWrite(7,HIGH);
delay(250);
tone(8,A,250);
digitalWrite(9,HIGH);
delay(250);
tone(8,G,500);
digitalWrite(10,HIGH);
digitalWrite(11,HIGH);
delay(500);
tone(8,F,250);
digitalWrite(12,HIGH);
delay(250);
tone(8,F,250);
digitalWrite(12,LOW);
delay(250);
tone(8,E,250);
digitalWrite(11,LOW);
digitalWrite(10,LOW);
delay(250);
tone(8,E,250);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
digitalWrite(9,LOW);
delay(250);
tone(8,D,500);
digitalWrite(3,HIGH);
digitalWrite(4,HIGH);
digitalWrite(5,HIGH);
digitalWrite(6,HIGH);
digitalWrite(7,HIGH);
digitalWrite(9,HIGH);
delay(250);
tone(8,D,250);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
digitalWrite(9,LOW);
delay(250);
tone(8,C,500);
digitalWrite(3,HIGH);
digitalWrite(4,HIGH);
digitalWrite(5,HIGH);
digitalWrite(6,HIGH);
digitalWrite(7,HIGH);
digitalWrite(9,HIGH);
digitalWrite(10,HIGH);
digitalWrite(11,HIGH);
digitalWrite(12,HIGH);
delay(500);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,LOW);
digitalWrite(12,LOW);
}
}
void playAll2(){//野玫瑰
for(int i=0;i<3;i++){
tone(8,E,500);
digitalWrite(12,HIGH);
delay(500);
tone(8,E,500);
digitalWrite(10,HIGH);
digitalWrite(11,HIGH);
delay(500);
tone(8,E,500);
digitalWrite(3,HIGH);
digitalWrite(9,HIGH);
delay(500);
tone(8,G,500);
digitalWrite(4,HIGH);
digitalWrite(7,HIGH);
delay(500);
tone(8,G,250);
digitalWrite(5,HIGH);
digitalWrite(6,HIGH);
delay(250);
tone(8,F,250);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,LOW);
digitalWrite(12,LOW);
delay(250);
tone(8,F,250);
digitalWrite(12,HIGH);
delay(250);
tone(8,E,250);
digitalWrite(11,HIGH);
delay(250);
tone(8,D,500);
digitalWrite(10,HIGH);
delay(500);
tone(8,D,500);
digitalWrite(9,HIGH);
delay(500);
tone(8,D,500);
digitalWrite(3,HIGH);
delay(500);
tone(8,E,500);
digitalWrite(7,HIGH);
delay(500);
tone(8,F,500);
digitalWrite(4,HIGH);
delay(500);
tone(8,G,1000);
digitalWrite(6,HIGH);
delay(1000);
tone(8,hC,1000);
digitalWrite(5,HIGH);
delay(1000);
tone(8,E,500);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,LOW);
digitalWrite(12,LOW);
delay(500);
tone(8,E,500);
digitalWrite(5,HIGH);
digitalWrite(6,HIGH);
delay(500);
tone(8,E,500);
digitalWrite(4,HIGH);
digitalWrite(7,HIGH);
delay(500);
tone(8,G,500);
digitalWrite(3,HIGH);
digitalWrite(9,HIGH);
delay(500);
tone(8,G,250);
digitalWrite(10,HIGH);
digitalWrite(11,HIGH);
delay(250);
tone(8,F,250);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,LOW);
digitalWrite(12,HIGH);
delay(250);
tone(8,F,250);
digitalWrite(12,LOW);
delay(250);
tone(8,E,250);
digitalWrite(3,HIGH);
digitalWrite(4,HIGH);
digitalWrite(5,HIGH);
digitalWrite(6,HIGH);
digitalWrite(7,HIGH);
digitalWrite(9,HIGH);
digitalWrite(10,HIGH);
digitalWrite(11,HIGH);
digitalWrite(12,HIGH);
delay(250);
tone(8,D,500);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,LOW);
digitalWrite(12,LOW);
delay(500);
tone(8,G,500);
digitalWrite(3,HIGH);
digitalWrite(4,HIGH);
digitalWrite(5,HIGH);
digitalWrite(6,HIGH);
digitalWrite(7,HIGH);
digitalWrite(9,HIGH);
digitalWrite(10,HIGH);
digitalWrite(11,HIGH);
digitalWrite(12,HIGH);
delay(500);
tone(8,G,500);
digitalWrite(12,LOW);
delay(500);
tone(8,A,750);
digitalWrite(10,LOW);
digitalWrite(11,LOW);
delay(750);
tone(8,G,500);
digitalWrite(3,LOW);
digitalWrite(9,LOW);
delay(500);
tone(8,aF,250);
digitalWrite(4,LOW);
digitalWrite(7,LOW);
delay(250);
tone(8,G,250);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
delay(250);
tone(8,A,250);
digitalWrite(6,HIGH);
digitalWrite(5,HIGH);
delay(250);
tone(8,B,250);
digitalWrite(3,HIGH);
digitalWrite(4,HIGH);
digitalWrite(7,HIGH);
digitalWrite(9,HIGH);
digitalWrite(10,HIGH);
digitalWrite(11,HIGH);
digitalWrite(12,HIGH);
digitalWrite(13,HIGH);
delay(250);
tone(8,G,750);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,LOW);
digitalWrite(12,LOW);
digitalWrite(13,LOW);
delay(750);
}
}
void setup() {
pinMode(SW,INPUT);
for (byte i=0;i<total;i++){
pinMode(LEDs[i] , OUTPUT);//設定LED輸出
}
}
void loop() {
playAll1();
playAll2();
}
#define D 588
#define E 660
#define F 698
#define G 784
#define A 880
#define B 988
#define aF 740
#define aD 554
#define hC 1046
#define hD 1175
#define hE 1318
#define hF 1397
#define hG 1568
#define hA 1760
#define hB 1976
const byte SW=2;//觸碰開關
const byte LEDs[]={3,4,5,6,7,9,10,11,12,13}; //LED接腳
const byte total = sizeof(LEDs); //LED數量
byte index = 0;
void playAll1(){//小星星
for(int i=0;i<2;i++){
tone(8,C,250);
digitalWrite(3,HIGH);
delay(250);
tone(8,C,250);
digitalWrite(4,HIGH);
delay(250);
tone(8,G,250);
digitalWrite(5,HIGH);
delay(250);
tone(8,G,250);
digitalWrite(6,HIGH);
delay(250);
tone(8,A,250);
digitalWrite(7,HIGH);
delay(250);
tone(8,A,250);
digitalWrite(9,HIGH);
delay(250);
tone(8,G,500);
digitalWrite(10,HIGH);
digitalWrite(11,HIGH);
delay(500);
tone(8,F,250);
digitalWrite(12,HIGH);
delay(250);
tone(8,F,250);
digitalWrite(12,LOW);
delay(250);
tone(8,E,250);
digitalWrite(11,LOW);
digitalWrite(10,LOW);
delay(250);
tone(8,E,250);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
digitalWrite(9,LOW);
delay(250);
tone(8,D,500);
digitalWrite(3,HIGH);
digitalWrite(4,HIGH);
digitalWrite(5,HIGH);
digitalWrite(6,HIGH);
digitalWrite(7,HIGH);
digitalWrite(9,HIGH);
delay(250);
tone(8,D,250);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
digitalWrite(9,LOW);
delay(250);
tone(8,C,500);
digitalWrite(3,HIGH);
digitalWrite(4,HIGH);
digitalWrite(5,HIGH);
digitalWrite(6,HIGH);
digitalWrite(7,HIGH);
digitalWrite(9,HIGH);
digitalWrite(10,HIGH);
digitalWrite(11,HIGH);
digitalWrite(12,HIGH);
delay(500);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,LOW);
digitalWrite(12,LOW);
}
}
void playAll2(){//野玫瑰
for(int i=0;i<3;i++){
tone(8,E,500);
digitalWrite(12,HIGH);
delay(500);
tone(8,E,500);
digitalWrite(10,HIGH);
digitalWrite(11,HIGH);
delay(500);
tone(8,E,500);
digitalWrite(3,HIGH);
digitalWrite(9,HIGH);
delay(500);
tone(8,G,500);
digitalWrite(4,HIGH);
digitalWrite(7,HIGH);
delay(500);
tone(8,G,250);
digitalWrite(5,HIGH);
digitalWrite(6,HIGH);
delay(250);
tone(8,F,250);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,LOW);
digitalWrite(12,LOW);
delay(250);
tone(8,F,250);
digitalWrite(12,HIGH);
delay(250);
tone(8,E,250);
digitalWrite(11,HIGH);
delay(250);
tone(8,D,500);
digitalWrite(10,HIGH);
delay(500);
tone(8,D,500);
digitalWrite(9,HIGH);
delay(500);
tone(8,D,500);
digitalWrite(3,HIGH);
delay(500);
tone(8,E,500);
digitalWrite(7,HIGH);
delay(500);
tone(8,F,500);
digitalWrite(4,HIGH);
delay(500);
tone(8,G,1000);
digitalWrite(6,HIGH);
delay(1000);
tone(8,hC,1000);
digitalWrite(5,HIGH);
delay(1000);
tone(8,E,500);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,LOW);
digitalWrite(12,LOW);
delay(500);
tone(8,E,500);
digitalWrite(5,HIGH);
digitalWrite(6,HIGH);
delay(500);
tone(8,E,500);
digitalWrite(4,HIGH);
digitalWrite(7,HIGH);
delay(500);
tone(8,G,500);
digitalWrite(3,HIGH);
digitalWrite(9,HIGH);
delay(500);
tone(8,G,250);
digitalWrite(10,HIGH);
digitalWrite(11,HIGH);
delay(250);
tone(8,F,250);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,LOW);
digitalWrite(12,HIGH);
delay(250);
tone(8,F,250);
digitalWrite(12,LOW);
delay(250);
tone(8,E,250);
digitalWrite(3,HIGH);
digitalWrite(4,HIGH);
digitalWrite(5,HIGH);
digitalWrite(6,HIGH);
digitalWrite(7,HIGH);
digitalWrite(9,HIGH);
digitalWrite(10,HIGH);
digitalWrite(11,HIGH);
digitalWrite(12,HIGH);
delay(250);
tone(8,D,500);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,LOW);
digitalWrite(12,LOW);
delay(500);
tone(8,G,500);
digitalWrite(3,HIGH);
digitalWrite(4,HIGH);
digitalWrite(5,HIGH);
digitalWrite(6,HIGH);
digitalWrite(7,HIGH);
digitalWrite(9,HIGH);
digitalWrite(10,HIGH);
digitalWrite(11,HIGH);
digitalWrite(12,HIGH);
delay(500);
tone(8,G,500);
digitalWrite(12,LOW);
delay(500);
tone(8,A,750);
digitalWrite(10,LOW);
digitalWrite(11,LOW);
delay(750);
tone(8,G,500);
digitalWrite(3,LOW);
digitalWrite(9,LOW);
delay(500);
tone(8,aF,250);
digitalWrite(4,LOW);
digitalWrite(7,LOW);
delay(250);
tone(8,G,250);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
delay(250);
tone(8,A,250);
digitalWrite(6,HIGH);
digitalWrite(5,HIGH);
delay(250);
tone(8,B,250);
digitalWrite(3,HIGH);
digitalWrite(4,HIGH);
digitalWrite(7,HIGH);
digitalWrite(9,HIGH);
digitalWrite(10,HIGH);
digitalWrite(11,HIGH);
digitalWrite(12,HIGH);
digitalWrite(13,HIGH);
delay(250);
tone(8,G,750);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,LOW);
digitalWrite(12,LOW);
digitalWrite(13,LOW);
delay(750);
}
}
void setup() {
pinMode(SW,INPUT);
for (byte i=0;i<total;i++){
pinMode(LEDs[i] , OUTPUT);//設定LED輸出
}
}
void loop() {
playAll1();
playAll2();
}






沒有留言:
張貼留言