2020年1月2日 星期四

Week17

期末作品

目的:

利用所學會的程式基礎及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();
}

圖片:




沒有留言:

張貼留言

alanhc 互動技術-week17 [final]

回顧這學期的作品:  期中作業:LANDING:PLANET 賣點&特點: 炫麗的特效 物理(星球重力及降落)及粒子系統(噴射) 世界地圖可根據視角縮放 困難點: 重寫3次最終改寫成物件導向的CLASS寫法...