Menu
CoddyTech

Eine Melodie aus zwei Arrays

Teil des Abschnitts Ausgaben der Arduino-Journey von Coddy. Lektion 14 von 24.

Die Noten einer Melodie sind nicht alle gleich lang. Ein zweites Array kann die Dauerangaben enthalten, passend zu den Noten: notes[i] und durations[i] gehören zusammen.

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

Zwei gleiche Noten hintereinander würden zu einer langen Note verschwimmen. Eine kurze Pause nach jeder Note hält sie voneinander getrennt. Spiele die Note also für ihre Dauer und warte ein wenig länger:

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

Die Dauer beendet die Note, und die zusätzlichen 50 ms sind die Pause vor der nächsten Note.

Wenn der Index über die letzte Note hinausgeht, ist die Melodie zu Ende: Warte einen Moment, bevor du sie erneut startest, damit sie nicht in sich selbst übergeht.

challenge icon

Aufgabe

Mittel

Spiele die erste Zeile von Twinkle Twinkle Little Star auf Pin 8:

  • Noten: 262, 262, 392, 392, 440, 440, 392
  • Dauern: jeweils 400 ms und 800 ms für die letzte Note
  • Warte nach jeder Note ihre Dauer plus 50 ms
  • Warte nach der letzten Note eine weitere Sekunde und starte erneut

Drücke Run und dann Check.

Probier es selbst

const int buzzerPin = 8;
// Lege hier die Arrays für Noten und Dauern sowie den Index an

void setup() {
}

void loop() {
  // Spiele eine Note, warte ihre Dauer plus 50 ms und gehe zur nächsten über
  // Warte nach der letzten Note eine Sekunde und beginne von vorn
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Ausgaben

Übe selbstständig: Arduino-Playground