電子琴










const int speaker = 13;  // 喇叭輸出腳位

const int sw[8] = {4, 5, 6, 7, 8, 9, 10, 11};  // 按鈕腳位

const int frequency[8] = {523, 587, 659, 694, 784, 880, 988, 1046};  // 音階頻率


void setup() {

  for (int i = 0; i < 8; i++) {

    pinMode(sw[i], INPUT_PULLUP);  // 啟用內建上拉電阻

  }

}


void loop() {

  bool isPressed = false;


  for (int i = 0; i < 8; i++) {

    if (digitalRead(sw[i]) == LOW) {  // 按鈕被按下(LOW)

      tone(speaker, frequency[i]);    // 播放對應音階

      isPressed = true;

      break;  // 只播放一個音階

    }

  }


  if (!isPressed) {

    noTone(speaker);  // 沒有按任何鍵就停止聲音

  }

}



留言