Jukebox mit Klingeltönen



Seite als PDF

RTTTL Klingeltöne

RTTTL (Ring Tone Text Trans­fer Lan­guage) sind Klin­gel­tö­ne, die ursprüng­lich von Nokia für ihre Mobil­te­le­fo­ne ent­wi­ckelt wur­den. Ein Klin­gel­ton muss drei Bestand­tei­le haben:

  • den Namen des Klin­gel­tons
  • die Stan­dard­vor­ga­ben: die Dau­er der Noten und die ver­wen­de­te Okta­ve
  • die durch Kom­ma­ta getrenn­ten Noten (inter­na­tio­na­le Noten­be­zeich­nung c, d, e, f, g, a, b) alle Tei­le sind durch einen Dop­pel­punkt getrennt

Bei­spiel Te Deum:

TeDeum:d=4,o=5,b=63:8c,8f,16f,16g,8a

d=4: Stan­dard­no­ten­län­ge Vier­tel­no­te

o=5: Anga­be der Okta­ve

b=63: Abspiel­ge­schwin­dig­keit 63 Schlä­ge pro Minu­te

8c: Note C als Ach­tel­no­te gespielt

Klin­gel­tö­ne zum Down­load bei 🔗PICAXE

Jukebox im Seriellen Monitor

Das Pro­gramm ver­wen­det im ers­ten Schritt den Seri­el­len Moni­tor um ver­schie­de­ne Melo­dien abzu­spie­len.

So sieht es aus:

Verwendete Hardware

Der Laut­spre­cher wird mit dem Signal­pin (gel­bes Kabel) an den Pin 7 des Ardui­nos ange­schlos­sen, das schwar­ze Kabel führt zu GND am Ardui­no. Der Wider­stand dient nur dazu die Laut­stär­ke zu redu­zie­ren.

Benötigte Bibliothek installieren

Kli­cke auf das Sym­bol Biblio­thek und suche im nächs­ten Dia­log nach der Biblio­thek PlayRt­t­tl.

Definition der Variablen und Einbinden der Bibliothek

Die Klin­gel­tö­ne müs­sen für den Befehl zum Abspie­len als char-Array defi­niert wer­den. Die ecki­gen Klam­mern zei­gen, dass es sich um ein Array han­delt.

Titel und Inter­pret sol­len aus dem Array extra­hiert wer­den. Der ers­te Dop­pel­punkt mar­kiert den Beginn der Noten.
Der / dient als Tren­nung zwi­schen Inter­pret und Titel.

Leer­zei­chen sind in Varia­blen nicht erlaubt.
Bei Titel, die ein Leer­zei­chen ent­hal­ten, wird es zunächst mit einem Unter­strich „mas­kiert“. Der Unter­strich wird spä­ter durch ein Leer­zei­chen ersetzt.

Der setup-Teil

Hier wird der Seri­el­le Moni­tor gestar­tet und das Menü ange­zeigt.

Der loop-Teil

Erläu­te­run­gen der Anwei­sun­gen:

Die nächs­ten Anwei­sun­gen wer­den nur dann aus­ge­führt, wenn im Seri­el­len Moni­tor etwas ein­ge­ge­ben wird

Vom Seri­el­len Moni­tor wird ein Zei­chen gele­sen

Wenn 1 ein­ge­ge­ben wur­de, wer­den die Anwei­sun­gen in den geschweif­ten Klam­mern aus­ge­führt

Ent­spre­chen­de Anwei­sun­gen gel­ten für die übri­gen Zif­fern

Für die „Wei­ter­ver­ar­bei­tung“ muss das char-Array in einen String umge­wan­delt wer­den

Auf­ruf der Funk­ti­on Zei­ge­ti­tel (Erläu­te­rung im nächs­ten Abschnitt)

Alter­na­tiv:

Titel auf dem Pin des Laut­spre­chers abspie­len

Die Funktion ZeigeTitel

Der loop-Teil ruft die Funk­ti­on Zei­ge­Ti­tel auf. Der String Titel­song muss jetzt nach Namen des Inter­pre­ten und Namen des Titels getrennt wer­den.

⇒Funk­tio­nen

Nach dem ers­ten Dop­pel­punkt suchen (indexOf) und mit sub­string den ers­ten Teil vom ers­ten Buch­sta­ben (0) bis zum : extra­hie­ren

Alle _ durch Leer­zei­chen erset­zen

Die Buch­sta­ben im String Titel­Song von 0 bis zum / ent­hal­ten den Inter­pre­ten

Der zwei­te Teil des Strings Titel­Song ent­hält den Titel. Er beginnt mit dem Zei­chen hin­ter dem / (+1) und endet mit der Län­ge des Strings (length)

Jukebox mit Tastenpad und LCD

Die Tas­ten eines Tas­ten­pads sol­len jetzt die Titel aus­wäh­len.

So sieht es aus:

Benötigte Bauteile:

  • Laut­spre­cher
  • Tas­ten­pad
  • 4-zei­li­ges LCD mit I²C-Schnitt­stel­le
  • Lei­tungs­dräh­te

Der Schaltplan

(Fah­re mit der Maus über das Bild, um die Bezeich­nun­gen der Bau­tei­le zu sehen)

Zusätzlich benötigte Bibliothek installieren

Kli­cke auf das Sym­bol Biblio­thek und suche im nächs­ten Dia­log nach der Biblio­thek Liquid­Crys­tal I2C.

Definition der Variablen und Einbinden der Bibliotheken

Der setup-Teil

Im set­up-Teil wird das LCD gestar­tet.

Der loop-Teil

Das gedrück­te Tas­te des Tas­ten­pads wird mit ana­logRead am Ein­gang A0 abge­fragt:

int Ana­log­wert = analogRead(A0);

Die Ana­lo­gen Ein­gän­ge lie­fern Wer­te zwi­schen 0 und 1023. Je nach gedrück­ter Tas­te erge­ben sich die­se Wer­te:

Eine switch case Abfra­ge weist je nach Wert die ent­spre­chen­de Akti­on zu.

Bei­spiel Abfra­ge der lin­ken Tas­te:

case 0 … 20 fragt den Wer­te­be­reich zwi­schen 0 und 20 ab. Die übri­gen Wer­te­be­rei­che wer­den ent­spre­chend zuge­wie­sen.

Beach­te das Leer­zei­chen vor und hin­ter den drei Punk­ten!

Der voll­stän­di­ge loop-Teil:

Die Funktion ZeigeTitel

Die Funk­ti­on Zei­ge­Ti­tel zeigt Inter­pret und Titel auf dem LCD an.


Seite als PDF

Ähnliche Projekte:


Letzte Aktualisierung: Feb. 9, 2026 @ 13:37

Inhalt