Hallo allerseits,
vorneweg, Melodieklingeln gibt es sicherlich unzählige. Trotzdem macht es Spaß so was mal selber zu programmieren und zu bauen.
Das Programm läuft auf einen UNO (Danke an Tommy für die Hinweise zur Speicherproblematik). Um die Klangfarbe etwas variieren zu können, habe ich einen 1 / 16 Teiler (74LS93) an den Ausgang geschaltet und mische die einzelnen Ausgänge. Da kann man, durch Veränderung der Widerstände und Kondensatoren, die Klangfarbe etwas verändern.
Die Schaltung sieht so aus:
R2, R3, R4 und R5 haben 1 KOhm; R1 500 Ohm; C1 1000 nF.
Die Werte kann man beliebig verändern (aber nicht die Ausgänge überlasten) und so die Klangfarbe verändern.
Man kann das aber auch weg lassen, dann muss man aber im Deklarationsteil
int okt = 16; auf int okt = 1; ändern.
Die Notenlänge wurde so gewählt, dass sich 120 Noten in der Minute bezogen auf eine ¼ Note ergeben.
Mit const float tempo =1.0; kann die Geschwindigkeit aller Lieder verändert werden.
Da einige Lieder aber mit einen anderen Tempo gespielt werden müssen, steht vor jedem Lied eine Tempoangabe. Dabei entspricht ein 10 wieder 120 Noten. Eine Verkleinerung erhöht das Tempo, ein größerer Wert verringert es.
Es können 4 verschiedene Blöcke abgespielt werden. Die Auswahl erfolgt über Schalter 1 und 2. Alle Schalter offen Melodien in Richtung Sommer, S1 geschlossen Winter, S2 geschlossen Frühling und beide geschlossen Herbst.
Die Programmierung der Lieder ist im Programm beschrieben. Da auf die Halbtöne mit enthalten sing, können Lieder in verschiedenen Tonarten programmiert werden. Da ich nicht sehr viel Ahnung von Noten habe, besteht auch die Möglichkeit, dass da mal ein falscher Ton dazwischen ist.
Das Programm liegt wieder in meinem Webspace.
M.f.G.
Hans-Ulrich

