Menu
CoddyTech

Tonhöhe mit einem Drehknopf einstellen

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

Ein Drehknopf kann den Summer wie ein Instrument spielen lassen. Die Idee ist dieselbe wie beim Dimmer: den Drehknopf auslesen, den Messwert umwandeln und ihn verwenden.

Diesmal ist der Zielbereich eine Frequenz. 200 Hz ist ein tiefes Brummen und 2000 Hz ein hoher Pfeifton, also:

int reading = analogRead(A0);
int pitch = map(reading, 0, 1023, 200, 2000);
tone(8, pitch);

map() muss den neuen Bereich nicht bei 0 beginnen lassen: 0 wird zu 200, 1023 wird zu 2000, und die Mitte des Drehknopfs liegt ungefähr bei 1100.

Wenn du tone() erneut mit einer neuen Frequenz aufrufst, ändert sich der Ton sofort, sodass die Tonhöhe dem Drehknopf folgt, während du ihn drehst. Ein kurzes delay(10) verhindert, dass der Sketch den Ton tausende Male pro Sekunde neu startet.

challenge icon

Aufgabe

Einfach

Der Drehknopf ist an A0 und der Summer an Pin 8 angeschlossen. Lass den Drehknopf die Tonhöhe einstellen:

  • lies den Drehknopf aus
  • wandle den Messwert mit map() in eine Frequenz von 200 bis 2000 Hz um
  • spiele sie mit tone() ab und warte dann 10 ms

Drücke Run und drehe den Drehknopf, dann Check.

Probier es selbst

const int knobPin = A0;
const int buzzerPin = 8;

void setup() {
}

void loop() {
  // Den Drehknopf auslesen, den Wert auf 200..2000 Hz abbilden und den entsprechenden Ton abspielen
}
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