| #define NOTE_C5 523 |
| #define NOTE_E5 659 |
| #define NOTE_G5 784 |
| #define BUTTON 2 |
| #define BUZZER 8 |
| int melody[] = { |
| NOTE_E5, NOTE_E5, 0, NOTE_E5, 0, NOTE_C5, NOTE_E5, 0, NOTE_G5 |
| }; |
| int noteDurations[] = { |
| 10, 10, 10, 10, 10, 10, 10, 10, 10 |
| }; |
| 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 < 9; thisNote++) { |
| int noteDuration = 1000 / noteDurations[thisNote]; |
| tone(BUZZER, melody[thisNote], noteDuration); |
| int pauseBetweenNotes = noteDuration * 1.30; |
| 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, NOTE_C5, 100); |
| delay(100); |
| tone(BUZZER, NOTE_G5, 100); |
| delay(100); |
| noTone(BUZZER); |
| } |
| else if (mode == true) { |
| tone(BUZZER, NOTE_G5, 100); |
| delay(100); |
| tone(BUZZER, NOTE_C5, 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; |
| } |
| } 試著從新理解的程式碼 #define Do 523 #define re 587 #define mi 659 #define fa 698 #define so 784 int melody[] = {Do,re,mi,Do, Do,re,mi,Do, mi,fa,so}; //控制發出甚麼聲音 void setup() { delay(1000); //讓程式碼先跑一秒,再發出聲音 pinMode(8,OUTPUT); //讓L8的LED輸出 for (int i=0;i<11;i++) { tone(8,melody[i],100); //發出聲音,100是為了控制音的長短,並且讓聲音停止 delay(130); //控制每個音之間的間隔 } } void loop() { } |
2020年11月23日 星期一
week11
這個禮拜做maker uno,這是原始碼
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言