ThereminoKurs

Grundlagen 5 - Ton erzeugen 🎶

In diesem Kapitel lernst Du, wie man mit einem Piezo-Summer einen Ton spielen kann.

Wir hören einen Ton, wenn eine Schallwelle auf das Trommelfell in unseren Ohren trifft. Diese Schallwelle hat eine bestimmte Amplitude. Die Amplitude gibt die Höhe bzw. Tiefe der Wellenberge bzw. Wellentäler an und hängt mit der Lautsärke des Tons zusammen.

Ton-Wellenfunktionen sind außerdem periodische Funktionen. Das heißt, dass ein bestimmter Funktionswert in gleichbleibenden Abständen wieder auftaucht. Die sinus-Funktion hat zum Beispiel die Periode 2·π, weil sin(0) = sin(0 + 2π) = sin(0 + 4π) ist. Die Periodendauer T gibt an, wie viel Zeit das Durchlaufen einer Periode in Anspruch nimmt.

Einer Schallwelle kann man außerdem eine Frequenz f zuordnen. Diese gibt an, wie viele Perioden pro Sekunde durchlaufen werden und lässt sich wie folgt berechnen: f = 1/T. Die Frequenz hängt mit der Tonhöhe zusammen, also zum Beispiel damit, ob wir ein C oder ein D hören. Die Einheit der Frequenz ist Hertz, was mit Hz abgekürzt wird, und so viel wie pro Sekunde bedeutet.

Um Töne abzuspielen, nutzen wir einen Piezo-Summer. In diesem ist ein Piezo-Kristall verbaut. Der Piezo-Kristall dehnt sich aus, wenn wir eine Spannung anlegen, und kehrt in seinen ursprünglichen Zustand zurück, wenn wir die Spannung wieder wegnehmen. Um nun einen Ton einer bestimmten Frequenz zu erzeugen, schalten wir die Spannung in einem bestimmten Takt ein und wieder aus. Das darfst Du nun einmal selbst ausprobieren.

Sinus und Rechteck-Funktion


🛠️ Aufgabe: Kammerton A erzeugen

Der Kammerton A ist der Ton, der von einem Orchester zu Beginn eines Konzerts von allen Instrumenten zum Einstimmen gespielt wird. Er liegt ungefähr bei 440 Hz.
  1. Schaltung: Beim Piezo-Summer handelt es sich um ein ungerichtetes Bauteil, d. h. es ist egal, wie herum Du ihn anschließt. Ein Anschluss an einen digitalen Pin, der andere an GND. Baue die Schaltung auf.
  2. Vorüberlegung: Wir wollen einen Ton mit der Frequenz f = 440 Hz abspielen. Dazu legst Du für eine Zeit t eine Spannung an und schaltest sie anschließend für die Zeit t wieder aus. Wie groß ist t?
    💡 Hinweise anzeigen

    • Welche Phase entsteht, wenn die Spannung anliegt (Wellenberg)?
    • Welche Phase entsteht, wenn die Spannung aus ist (Wellental)?
    • Welche Bedeutung hat die Zeit 2·t – welcher Größe entspricht sie?

    💡 Lösung anzeigen

    „An“ entspricht dem Wellenberg, „Aus“ dem Wellental. Ein Wellenberg plus Wellental ergeben eine Periode T. Da f = 1/T, gilt T = 1/f und damit t = T/2 = 1/(2·f). Für 440 Hz: t ≈ 1136 µs.

  3. Code schreiben: Erstelle ein Programm, das den Kammerton A erzeugt.
    • Lege eine Variable (z. B. unsigned int) für t in Mikrosekunden an.
    • Setze den Piezo-Pin auf OUTPUT.
    • Schalte den Pin abwechselnd HIGH und LOW.
    • Nutze delayMicroseconds(t) (nicht delay()), da wir im µs-Bereich sind.

🛠️ Aufgabe: Überprüfung des Klangs

Tatsächlich ist in der Arduino IDE bereits eine Funktion hinterlegt, die genau das macht, was Du gerade selbst geschrieben hast. Das ist die sogenannte tone()-Funktion.

// Spielt den Ton mit der Frequenz 440 Hz
// auf dem an digitalen Pin 3 angeschlossenen Piezo-Summer
tone(3, 440);
  
Schreibe nun Dein Programm aus der vorherigen Aufgabe so um, dass Du anstelle des An- und Ausmachens des digitalen Pins die tone()-Funktion nutzt, um den Kammerton a zu erzeugen. Hört sich beides gleich an oder hörst Du einen Unterschied?

Schaltplan

Schaltplan