2020年11月23日 星期一

week 11

 今天除了展示期中作品,拿到了新的電腦--MAKER UNO!!

一開始就創造了音樂,太好玩啦~~


#define G4 392

#define A 440

#define B 493


#define C 523

#define D 587

#define E 659

#define F 698

#define G 783


#define BUTTON 2

#define BUZZER 8


int melody[] = {

  C,D,E,C,G,E,D,G,D,C,A,E,C,B,0,C,B,A,B,C,D,G4,C,D,E,F,F,E,D,C,D,0,C,D,E,C,G,E,D,G,D,C,A,E,C,B,0,C,B,A,B,C,D,G4,C,D,E,F,F,E,D,C,C

};


int noteDurations[] = {

  6,6,

  6,6,2,6,

  3,3,3,

  6,6,2,6,

  2,6,6,6,

  3,3,6,6,

  3,3,6,6,

  3,6,6,6,6,

  2,6,6,6,

  6,6,2,6,

  3,3,3,

  6,6,2,6,

  2,6,6,6,

  3,3,6,6,

  3,3,6,6,

  3,6,6,6,6,

  1

};


int pin;

int ledArrayHigh;

int ledArrayLow;

boolean mode = false;

boolean buttonPressed = false;


void setup()

{

  delay(1000);

  

  pinMode(BUTTON, INPUT_PULLUP);

  for (pin = 3; pin < 14; pin++) { 

    pinMode(pin, OUTPUT);

  }


  for (int thisNote = 0; thisNote < sizeof(melody)/2; thisNote++) {

    int noteDuration = 1000 / noteDurations[thisNote];

    tone(BUZZER, melody[thisNote], noteDuration);

    int pauseBetweenNotes = noteDuration * 1.30;


    for (pin = 3; pin < 14; pin++) { 

      int n=random(2);

    if(n==1)digitalWrite(pin, HIGH);

    else digitalWrite(pin, LOW);

  }

    delay(pauseBetweenNotes);

    noTone(BUZZER);

  }

}


void loop()

{

  for (pin = 0; pin < 5; pin++) {

    if (digitalRead(BUTTON) == LOW &&

        buttonPressed == false) {

      buttonPressed = true;

      mode = !mode;

      pin = 0;

      if (mode == false) {

        tone(BUZZER, C, 100);

        delay(100);

        tone(BUZZER, G, 100);

        delay(100);

        noTone(BUZZER);

      }

      else if (mode == true) {

        tone(BUZZER, G, 100);

        delay(100);

        tone(BUZZER, C, 100);

        delay(100);

        noTone(BUZZER);

      }

    }


    if (mode == false) {

      ledArrayHigh = 13 - pin;

      ledArrayLow = 7 - pin;

    }

    else if (mode == true) {

      ledArrayHigh = 9 + pin;

      ledArrayLow = 3 + pin;

    }

    digitalWrite(ledArrayHigh, HIGH);

    digitalWrite(ledArrayLow, HIGH);

    delay(100);

    digitalWrite(ledArrayHigh, LOW);

    digitalWrite(ledArrayLow, LOW);

    if (pin == 4) delay(100);

  }


  if (buttonPressed == true) {

    buttonPressed = false;

  }

}

沒有留言:

張貼留言