Menu
CoddyTech

두 배열로 멜로디 만들기

Coddy Arduino 여정의 출력 섹션에 포함된 레슨. 24개 중 14번째.

곡의 음표가 모두 같은 길이인 것은 아닙니다. 두 번째 배열에 음표와 짝을 맞춘 지속 시간을 저장할 수 있습니다. notes[i]와 durations[i]는 서로 한 쌍입니다.

int notes[] = {262, 262, 392, 392, 440, 440, 392};
int durations[] = {400, 400, 400, 400, 400, 400, 800};

같은 음표가 연달아 두 번 나오면 하나의 긴 음처럼 이어져 들립니다. 각 음표 뒤에 짧은 무음을 넣으면 서로 구분되므로, 음표를 지속 시간만큼 재생한 다음 조금 더 기다립니다.

tone(8, notes[i], durations[i]);
delay(durations[i] + 50);

지속 시간이 음표를 멈추게 하고, 추가된 50 ms는 다음 음표가 나오기 전의 간격입니다.

인덱스가 마지막 음표를 지나면 멜로디가 끝납니다. 다시 시작하기 전에 잠시 기다리면 멜로디가 자기 자신과 겹치지 않습니다.

challenge icon

챌린지

중급

핀 8에서 작은 별의 첫 번째 구절을 연주하세요:

  • 음표: 262, 262, 392, 392, 440, 440, 392
  • 지속 시간: 각각 400 ms, 마지막 음표는 800 ms
  • 각 음표가 끝난 후, 해당 지속 시간에 50 ms를 더해 기다리세요
  • 마지막 음표가 끝난 후, 1초 더 기다린 다음 다시 시작하세요

실행을 누른 다음 확인을 누르세요.

직접 해보기

const int buzzerPin = 8;
// 여기에 notes와 durations 배열, 그리고 index를 만드세요

void setup() {
}

void loop() {
  // 음 하나를 재생하고 그 음의 길이에 50 ms를 더한 만큼 기다린 뒤 다음 음으로 넘어가세요
  // 마지막 음이 끝나면 1초 기다렸다가 다시 시작하세요
}
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

출력의 모든 레슨

직접 연습해 보세요: Arduino 플레이그라운드