ebps.de.vu > Schaltungen > AVR > Melodie-Spieler

Melodie-Spieler

Beschreibung

Wer kennt nicht die allerorts anzutreffenden "elektronischen Grußkarten", die beim Aufklappen eine Melodie abspielen? Genau diese Funktion hat auch diese Schaltung, mit dem Vorteil, dass man sich die Melodie selber aussuchen kann. Genau wie die Fertig-Variante auch ist diese Schaltung auf Einfachheit ausgelegt - mehr als einen ATTiny11, 2 Mini-Knopfzellen oder eine Lithium-Knopfzelle und natürlich den Piezo-Schallgeber braucht man nicht.

Aufbau

In der einfachsten Version besteht die Schaltung nur aus 3 Teilen - AVR, Batterie und Piezo-Schallgeber. Mit einem elektromagnetischen Mini-Lautsprecher funktioniert es zwar auch, aber die Schaltung braucht dann wesentlich mehr Strom und ob die Portpins die hohe Belastung auf Dauer vertragen ist auch fraglich. Als Spannungsversorgung kommt alles zwischen 3 V und 5 V in Frage, nur schwanken sollte es möglichst wenig, da die Frequenz des internen Oszillators des Tiny11 extrem spannungsabhängig ist (ca. 350 kHz bei 3 V, ca. 1,1 MHz bei 5 V). Aus diesem Grunde muss die verwendete Spannung auch im Programm eingestellt werden, bevor es verwendet werden kann. Für schwankende Spannungen gibt es die Möglichkeit, den AVR mit einem externen 1 MHz-Quarz zu betreiben, auch für diese Option gibt es eine Einstellmöglichkeit in der Software.

Zum Starten der Melodie kommt ein einfacher Taster zum Einsatz. Sobald er gedrückt wird, wird die Melodie komplett abgespielt, auch wenn der Taster vorzeitig losgelassen wird. Ist der Taster dann immer noch (oder schon wieder) geschlossen, so fängt die Melodie von vorne an. Für ein dauerhaftes Abspielen kann man den Taster also auch einfach weglassen und durch eine Drahtbrücke ersetzen.

Programmierung

Für die Melodie stehen drei Oktaven bereit, angefangen mit c1 (Ton C der niedrigsten Oktave) bis b3 (Ton H, im englischen "B", der höchsten Oktave). Die Halbtöne stehen der Einfachheit halber nur als erhöhte Version (cis, dis, fis, gis, ais) und nicht als erniedrigte Version (des, es, ges, as, deutsches b) zur Verfügung. Am Ende der Melodie sollte eine etwas längere Pause eingefügt werden, damit vor einer eventuellen Wiederholung der Melodie kurz gewartet wird. Die ".db"-Zeilen müssen nicht unbedingt eine gerade Anzahl Bytes enthalten, das andernfalls vom Assembler angefügte Nullbyte wird von der Software ignoriert.

Die Notenlänge wird durch "L|x" angegeben, wobei x die Länge der Note in Sechzehntelnoten ist (für eine halbe Note ist also x = 8). Pausen werden mit dem Buchstaben "P" erzeugt und sind so lang wie die vorher eingestellte Notenlänge. Außerdem kann man noch die Artikulation festlegen, dazu gibt man vor der entsprechenden Notenfolge NORMAL, STACCATO oder LEGATO an. Werden am Anfang der Melodie keine Festlegungen gemacht, werden Viertelnoten mit normaler Artikulation gespielt. Einmal eingestellte Notenlängen und Artikulationen bleiben so lange gültig, bis eine andere Einstellung erfolgt oder das Ende der Melodie erreicht wird.
Am Ende der Melodie muss ein "END" eingefügt werden.

Neben der Melodie selbst muss auch noch ein Wert für die Abspielgeschwindigkeit (SPEED) festgelegt werden, typische Werte liegen zwischen 4 (sehr schnell) und 16 (gemächlich). Bevor Sie eigene Melodien programmieren, sollten Sie sich einmal die im Programm enthaltenen Beispiele ansehen (und anhören), viele Unklarheiten sollten dadurch beseitigt werden.

Fotos

[Foto]
640
Mein kompakter Testaufbau mit gesockeltem ATTiny11, 3 V-Lithiumknopfzelle im Batteriehalter und "Start"-Taster
[Foto]
640
Auf der Unterseite der Platine befindet sich ein irgendwo ausgeschlachteter Mini-Piezo-Schallgeber