Tinkercad Projekt 2 - Klavier

Spirit Fingers!

Jeder Taster stellt den Summer auf eine andere Frequenz um, wodurch ein anderer Ton entsteht.

Schwierigkeitsgrad: einfach

Dieses Projekt benutzt einen Summer (englisch: Buzzer). Ein Summer ist ein elektrisches Bauteil, mit dem Töne erzeugt werden können (ähnlich einem Lautsprecher).
Abbildung 1- Piezo Summer

Starte die Simulation und probiere es aus (Die Tonerzeugung im Internet-Browser ist allerdings nicht sonderlich prickelnd. Das würde in der Realität besser klingen):


Für dieses Projekt musst du folgendes können:
Um aus dem Summer Töne heraus zu bekommen, muss er in Schwingung versetzt werden. Diese Schwingung erzeugt dann Schallwellen, die unsere Ohren wahrnehmen können. Um eine Schwingung zu erzeugen, benötigen wir ein elektrisches Wechselsignal. Glücklicherweise kann der Arduino so eins erzeugen: Ein Rechtecksignal. Das schnelle ein- und ausschalten sollte den Summer in Schwingung versetzen. Das PWM-Rechtecksignal des Arduinos wechselt mehrere Tausend mal pro Sekunde zwischen  HIGH und LOW. Das ist eine Frequenz von einigen Tausend Hz (Kilohertz), also ein hohes Piepen. Durch das Rechtecksignal klingt das Piepen recht schrill und unangenehm. Ein sinusförmiges Signal wäre wesentlich schöner für die Ohren.

Probiere mal aus auf ein sinusförmiges Signal umzustellen (Auf Sinus-Symbol klicken):


Bisher hast du analogWrite() verwendet, um das Tastverhältnis des PWM-Signals zu verändern. Die Frequenz des Signals blieb dabei allerdings immer gleich und somit auch die Tonhöhe. Um die Tonhöhe zu verändern, bietet Arduino einen Befehl, mit dem die Frequenz des PWM-Signals verändert werden kann:

tone(pin, frequenz); // in Hertz

In der Demo oben, verstelle die Frequenz (oberster Drehknopf) und beobachte die Signalform im Oszilloskop. Das ist was tone() auch macht.

Schau dir den Befehl mal in der Arduino-Referenz an:
https://www.arduino.cc/reference/de/language/functions/advanced-io/tone/

Um den Ton wieder auszuschalten, gibt es den Befehl:

noTone(pin);

Schau dir den Befehl mal in der Arduino-Referenz an:
https://www.arduino.cc/reference/de/language/functions/advanced-io/notone/

Das Programm muss also je nach gedrücktem Taster eine andere Frequenz einstellen und, wenn kein Taster gedrückt ist, den Ton wieder abstellen.

Der Demo-Entwurf spielt die C-Dur-Tonleiter (beginnend mit C4).

Vielleicht bist du ja ein Musik-Connoisseur und hast eine Lieblingstonleiter. Auf Wikipedia findest du die Frequenzen zu den Tönen:
https://de.wikipedia.org/wiki/Frequenzen_der_gleichstufigen_Stimmung

Falls du die Schaltung nicht selbst aufbauen willst, hier der Starter:
Starter: https://www.tinkercad.com/things/8OUsH8ltCUU-projekt-2-digitales-kavier-starter

Lösungsvorschlag: https://www.tinkercad.com/things/k1mfd7ibaaG-projekt-2-digitales-kavier

Kommentare

Beliebte Posts aus diesem Blog

Tinkercad Übung 6 - LED mit Taster ansteuern

Tinkercad Übung 11 - LED dimmen

Tinkercad Übung 15 - Ultraschallsensor auslesen