mikrocontroller.net

Forum: Projekte & Code Klingel mit 100 Melodien - last minute Weihnachtsgeschenk


Autor: egberto (Gast)
Datum:
Angehängte Dateien:

Bewertung
2 lesenswert
nicht lesenswert
Anbei meine Türklingel als Einsteigerprojekt mit minimalem 
Hardwareaufwand (ATTINY45, Batterie, PC-Lautsprecher, Kleinkram).

Viel Spaß beim Nachbauen!

egberto

Autor: Michael S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo egberto,

gestern Abend habe ich dein Projekt mal nachgebaut.
Mit einem tiny85.

Leider wollte sich das eeprom-file nicht laden lassen (der Inhalt des 
Eeproms stimmt nach dem Laden nicht mit dem der Datei überein).
Die Ursache ist mir im Moment nicht bekannt.

Ich habe dann kurzerhand den Inhalt des eeproms in den pgm_space 
verbannt - und so läuft das Teil.

Michael S.

Autor: egberto (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast du das EEPROM File aus dem zip genommen oder selbst compiliert?

Da das EEPROM des attiny85 ja doppelt so groß ist wie das des Tiny45 
liegt es ja eventuell daran (mal versucht als Devicetyp tiny45 trotz des 
Tiny85 einzustellen?)

Frohes Fest

egberto

Autor: Michael S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo egberto,

ich habe unter der aktuellen avr-gcc das Projekt neu kompiliert.
Es gelingt mir aber nicht, mit avrdude das eep-file zu auf den tiny85 zu 
übertragen (es ist unvollständig und die Daten passen nicht zueinander).
Ich arbeite allerdings auch zum ersten Mal mit dem tiny85.
Zunächst habe ich avrdude im Verdacht ..
Allerdings könnte ich auch selbst einen Fehler machen ..

Übrigens hatte ich im letzten Jahr an ähnlicher Übung herumgebastelt.
Wie üblich aber nicht zu einem Ende gebracht.
Aber dabei hatte ich auch einige "Musik"-Samples gesammelt.
Vielleicht kann ich die ja auf dein "Format" übertragen.

Nun wirklich ein frohes Fest.

Michael S.

Autor: egberto (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich kenne deinen Programmer + avrdude nicht -> wenn das Programm anläuft 
wird sofort im EEPROM ein neuer SEED geschrieben (also eine Zelle 
verändert), falls also die Software die Resetleitung nach dem Brennen 
und vor dem Kontrollesen kurz wieder frei gibt, sind EEPROM Inhalt und 
eep file an einer Stelle verschieden-> das kann man getrost ignorieren.

Frohes Restfest

Autor: Michael S. (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo egberto,

deine "Klingel" ist eigentlich zu schade, um sie nur als Klingel und per
Zufallsauswahl zu betreiben.
Daher habe ich ihr einen USI/TWI-Slave zur Seite gestellt.
Nun lassen sich gezielt via TWI die Melodien abrufen.

Das Array der Noten habe ich so umgeordnet, dass jedes Lied ein eigenes
Array darstellt.
Ein Array von Pointern (auf die Liedarrays) ermöglicht den Zugriff auf 
jedes der Lieder.
Die Länge eines Liedes ist in seinem ersten Byte abgelegt.
Damit wird das Ändern von Liedern einfacher, es muss nicht jedesmal der
Zeiger auf den Liedanfang manuell neu berechnet werden.

Eine weitere eingebaute Option:
Man kann per TWI einen "Notensatz" verschicken, der dann
vom USI-Slave abgespielt wird (gedacht zum Testen von neuen Melodien).

Viel Spaß beim Komponieren ...

mfg

Michael S.

Autor: egberto (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Michael S,

sehr hübsch (ich habe allerdings keinen Plan, wie ich das praktisch 
nutzen sollte) und ein gute Beispiel für dieses ganze USI geraffel.

Ein kleiner Nachteil- man braucht einen ATTINY85 an Stelle des ATTINY45, 
kann dann allerdings noch an den Melodien feilen (oder PWM, Hüllkurven 
etc. machen).

Viele Grüße,

egberto

Autor: Michael S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo egberto,

die leidige Frage nach dem Sinn - manchmal ist ja auch der Weg das Ziel.
Nun, ich bastele seit einiger Zeit an diversen Modulen mit der
Gemeinsamkeit, dass sie alle über eine TWI-Schnittstelle miteinander
kommunizieren könn(t)en.
Angefangen hat es mit dem Ersatz des PCF8575 durch ein ATTINY2313.
Dann folgte eine Tastatur (in diesem Fall mit einem PCF8575),
ein RGB-Dimmer, ein über TWI angesprochenes LCD-Display,
Schalter, die über IR schnurlos geschaltet werden können,
US-Entfernungsmesser, RS232-TWI Interface etc.
Und ein TWI-Master, der alles ansteuert, der wollte natürlich auch noch 
entstehen.
Die Weihnachtszeit habe ich genutzt, um noch eine DCF-Uhr - und deine 
Klingel an den Bus zu bringen.

In Hausbussystemen kenne ich Akustikmodule, die z.B. bei offenstehender 
Haustür "Die Haustür steht auf ... Die Haustür steht auf ..." vor sich
her plappern.
Die "Klingel" könnte ähnliche akustische Hinweise geben.
Etwa wie eine Kirchturmglocke die Zeit ansagen.
Oder Warnzeichen für auf programmierte Termine geben.
Also irgendwie als akustische Komponente in einem Bus-System arbeiten.
Mehr weiss ich auch noch nicht ...

mfg

Michael S.

Autor: egberto (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Michael,

war ja auch nicht als Kritik gedacht - ich brauchte halt nur ein 
schnelles Geschenk für meine Neffen, die wohl nie erfahren werden 
(mangels Interesse) was TWI oder ATTINY ist.

Deine TWI "Sammlung" klingt interessant, hast du das irgendwo 
veröffentlicht und dokumentiert?

Viele Grüße,

egberto

Autor: Michael S. (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
hallo egberto,

leider habe ich (mindestens) eines deiner Lieder [#9] zerschossen.
Es fehlt die Geschwindigkeit an 2. Position.
Ist in der lied.h behoben.

Ausserdem habe ich zum "Abtippen" von Noten einige Konstanten
deklariert, so dass man die codierten "Noten" eingeben kann als
Summe von Tondauer und Note.

Das habe ich praktisch an drei kleinen Melodien ausprobiert.
Sie sind in separaten Daten definiert und werden anstelle von Lied #5,
#11 und #12 includiert.
Findet sich alles in der lied.zip.


mfg

Michael S.

Autor: egberto (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Michael,

sehr schön, jetzt wird die Lied-Geschichte so langsam "benutzbar", ich 
habe das damals mit einem Konverter aus Nokia RTTL Klingeltönen 
konvertiert und für die C-Control dann zusammen "geklatscht". Die 
Qualität der "Lieder" ist auch sehr durchwachsen (um es mal positiv 
auszudrücken).

Hast du eigentlich deinen PCF8575 Emulator schon hier irgendwo gepostet? 
Da hätte ich großes Interesse dran, da ich mit TWI noch nix gemacht 
habe.

Schönes Wochenende,

egberto

Autor: Michael S. (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo egberto,

ich habe es nicht lassen können und noch einige Stücke aus dem 
"Songbook"
eines Keyboards abgetippt (sind angehängt).
Allerdings werden dabei auch langsam die Grenzen des Verfahrens 
erkennbar.
Angesichts des minimalen Aufwandes (1 tn85, 2 Transistoren + 1 Elko)
ist das Ergebnis aber ganz passabel.

Den PCF8575 Emulator kann ich dir gerne posten.
Eigentlich hast du ihn schon (in der USI-Klingel), allerdings in der 
Version für den tn25.
Der hat aber nur 3 freie PortPins (8 - vcc - gnd - sda - scl - reset = 
3).
Wenn's 8 Pins sein sollen, dann könnte man den tiny26 oder tiny2313 
nehmen.
Für letzteren habe ich einen funktionierenden Code.
Folgt ...

mfg

Michael S.

Autor: Michael S. (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
hallo egberto,

hier folgt der PCF8575a-Emulator.

Was ich übrigens an der TWI-Thematik reizvoll finde ist, dass man sich
Hardwarekomponenten wie Softwaremodule erstellen kann und bei Bedarf
miteinander kombiniert.

Das wird am Beispiel eines LCDs jedem deutlich:
Ein LCD an einen mc anzuflanschen bedeutet immer, reichlich viele
Strippen zu ziehen und viel Programmcode für den Treiber zu vergeuden
- und lange nach dem oder den Fehler(n) zu suchen.

Ein LCD - auf TWI-Basis, einmal aufgebaut, wird an den Bus angeschlossen
und funktioniert.
Auf dem LCD-Display ist genug Platz etwa für Balkengrafiken, 
verschiedene Fonts, Beeper etc. (da kommt mir ja glatt eine Idee ...).
Auf dem Master auf der anderen Seite bleibt erfreulich viel benutzbarer 
Speicher, die 2kB Flash der kleinen AVR's waren fast immer ausreichend.

Das man aus diesen Komponenten gar ein (eingeschränktes) Hausbussystem 
machen könnte, ist nur ein willkommener Nebeneffekt.


mfg

Michael S.

Autor: egberto (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank!!

kannst du ja noch als eigenen Beitrag in der Codesammlung posten, damit 
man es besser wieder findet !

Schönes Wochenende

Autor: Jürg H. (ha1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo.
Hab diesen thread gelesen und finde ihn interessant. Leider Gottes bin 
ich zu sehr Laie um das jetzt nachzubauen. Aber ich würds gerne. Soll 
heissen: Ich habe einen Programmer für PIC's ich habe ein paar: 16F628 
rumliegen. Mangels wissen und etwas mehr zeit, habe ich aber noch nie so 
richtig damit erfahrungen sammeln können.

Dies könnte ich doch evtl. verwenden um endlich in die Materie zu 
kommen. Als reine bastel Variante.

Ist es möglich einen PIC 16F628 dafür zu verwenden?
Noch was: wie geht das dann?

PS: Besonderes Interesse habe ich deshalb, weil "Michael S." geschrieben 
hat: Man kann dies ding dann evtl. ansteuern und Texte ausgeben wie: 
"Die Tür steht offen" usw. Denn ich habe eine Haussteuerung. An die kann 
man alles ran machen. 1-wire, Funk FS20, USB oder serielles, und was es 
alles so gibt.
Damit könnte ich doch glatt über dein Weihnachtsprojekt, also die 
Klingel, sowas ausgeben wie: "Sie haben eine EMAIL erhalten", oder "Im 
Bad ist die Luftfeuchtigkeit zu hoch" etc. etc.

...Aber zunächst würde ich mal wahnsinnig gerne einfach nur dein 
eigentliches Projekt nachbauen. Aber mittels PIC, denn hierfür habe ich 
alles daheim.

wie siehst du das?
MfG, Jürg

Autor: zufall (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Jürg: Das hat er nicht geschrieben.
(Man kann natürlich alles selber bauen, mit Zeit, Geld und Know-How.)

Hier Audio mit PIC:
http://www.youtube.com/watch?v=kDwGq29n3X0
http://www.romanblack.com/picsound.htm

Autor: Uwe S. (de0508)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe auch versucht den Code auf einem ATtiny85 zum laufen zu 
bringen.
Lieder gibt der tiny85 nur einen Ton aus.

Wer hat denn einen Tipp?

Das macht der avr-gcc.
avr-gcc -mmcu=attiny85  -Os -g -Wall -I. -c Klingel-ATTINY.c
avr-gcc -mmcu=attiny85   -Os -g -Wall -I. -Wl,-Map,Klingel-ATTINY.map,--cref -o Klingel-ATTINY.out Klingel-ATTINY.o
   text     data      bss      dec      hex  filename
   4034      240        1     4275     10b3  Klingel-ATTINY.out
avr-objcopy -O ihex -j .text -j .data Klingel-ATTINY.out Klingel-ATTINY.hex

Autor: Thomas Kiss (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dieses Projekt kommt wie gerufen !!!!

aber ich hätte eine Bitte an Euch....

Ich benutze Bascom und mit C kenne mich garnicht aus.habe auch keinen 
Compiler..könnte jemand , für die Leute die diese Schaltung "nur" 
nachbauen möchten eine HEX File bereitstellen ? Wäre supper !!!

Danke !!

Autor: Thomas Kiss (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nachtrag : tiny2313 oder Atemaga8 habe ich genügend da...aber wenn es 
ein bestimmte AVR sein soll wegen der Hex Datei ist auch kein Problem..

Autor: Uwe S. (de0508)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Thomas,

für den ATmega8 schau mal hier:

Beitrag "Melodieklingel BASCOM ATmega8"

Autor: Thomas Kiss (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Fast perfekt..nun die Frage, der Optokoppler ( angegeben im Plan OK1 
oder so ) ist ganz schön gross..kann ich einen IC nehmen ?

sowas ? 
http://www.reichelt.de/?;ACTION=3;LA=444;GROUP=A55...

Autor: Mirko (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Uwe S.

Fuse CKDIV8?

@Thomas Kiss

Ist ziemlich egal, wenn du R vergößerst (mal mit 33k testen, hängt von 
deiner Klingelspannung ab) kannst du zur Not auch einen Transistor 
nehmen.

Wenn du direkt einen Taster anschließen kannst, einfach am AVR Pin gegen 
Masse und Optokoppler Diode und R weglassen.

Viel Erfolg,

Mirko

Autor: Uwe S. (de0508)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

hier nun meine lauffähige Klingel für den ATtiny85.

Es stehen noch Daten im EEPROM, die hatte ich vergessen.

Mit dem neuen Makefile wird alles richtig erzeugt !

Das Script "prog.sh" kann beim Programmieren helfen.


Viel Spaß.

Autor: Mirko (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Uwe S.

Danke, das hilft hier einigen bestimmt.

@Thomas Kiss

Nachtrag:
Den Optokoppler habe ich eigentlich nur drin, um bei langen Leitungen 
Störungen zu vermeiden (es wird ja quasi mit Strom und nicht mit 
Spannung geschaltet).
Außerdem gibt es eine Potentialtrennung zum Klingelkreis (ist z.B. 
hilfreich, wenn man die Klingel auch über den Klingeltrafo mit Strom 
versorgen will).
Den Optokoppler hatte ich noch liegen, war so ein altes DDR-Teil.

Viele Grüße,

Mirko

Autor: Byte (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Auch wenn der Tiny da viel zu klein sein wird, schwirrt mir da grad so 
eine dumme Idee im Kopf rum die ich mal kundtun wollte :-)
Wenn man das ganze jetzt mit einem Fingerabruckscanner statt einer 
Klingeltaste machen würde, könnte man ja eigentlich  verschiedenen 
Fingerabdrücken eine Melodie zuweißen g

So wüßte man schon anhand der Klingelmelodie wer vor der Tür steht :-)
Auch könnte man zwischenspeichern wer wann in den letzten 2-3 Tagen 
geklingelt hat.

Allerdings denk ich mal das ein AVR dafür nicht wircklich geeignet wäre 
Fingerabrücke in einer annehmbaren zeit zu vergleichen.

Autor: Barny (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Byte schrieb:
> Allerdings denk ich mal das ein AVR dafür nicht wircklich geeignet wäre
>
> Fingerabrücke in einer annehmbaren zeit zu vergleichen.
Normalerweise wird in diesen Scannern schon die Intelegenz eingebaut und 
diese geben dem Prozessor bescheid wer da gescannt wurde.

Aber es gibt ein paar Dinge die du bedenken solltest.

Wie stellt man sicher, dass jeder mitbekommt, dass er den Finger über 
den Sensor ziehen soll und nicht nur drücken?

Traditionell sind die Klingeltaster außen angebracht.
Will man wirklich im Winter die Handschuhe ausziehen, nur um zu 
klingeln?

Will man überhaupt, dass bei einem fremden Haus sein Fingerabdruck 
gescannt wird?

Wie verhält sich der Scanner bei wechselnden Witterungen?

Autor: Hermann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo egberto,

ich habe deine herrliche Klingel nachgebaut und als Wohnungsbimmel 
verwendet.
( mein Chinamodel mit Vogelgezwitzscher hatte sich verabschiedet )
ein Layout könnte ich bei Bedarf hochladen ( ca 4 x 2cm )

bei der "Vorlage" von Hannes Lux gefällt mir, das es eine 
"Batterie-Leer-Meldung" gibt. Könnte das noch jemand in den Tiny packen? 
:)
Ich habe leider dazu keine Ahnung heul

Ich betreibe das ganze mit 3x AA Batterien und würde mich mindestens 
nach ein paar Jahren wundern, wenn mich keiner mehr besucht :) aber 
wenns nicht mehr bimmelt ... kann ich auch keinem öffnen.

na jetzt bin ich mal gespannt :)


liebe Grüsse
Hermann

Autor: Hermann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
p.s.

ich habe überigens die "Originalversion" mit Tiny45 gebaut.

Autor: Jandelä (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>last minute Weihnachtsgeschenk
Ihr macht eine Panik.
Also ich hab noch keine Geschenke besorgt ......

Autor: Egberto (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Hermann,

Da noch Geist rein zu stecken, habe ich eigentlich keine Lust (Zeit), du 
hast ja den Quelltext von mir und die Vorgehensweise von Hannes Lux - 
eigentlich super Voraussetzungen sich mit der Materie zu beschäftigen 
(bei Fragen wird dir gern geholfen!).

Du solltest dann allerdings auf einen tiny85 ausweichen, es kommt ja 
noch Code hinzu und der tiny45 ist ziemlich voll.

Viel Erfolg,

Mirko(egberto)

Autor: egberto (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Noch ein Nachtrag:

wenn wenigstens alle paar Wochen jemand bei dir klingelt, solltest du 
während des Klingelns merken, wenn die Batterie zusammenbricht.

Ich habe leider da auch noch keine Erfahrungen, die Klingel meiner 
Neffen tut es nach über 3 Jahren immer noch wie am ersten Tag (mit den 
gleichen 3x AA Alcaline).

Schönes WE,

egberto

Autor: Hermann (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Mirko,

wenn das Teil 3 Jahre lang läuft - lohnt der Aufwand wirklich nicht!
Wenn Sie nicht mehr ordentlich bimmelt ( hiert eher melodiert :)
werden die Batterien/ Akkus getauscht -fertig.

ich baue mittlerweile das 3te Model davon:
1x Wohnungsklingel
1x Sohnemann ( Baumhaus )
1x auf Lager zum gelegentlichen Verschenken.

anbei mal 2 Bildchen

Danke für das schöne Projekt :)

Autor: KlingelKind (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für das witzige kleine Projekt!

Habe es schnell mit einem Tiny85 auf einem Steckbrett aufgebaut und die 
fertigen Dateien aus dem aller ersten Post genommen. Programmiert habe 
ich mit dem "mySmartUSB light" und der zugehörigen Software. Hat 
problemlos geklappt.

Als kleine Änderung habe ich einen Taster dran gebaut und ein Poti vor 
den Lautsprecher, da es mir zu laut war.
Macht wirklich Spaß den Knopf zu drücken und die Melodien durch zu 
hören.
Vielleicht kommt sie doch als Klingel an die Wohnungstür oder irgendwie 
als Rätsel (Melodienraten?) in einen Geocache... :-)

Autor: Benny (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mal eine kleine Elektronik-Anfängerfrage.
Warum braucht man kein Basis-Vorwiderstand bei der Ausgangsstufe?

Autor: drago (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
http://www.lautsprechershop.de/theorie/transistor3.htm

siehe:

komplementärer Emitterfolger

Autor: DL8MA (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo,

Zuerst mich ich mich bei egberto, Uwe S. (de0508) und den anderen Usern 
die sich hier im Thread beteiligt haben bzw. die Schaltung und die 
Software zur Verfügung gestellt haben bedanken.

Die Jugendgruppe des DARC OV Waiblingen hat die Klingel auf 
Lochrasterplatinen nachgebaut. Ihr hab damit auch aktiv die Jugendarbeit 
unterstützt!

Eine kleine Doku mit Video der Aufbauvariante die wir gewählt haben 
findet Ihr hier:

=> http://www.dl8ma.de/jugendarbeit/melodienklingel

Gruss
Jürgen

Autor: Uwe S. (de0508)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Jürgen,

super, ich hatte das Projekt, ich glaube vor 2 Jahren bei unserer OV 
Weihnachtsfeier dabei, das war auch lustig.

73, Uwe
DOK F07

Autor: Paul Baumann (paul_baumann)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
DL8MA schrob:
>Zuerst mich ich mich bei egberto....

Ach, Du Dich auch?
;-)
Flücht
MfG Paul

Autor: DL8MA (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ups :-(

das sollte natürlich "Zuerst möchte ich mich ..." lauten ...

danke für den Hinweis. Leider kann ich das jetzt nicht mehr ändern :-(

Gruss
Jürgen, DL8MA

Autor: chris (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ein sehr schönes Projekt. Der ARM-Dip ist vielleicht etwas 
überdiemensioniert für die Klingel, aber trotzdem lustig anzuhören.

Beitrag "Re: Arm Synthesizer mit LPC1114"

Autor: Jürgen, DL8MA (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo,

Die Melodien-Türklingel mit dem ATTiny85 wurde inzwischen ja auch von 
anderen DARC-Jugendgruppen aufgebaut.

Im HamCamp auf der HAMRadio 2013 in Friedrichshafen ( 
http://www.hamcamp.de) wollen wir den Aufbau einer solchen 
Melodienklingel als Bastelaktion anbieten. Dazu wird es eine einseitige 
Leiterplatte geben. Der erste Entwurf ist fertig. Nach einem Testaufbau 
geht die Vorlage an einen Leiterplattenhersteller.

Da wir hier im Forum die Anregung für dieses nette Projekt bekommen 
haben möchten wir jetzt als kleines Dankeschön interessierten User 
anbieten sich an unsere Leiterplattenbestellung anzuschliessen.

Gegenüber der Grundversion ist diese Version flexibler und etwas 
erweitert bzw. vereinfacht:

* zweiter Taster
* ev. noch eine LED
* kleines Lochrasterfeld
* Wegfall des Optokopplereingangs

Denkbar ist damit z.B. eine kleine Steuerung die mit den zwei Tasten und 
einer Treiberschaltung auf dem Lochrasterfeld etwas ansteuert Oder, 
oder, oder ...

Diese Erweiterungen ermöglicht es uns die selbe Platine später bei 
anderen Projekten einzusetzen.

Infos zur Leiterplatte dazu gibt es hier:

=> http://www.dl8ma.de/jugendarbeit/melodienklingel/l...

Gruss
Jürgen, DL8MA

Autor: Uwe S. (de0508)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke Jürgen,

viel Erfolg auf der HamRadio 2013 ich kann leider nicht kommen.

73, Uwe

Autor: Jürgen, DL8MA (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo,

sodele - das Layout ist jetzt in der V 1.0 soweit fertig. Jetzt noch ein 
Testaufbau und dann kann es zum Leiterplattenfertiger.

Die aktuelle Version ist hier zu sehen:

=> http://dl8ma.de/jugendarbeit/melodienklingel/leite...

Wer bei der Sammelbestellung mitmachen möchte kann sich noch bis heute 
spät abend bei mir melden.

Gruss
Jürgen

Autor: Jürgen, DL8MA (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo,

die Leiterplatte ist fertig. Die ersten Musterschaltungen wurden 
aufgebaut. Ab Donnerstag können die Teilnehmer des HamCamps auf der 
HamRadio in Friedrichshafen dann diese nette Bastelprojekt aufbauen.

Bilder von der bestückten Leiterplatte findet man hier:

=> http://www.dl8ma.de/jugendarbeit/melodienklingel/l...

Jürgen, DL8MA

http://www.DL8MA.de

Autor: Jürgen, DL8MA (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
hallo,

die Bastelaktion mit der Melodienklingel ist im HamCamp auf der HamRadio 
in Friedrichshafen gut angekommen.

Einer der Teilnehmer hat die Klingel kurzerhand "missbraucht" und eine 
amerikanische Polizeisirene programmert und damit einen Kettcar den wir 
für einen Wettbewerb da hatten ausgerüstet :-)

Ich hab hier mal zwei Bilder von der Bestückungsvariante 
"Melodienklingel" angehängt.

Weitere Infos wie z.B. den Bestückungsplan findet man hier:

=> http://www.dl8ma.de/jugendarbeit/melodienklingel/l...

Gruss
Jürgen, DL8MA

http://www.DL8MA.de

Autor: Selina (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

finde ich ein super Projekt!
Hab es bereits nachgebaut und funktioniert einwandfrei.

Jedoch bräuchte ich es ein wenig lauter. Wie kann ich das am einfachsten 
bewerkstelligen?
Einfach den gleichen Emitterfolger noch ein zweites Mal dahintersetzen?

Für Tipps wäre ich sehr dankbar!

Viele Grüße und ein schönes Restwochenende.

Selina

Autor: egberto (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eigentlich ist das Teil ja schon recht laut.. am einfachsten wäre erst 
mal ein größerer Lautsprecher (aus altem Radio oder so).
Hintereinanderschalten kann man die Endstufen nicht, man könnte dort mit 
höherer Spannung arbeiten, aber dann muss man die Stromversorgung und 
die Bauelementedimensionierung neu überdenken.

Autor: Daniel Q. (daniel_q)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten Morgen, ich würde gerne mal die Schaltung nachbauen.
Weiß aber nicht genau welche Codes die Richtigen sind.
Ich habe jetzt das Melodienklingel V 1.1 von  Jürgen (DL8MA) im Auge.
Welcher Code ist dafür der Richtige?

lg Daniel

Autor: Egberto (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn du einen Attiny 45 nimmst oder selber die Quellen compilierst, 
kannst du die Originaldateien nehmen, für Attiny 85 hat Uwe S. das wohl 
angepasst (durch den doppelt so großen Speicher muss man dort keine 
Tabellen mehr im EEPROM ablegen).

Schönes Rest-WE,

Egberto

Autor: Dominic A. (neo123)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ist meine Ansteuerung falsch oder ist es normal das das so klingt?
Habe ich eventuell einen unpassenden Lautsprecher? 
https://dech.rs-online.com/web/p/einbau-lautsprech...
Kann mal jemand von euch eine Melodie hochladen?

Autor: Uwe S. (de0508)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

so klingt es aus meinem Empfänger manchmal auch.

Keiner weiß was Du da gemacht hast, ein Bild und Schaltplan etc. wären 
toll.

Liegt vielleicht an der Taktfrequenz... resp. Vorteiler.

Autor: Egberto (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Lautsprecher ist ok, hast du alle (CKDIV8 !!) Fuses richtig 
gesetzt??

Viele Grüße,

Egberto

Autor: Dominic A. (neo123)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Anbei mein Schaltplan.
Die Fuses habe ich Online mit diesem Tool gewählt: 
http://www.engbedded.com/fusecalc Anbei ein Bild wie ich es eingestellt 
habe.
Beim Programmieren ergibt das folgende Kommandozeile:
avrdude -p attiny85 -B 5 -U lfuse:w:0x62:m -U hfuse:w:0xdf:m -U efuse:w:0xff:m  -c usbasp    -U flash:w:Klingel-ATTINY.hex -U eeprom:w:Klingel-ATTINY.eep
Tut mir Leid falls irgendwelche Infos fehlen. Das ist das erste mal das 
ich einen AVR benutze.

Grüsse

Edit: Auf dem Schema sind die Power Pins vertauscht ich weiss. Das habe 
ich auf dem PCB korrigiert.

: Bearbeitet durch User
Autor: Egberto (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, die Fuses sind Low aktiv - im Text zur Klingel steht CKDIV8 
"ausschalten", also auf High setzen -bei dir also Haken raus!

Weiterhin fehlt der "Siebelko" in der Spannungsversorgung, ich hoffe, du 
arbeitest nicht mit Batterie! So 470u bis 1000u würde ich aber trotzdem 
vorsehen.

Viele Grüße,

Egberto

Autor: Dominic A. (neo123)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ein Siebkondensator ist vorhanden. Jedoch ist dieser im Schemaausschnitt 
nicht zu sehen.

Super. Mit den richtigen Fuses klingt es richtig gut =).
Danke für diese tolle Projekt.

Grüsse

Autor: Uwe S. (de0508)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

wie viele Ampere sollen da fließen ?
Etwa 1 Ampere ?

Egberto schrieb:
> So 470u bis 1000u würde ich aber trotzdem
> vorsehen.

Der Wert ist viel zu groß.

Autor: Egberto (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Im Original ist der komplementäre Emitterfolger ohne Widerstand in Serie 
zum Lautsprecher ausgeführt.
Bei Batteriebetrieb benötigt man dann den kräftigen Elko an der 
Versorgungsspannung, damit die Spannung für den uC nicht zusammenbricht.
An einem Labornetzgerät ist das natürlich kein Problem, aber z.B. An 
einem Steckernetzteil ist es vom Design her einfach besser, die 
Versorgungsspannung etwas zu puffern.

Viele Grüße,

Egberto

Autor: Jürgen Furtmann (rubinlicht)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo ich bin neu hier.
Ich habe die Schaltung nachgebaut.
Ich habe die EEP und HEX Datei mit Batego II von Batronix in den Chip 
gebrannt. Leider höre ich nur ein Ton. Irgendwie kriege ich den Chip 
nicht am Laufen. Mit Fuses habe ich auch schon herumprobiert.

Hat jemand da ein Tipp?

Grüsse

Autor: egberto (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
CKDIV8 Fuse?

Autor: Jürgen Furtmann (rubinlicht)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, das habe auch probiert. Einmal höre ich ein 50HZ Ton und deaktiviert 
ein ca. 400HZ Ton. Ich überlege mir das Starterkit STK500 zu kaufen. Das 
Kit wird doch den Chip unterstützen?
Danke für die schnelle Antwort.

Grüße an egberto

Autor: Jörg Esser (jackfritt)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
EEP File wurde bei mir nicht übertragen. Dann kommt auch nur ein langer 
Ton.
Oder zufall was im eeprom halt noch drin stand....
Habe aber alles für den attiny85 compiliert... Anderen atiny?

: Bearbeitet durch User
Autor: Jörg Esser (jackfritt)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Egberto und alle "Liedermacher"
Herrliche Spielerei. Vielen Dank dafür. Ich singe jeden 2 Song mit.
"Arbeit? Welche Arbeit? ;)"

: Bearbeitet durch User
Autor: Moritz A. (moritz_a)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Da ich nicht der begabteste im Noten lesen bzw Melodien vorstellen bin, 
aber auch nicht immer alles neu flashen wollte, habe ich passend zum 
verwendeten Format ein kleines Perlskript geschrieben, dass über den 
System-Speaker die Melodie ausgibt.

Die Anwendung ist denkbar einfach:
./play.pl <<<"66,1,0,136,128,107,128,72,64,72,141,136,134,136,128,111,128,72,64,72,144,143,139,136,143,148,72,70,64,70,131,139,200,200,192,82,143,141,139,200,171,72,64,72,141,136,134,200,175,72,64,72,144,143,139,136,143,148,72,70,64,70,131,139,200,200"

bzw
./play.pl 66,1,0,136,128,107,128,72,64,72,141,136,134,136,128,111,128,72,64,72,144,143,139,136,143,148,72,70,64,70,131,139,200,200,192,82,143,141,139,200,171,72,64,72,141,136,134,200,175,72,64,72,144,143,139,136,143,148,72,70,64,70,131,139,200,200
^D

Autor: Basti (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,
ich habe eine Frage zu diesem Projekt.
Ich würde die Klingel gerne nachbauen, habe aber wenig Erfahrung in 
programmieren von Mikrocontrollern.
Dazu kommt, dass ich den ATtiny gern über einen Arduino programmieren 
würde.
Die konkrete Frage ist bei mir also:Wie muss ich den Code ändern und wie 
bekomm ich die Lief.H datei in den Speicher des Attiny.
Grüße
Basti

Autor: chris_ (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Jörg Esser (jackfritt)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@chris_:Als wäre es damit getan einen Link zu posten. Dort fehlt ja noch 
der ganze Code für den Melodienteil.
Also muss da noch einiges umgeschrieben werden. Und dann noch die Frage 
ob das dann noch alles so da rein passt, weil Arduino ja auch noch einen 
Bootloader benötigt.

Ich würde eher sagen, erstmal die grundlagen von arduino lernen und dann 
langsam an silche Projekte herantrauen.

Autor: chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Anbei meine Türklingel als Einsteigerprojekt mit minimalem Hardwareaufwand 
(ATTINY45, >Batterie, PC-Lautsprecher, Kleinkram).

Attiny 45: 4k Flash
Attiy  85: 8k Flash
Bootloader: 2.5k

Autor: Basti (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Chris und Jörg,
Danke für die schnelle Antwort.
Der Link ist schon etwas hilfreich, hab andere Tutorien dazugefunden, 
die waren aber nicht so gut geschrieben, und wenn der ATTiny85 wollte 
ich erst mal den Test mit LED blinken ausprobieren.

Mit dem Arduino kann mir ein Bekannter helfen, es geht wenn ich mit 
meinen jetzigen Kenntnissen nicht weiter komme.

 Bin jetzt nur mit dem Bootloader etwas verwirrt.
Der Arduino braucht den und wird dann als ISP verwendet, daher dachte 
ich wird der Bootloader nicht auf den ATTiny übertragen.

Bis ich den ATTiny habe, kann ich mich erst mal um das Umschreiben des 
Code kümmern, dafür muss ich den nur erst mal Zeile für Zeile 
Analysieren und verstehen.

Schon mal vielen Danke
Ich melde mich wieder wenn ich es geschaft habe oder konkrette Probleme 
habe.

Autor: chris_ (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Der Arduino braucht den und wird dann als ISP verwendet, daher dachte
>ich wird der Bootloader nicht auf den ATTiny übertragen.

Den Arduino kann man als reinen ISP-Programmierer verwenden. Wenn Dir 
jemand ein HEX-File für den Attiny85 macht, kannst Du es direkt flashen. 
Dann muss auch kein Code umgeschrieben  werden. Wenn Du aber wirklich 
mit der IDE Code für den Tiny schreiben willst, dann muss das ganze wohl 
auf die Arduino-Lib angepasst werden.

Autor: grummel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
GEHT NICHT: usi_klingel
Beitrag "Re: Klingel mit 100 Melodien - last minute Weihnachtsgeschenk"
Michael S. (Gast)
usi_klingel_090108.zip (29,1 KB, 1642 Downloads)
>make

-------- begin --------
avr-gcc (GCC) 4.9.2 20141224 (prerelease)
Copyright (C) 2014 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


Compiling C: klingel_inc.c
avr-gcc -c -mmcu=attiny85 -I. -gdwarf-2 -DF_CPU=8000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wundef -Wa,-adhlns=obj/klingel_inc.lst  -std=gnu99 -Wundef -MD -MP -MF .dep/klingel_inc.o.d klingel_inc.c -o obj/klingel_inc.o
In file included from klingel_inc.c:11:0:
lied.h:43:9: error: variable 'ton' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
 uint8_t ton[] PROGMEM =
         ^
lied.h:93:9: error: variable 'L1' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
 uint8_t L1[] PROGMEM = {66,1,0,136,128,107,128,72,64,72,141,136,134,136,128,111,128,72,64,72,144,143,139,136,143,148,72,70,64,70,131,139,200,200,192,82,143,141,139,200,171,72,64,72,141,136,134,200,175,72,64,72,144,143,139,136,143,148,72,70,64,70,131,139,200,200};
         ^
In file included from klingel_inc.c:11:0:
lied.h:97:9: error: variable 'L2' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
 uint8_t L2[] PROGMEM = {39,2,65,3,3,67,131,65,65,65,65,4,4,68,132,67,67,67,65,3,3,67,131,65,65,65,65,4,4,68,132,67,66,65,77,236,72,70,232};


[... und so weiter ...]

         ^
Makefile:539: die Regel für Ziel obj/klingel_inc.o scheiterte
make: *** [obj/klingel_inc.o] Fehler 1

Autor: grummel (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Okay, jetzt geht es. hab überall das gewünschte const hingeschrieben.

Und utf-8 iss cool deshalb hab ich noch:

for file in *.h *.c Makefile;do iconv -f latin1 -t utf-8 "$file" -o 
"${file}";done

über die Dateien rübergebügelt.

Autor: Marcus H. (Firma: www.harerod.de) (lungfish) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
chris schrieb:
>>Anbei meine Türklingel als Einsteigerprojekt mit minimalem Hardwareaufwand
> (ATTINY45, >Batterie, PC-Lautsprecher, Kleinkram).
>
> Attiny 45: 4k Flash
> Attiy  85: 8k Flash
> Bootloader: 2.5k

Das geht noch einen Tick kompakter - siehe Bild im Anhang.
- der Tiny10 hat massig Platz: 1k Flash  16 Byte Register  32 Byte 
SRAM
- ca. 200 Maschinenbefehle für den Tongenerator, inkl. Framework und 
Sensorauswertung
- um einen Piezo-Piepser anzusteuern, braucht's nur vier Bauteile, auf 
dem freien Platz kann ein Transistortreiber nachbestückt werden

Autor: Egberto (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Na dann, wir warten auf deine Umsetzung ;-) (aber die 100 Melodien 
müssen auch drin sein!)

Viele Grüße,

Egberto

Autor: Basti (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,
Hab den ATTiny85 endlich erhalten.
Habe den Arduino als ISP verwendet und mit WinAVR in Programmer's Notpad 
kompiliert.
Nach dem ich die Zeilen:
   int ANZ;
   unsigned char *lied;
   unsigned int *liedofs;
angefügt hatte ließ es sich das Programm auch Kompilieren und auf den 
ATTiny schreichben.
Nach dem die Klingel nicht funktioniert habe ich ein Blink-test mit LEDs 
durchgeführt, d.h. Programm geschrieben, kompiliert und die LED blinken.

Meine Vermutung ist, dass bei meinen Aufbau mit den BC327 und BC337 
etwas nicht stimmt. Kann ich dieses einfacher nachprüfen als die 
Kennlinien für die Bauelemente aufzunehmen? Oder habe ich eine andere 
Fehlerquelle übersehen?

Grüße
Basti

Autor: chris_ (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Schaltung kannst Du ohne die Transistoren testen, wenn Du einen 
Orhörer oder Piezo direkt am Ausgang des Attiny anschließt.

Autor: Egberto (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn du das ohne deine Anpassung nicht compilert bekommst, stimmt was 
nicht!
Wurde die header Datei (lied.h oder so) auch mit eingebunden?

Grüße,

Egberto

Autor: Basti (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,
dann kann ich hier nur mal die Ausgabe von WinAVR einstellen. Meine 
Vermutung ist, dass ich etwas nicht korrekt eingestellt habe. Habe 
selbst dazu wenig gefunden was mir direkt weiter hilft.
Ich habe versucht die Version von  Michael S. mit der geänderten lied.h 
Datei und weitern Anhänge hineinzuladen.
-------- begin --------
avr-gcc (WinAVR 20100110) 4.3.3
Copyright (C) 2008 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


Compiling C: Klingel-ATTINY.c
avr-gcc -c -mmcu=attiny85 -I. -gdwarf-2 -DF_CPU=1000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=./Klingel-ATTINY.lst  -std=gnu99 -MMD -MP -MF .dep/Klingel-ATTINY.o.d Klingel-ATTINY.c -o Klingel-ATTINY.o 
Klingel-ATTINY.c: In function 'MyRandGet':
Klingel-ATTINY.c:72: error: 'ANZ' undeclared (first use in this function)
Klingel-ATTINY.c:72: error: (Each undeclared identifier is reported only once
Klingel-ATTINY.c:72: error: for each function it appears in.)
Klingel-ATTINY.c: In function 'main':
Klingel-ATTINY.c:123: error: 'liedofs' undeclared (first use in this function)
Klingel-ATTINY.c:124: error: 'ANZ' undeclared (first use in this function)
Klingel-ATTINY.c:124: error: 'lied' undeclared (first use in this function)
make.exe: *** [Klingel-ATTINY.o] Error 1

> Process Exit Code: 2
Die Klingel gibt zwar geräusche von sich, aber keien die nach einer 
Meldoie klingen, oder gar auf den Taster reaktieren.
Ein umstöpseln der Kopfhörer bringt keine Änderung.
Beste Grüße
Basti

Autor: Jörg Esser (jackfritt)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Basti
Irgendwie kann ich bei der Error Meldung des gcc gar nicht glauben das 
hier irgendwas an Programm herausgekommen ist. Vielleicht solltest du 
nochmals deine komplette Buildumgebung mit deinem Blinkprogramm 
überprüfen.

Die Fehlermeldungen sollten dir schon alle Hinweise liefern.

Autor: Egberto (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry, ich bin z.Z. Nur mit Ipad/Handy unterwegs(Urlaub!!!!!!), kann 
also kein zip etc aufmachen.
In der Erinnerung sind ANZ etc Konstanten in dem Header File, dein Build 
Process scheint irgendwie nicht ok zu sein.
Nimm doch erstmal die Hex Files hier aus dem Forum zum Test, dann kanst 
du dich rantasten.

Grüße,

Egberto

Autor: Uwe S. (castle)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Egberto schrieb:
> Sorry, ich bin z.Z. Nur mit Ipad/Handy unterwegs(Urlaub!!!!!!), kann
> also kein zip etc aufmachen.

Doch, kannst du z.B. mit der GoodReader App aufmachen und reinschauen. 
;)

Autor: Jörg Esser (jackfritt)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Uwe S. schrieb:
> Egberto schrieb:
>> Sorry, ich bin z.Z. Nur mit Ipad/Handy unterwegs(Urlaub!!!!!!), kann
>> also kein zip etc aufmachen.
>
> Doch, kannst du z.B. mit der GoodReader App aufmachen und reinschauen.
> ;)


Im Urlaub würde ich mir das nicht antun ?

Autor: Basti (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Jörg
Das Buildprogramm bricht natürlich schon ab bei diesen Fehlermeldungen,
nur Egberto sagte, dass das Programm ja unmodifiziert laufen sollte 
nicht das ich die Variabeln noch difinieren müsste, wenn ich die 
definiere läuft das compilieren und ich kann den code auf den Attiny 
schieben.
Ich werde noch mal versuchen ein BlinkProgramm zu schreiben

@Egberto
Mit den Hex-files ist dort nicht das problem, dass die für den Attiny 45 
und nicht den 85 geschrieben sind? Ansonsten muss ich gleich nur schnell 
googeln wie ich die hex-files direkt verwende.

Noch mal danke für die Hilfe

Autor: Basti (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
hab noch mal rumgespielt.
Das Blinken funktioniert hab es jetzt auch über den WinAVR geschrieben, 
und mit der selben Make-Datei verwendet.
Das Flashen mit den Hex-files: Gelingt mir nicht oder ich stell mir 
eventuell etwas flasches vor. Sollte nur ein Make-file haben oder 
erzeugen und dann im Programm auf Programmieren clicken um die schon 
vorhandenen Hex-File zu verwenden oder?
Bei diesen Versuch tretten Fehler auf, die ich nicht behebe kann. Da mit 
der ursprung nicht klar ist(hatte den compilervermutet und geändert und 
ähnliches im make-file konnte es nicht beheben; avrdudeport ist auf com6 
umgestelltum die komunikation mit dem Arduino aufzubauen)

Hab nur statt den 470µF einen 300µF kondensator
und bei den BC337 udn BC327 bin ich mir nur sicher das es sich um pnp 
bzw npn Transitoren handelt, die Aufschrieft fehlt.
Die Fehler habe ich erst mal unberücksichtiggelassen, da das Signal was 
am kopfhörer ankommt sich nicht verändert wenn ich über die schaltung 
gehe oder direkt am ausgang zum ground nur die kopfhörer verwende.
Grüße
Basti

Autor: Mego (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schönes Mini-Projekt!

Gibt es eigentlich eine Titelliste - bei meinen musikalischen 
Fähigkeiten habe ich Probleme, die eine oder andere Melodie zu erkennen.

Grüsse

Mego

Autor: egberto (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein - wie oben irgendwo beschrieben, habe ich das mal (vor vielen 
Jahren) aus hunderten Nokia Klingeltönen (RTTL) extrahiert und die 
halbwegs brauchbaren verwendet - damals für die C-Control I.

Du kannst hier ja ein Quiz starten - so nach dem Motto: Wer kann mir am 
schnellsten sagen, was Lied Nr. 65 ist... ;-)

Grüße,

Egberto

Autor: E...... B...... (ludwig63)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe die Schaltung nachgebaut aber es tut nichts
linkt  es am ATtiny 45 Code
Können sie mir da helfen


Grüsse

: Bearbeitet durch User
Autor: egberto (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was hast du denn alles gemacht?
Du musst das hex und das eep file in den Chip flashen sowie die CKDIV8 
Fuse verändern.

Viele Grüße,

egberto

Autor: E...... B...... (ludwig63)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe nur den Hex Code hochgeladen im ATtiny 45
Was muss ich noch machen

Gruß

Autor: egberto (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

steht da - auch das eep file brennen und die Fuse setzen (wie das genau 
geht, hängt von deinem Programmer ab)

Viele Grüße,

egberto

Autor: E...... B...... (ludwig63)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich Programmiere mit dem myAVR Prog Tool und mit AVR Studio 6 oder geht 
die Schaltung nicht mit Attiny 45 oder brauche ich einen anderen  Attiny


Ich kenne nicht  so gut aus

Gruß

Wer kann mir da helfen

Autor: Egberto (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Schaltung ist für einen Attiny 45.

Eventuell hilft dir der Link unten ja weiter.

Im letzten Bild unter EEPROM muss dann das .eep File ausgewählt werden.

http://wiki.fichtelbahn.de/doku.php?id=programmer:...

Grüße,

Egberto

Autor: Jürgen S. (jurs)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Egberto schrieb:
> Die Schaltung ist für einen Attiny 45.
>
> Eventuell hilft dir der Link unten ja weiter.
>
> Im letzten Bild unter EEPROM muss dann das .eep File ausgewählt werden.
>
> http://wiki.fichtelbahn.de/doku.php?id=programmer:...
>
> Grüße,
>
> Egberto

Nach über acht Jahren und inzwischen über 8000 Downloads und weil es 
sonst bisher wohl niemand für notwenig gehalten hat:

HERZLICHEN DANK für das Programm mit den enthaltenen Notendaten!

Egberto, da hast Du damals wirklich ein schönes kleines Anfängerprojekt 
gepostet.

Ich selbst hatte mir die ZIP Datei mal vor fünf Jahren heruntergeladen, 
als ich mit Arduino angefangen habe. Damals hatte ich das Programm auf 
Arduino UNO (Atmega328) portiert, und dank der guten Dokumentation des 
Datenformats war das auch überhaupt kein Problem. Heute habe ich mir die 
Arduino-Portierung mal auf ein Arduino-kompatibles Board gezogen und mal 
wieder reingehört: Eine Vielzahl alter bis uralter Melodien
Keine ganzen Lieder, sondern mehr kurze Tonfolgen  mit Intros von 
vorwiegend alten Fernsehserien, aber auch Schlagern vergangener Tage.
Teils nur Fragmente mit ganz wenigen Noten.
Auf die Rückfrage wegen einer Titelliste aus dem Jahr 2015 ist ja 
niemand angesprungen, daher auf die schnelle nur mal ein paar, die ich 
sofort wiedererkannt habe:
#3 „Ausgerechnet Bananen,Bananen verlangt sie von mir!
#10 Pippi Langstrumpf:
 Zwei mal drei macht vier widdewiddewitt und drei macht neune,
ich mach? mir die Welt, widdewidde wie sie mir gefällt.
#13 Muppets Show:
Schmeißt Euch in Frack und Fummel
und Vorhang auf "Hallo"
Freut euch auf Spaß und Rummel
in der heutgen Muppetshow!

#18 Augsburger Puppenkiste:

eine Insel emit zwei Bergen und dem tiefen weiten Meer,
 Mit viel Tunnels und Geleisen und dem Eisenbahnverkehr ,
 Nun, wie mag die Insel heissen, ringsherum ist schoener Strand ,
jeder sollte einmal reisen in das schoene Lummerland.

#22; Ententanz

#23: "Was wollen wir trinken, sieben Tage lang, was wollen wir trinken, 
so ein Durst.
#24; Die ersten sieben Noten von "99 Luftballons"
Hast Du etwas Zeit für mich
#28: Die ersten Noten von Hans Albers "Flieger-Lied"
Flieger, Grüß mir die Sonne, grüß mir die Sterne und grüß mir den Mond!

#36: Toccata (Johann Sebastian Bach)
#39; Erste Noten vom Intro "die Adams-Familie"
#45: Popcorn
#62: Jaques Offenbach Can Can
#65: Intro "Dallas"
#66: Thema "Das Boot" (Klaus Doldinger)
#71: Griechischer Wein
#78: Hey Macarena
#82: Wenn ich einmal reich wär
#84:Rudolph the red-nosed rendeer
#91: Strangers in the night
#99: greensleeves
#100: Girl from Ipanema

Wenn ich jetzt richtig gezählt habe, dann habe ich 20 von 100 erkannt.

Wahrscheinlich kenne ich sehr viel mehr Lieder der Liste, vielleicht 
sogar alle.

Aber bei den wenigen Noten, die da pro Lied teilweise nur angespielt 
werden und bei dem historischen Alter der Lieder , schon schwierig.

Vielleicht wird es Zeit, dass nochmal jemand weitere 100 Melodien 
drauflegt?

Kinderlieder, Volkslieder, weitere Weihnachtslieder außer "Dudolph dem 
Rentier, es sollte wohl möglich sein, noch mehr Piepsen zu lassen . Wemm 
ich  alleine an die ganzen Intros der vielen Fernsehserien aus den 60er, 
70er und 80er Jahren denke,die ich mir damals alle angesehen habe, teils 
noch in schwarz-weiss,  ich habe hier und heute in den 100 Melodien 
jedenfalls erstmal neben Pippi Langstrumpf und der Augsburger 
Puppenkiste nur noch die Adams-Familie und das Dallas-Intro erkannt. Ein 
paar mehr Fernsehserien waren wohl dabei, aber so etwas prägnantes wie 
"Bonanza", dass sich sicher gut piepsen läßt, habe ich heute nicht 
herausgehört.

Wenn jemand selbst reinhören möchte und ein Arduin-kompatibles Board mit 
Piezo-Piepser hat: Selbstverständlich stelle ich jedem Interessenten 
gerne auch meine Portierung des Programms auf Arduino/Atmega328 zur 
Verfügung.

Aber von den "Melodien" bitte nicht zu viel versprechen, das sind 
manchmal nur ganz wenige Töne, von "99 Luftballons" beispielsweise nur 
exakt die ersten sieben Töne der Textzeile "Hast Du etwas Zeit für 
mich", und kein Deut mehr.

Vielleicht könnte ich bei einem zweiten Durchhören noch ein paar weitere 
ernennen.
Aber wenn kein Interesse besteht, dann lassen wir es weiter bei dem 
Stand, wie wir ihn seit über acht Jahren haben: Es sollen 100 Melodien 
sein, teils nur wenige kurze Noten angespielt, aber nichts genaues weiß 
man nicht.

Anyway, ich wollte nur mal ein ganz großes DANKESCHÖN loswerden für die 
Bereitstellung dieses tollen Projekts"für Mikrocontroller und 
Piezo-Piepser" vor acht Jahren!

: Bearbeitet durch User
Autor: Reiner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen.
Die treat's sind ja schon etwas älter, aber für mich immer noch 
interessant.
Und vielleicht liest das ja noch jemand und kann mir helfen, oder einen 
Tip geben.
Leider komme ich auf keinen grünen Zweig. Mit Arduino 1.6.1 probiert mit 
Atmel Studio 6 probiert...nix...
Arduino will den "Quelltext"(hex und oder eep Datei) gar nicht erst und 
Atmel auch nicht. Arduino nimmt nur eigene Dateien wie ino, ect. (Wie 
könnte ich denn die Dateien aus der Zip in ino oder ähnlch umwandeln?)
Bei Arduino 1.6.1. über Bsp.-->  und dann -->  Digital -->  Meldie, 
funktionier das zumindest über ein Arduino Mini (Atmega328p)an pin ...
Ich würde wirklich gern das ganze fertig bekommen um es zu verschenken. 
Die Schaltung steht, nur krieg ich die Dateien nicht ins Programm um auf 
einen ATTiny 85 zu brennen.
H i l f e!!!

Danke schon mal für eventuelle Geduldsproben mit mir.

Autor: Reiner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jürgen S. schrieb:
> ndern m

---bitte mal meinen Beitrag vom heutigen (24.4.2017) lesen, vllt. kommt 
ja da auch schon das erhoffte aha für kich. l.g. reiner

Autor: Jürgen S. (jurs)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Reiner schrieb:
> Leider komme ich auf keinen grünen Zweig. Mit Arduino 1.6.1 probiert mit
> Atmel Studio 6 probiert...nix...
> Arduino will den "Quelltext"(hex und oder eep Datei) gar nicht erst und
> Atmel auch nicht. Arduino nimmt nur eigene Dateien wie ino, ect. (Wie
> könnte ich denn die Dateien aus der Zip in ino oder ähnlch umwandeln?)
> Bei Arduino 1.6.1. über Bsp.-->  und dann -->  Digital -->  Meldie,
> funktionier das zumindest über ein Arduino Mini (Atmega328p)an pin ...
> Ich würde wirklich gern das ganze fertig bekommen um es zu verschenken.
> Die Schaltung steht, nur krieg ich die Dateien nicht ins Programm um auf
> einen ATTiny 85 zu brennen.
> H i l f e!!!
Der originale Quelltext aus 2008 ist für AtTiny45 unf NUR für AtTiny45 
Mikrocontroller.

Das Programm verwendet hardwarenahe pProgrammierung mit direkter 
Manipulation von Controller-Registern, das läuft ohne Anpassungen 
nirgendwoanders drauf.

Die Lied.h Datei enthält circa 4000 Bytes an Daten für 100 Melodien, 
also im Schnitt circa. 40 Bytes pro Melodie.

Mein Testprogramm für Atmega 328 mit allen 100 Melodien ist circa 8000 
Bytes groß, kompiliert mit Arduino 1.81.

Ein .ino Programm für die Arduino-IDE kann ich hier auf Wunsch gerne 
posten.


Aber vorher die Frage an Dich:

Funktioniert auf Deinem AtTiny85 die Arduino tone() Funktion?

Bekommst Du zum Beispiel dieses Beispiel auf Deinem Attiny zum Piepsen:
https://www.arduino.cc/en/Tutorial/toneMelody
Wie sieht es damit aus?

Und wie viele Bytes Flash-Programmspeicher sind auf dem Controller 
überhaupt frei, um ein Programm hineinzuladen?

: Bearbeitet durch User
Autor: Reiner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der attiny85 ist nackt.
Ich hab auch schon versucht ein Bsp. Wie hier genannt probiert, da kommt 
nur beim testen eine knackende Tonfolge. Also keine Melodie, auf dem UNO 
läuft der Test.. Ich hatte mir hier auch die zip für den 85 
runtergeladen. Aber nix...
Ich wäre für den download für arduino 1.6.1. Sehr dankbar.
L.g.

Autor: Uwe S. (de0508)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Reiner,

erkläre das mal bitte ?
Was hat die Hex- und die EEP-Datei mit dem Arduino zu tun ?
Aus meiner Erfahrung, wird nichts mit dem Arduino-Framework - zu 
langsam.

Nutze einen neuen Attiny85, spiele beide Dateien auf und stelle die 
Fusebits ein.

Ich habe dafür sogar ein Linux Shellscript erstellt: prog.sh

Die Hardwarebeschaltung sieht man im anhängigen PDF.

Autor: Jürgen S. (jurs)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Reiner schrieb:
> Der attiny85 ist nackt.

Nackt, also ohne irgendeinen  Bootloader drauf?

Und Programme kannst Du mit einem ISP-Programmer draufladen?
Aber eine (tone() Funktion für die Arduino-IDE zum Erzeugen von 
Piepstönen hast Du nicht?


Das ist jetzt natürlich etwas ungünstig. Du hast nix in Sachen tone() 
Funktion, und ich habe nix in Sachen AtTiny, womit man ohne tone() 
Funktion Töne machen könnte.

Was würdest Du davon halten:
Eine kleine Ersatzfunktion für tone() machen, die eine Rechteckfrequenz 
an einem Ausgang einfach in einerblockierenden Schleife erzeugt, mit 
delayMicroseconds() Aufrufen zwischen zwei Flankenwechseln, entsprechend 
der gewünschten Frequenz. Das wäre ja fast überhaupt kein Aufwand.

Also eine IDE mit den Funktionen digitalWrite() und delayMicroseconds() 
hast Du für Deinen AtTiny Controller und kannst Programme mit diesen 
beiden Funktionen mit Deiner IDE schreiben und dann auch irgendwie auf 
den Controller laden, und sei es außerhalb der IDE mit ISP-Programmer?

Was wolltest Du denn als Funktionsumfang jetzt genau haben? Exakt das, 
wie es hier beschrieben wurde:
Ein Pin als INPUT für einen Tastschalter
Ein Pin als OUTPUT für den Piezo-Lautsprecher
Und wenn man den Tastschalter drückt, soll eine zufällig ausgewählte der 
100 Melodien spielen?

Nichts weiter, ja?

Ich kann ja mal probieren, "tone()" aus meinem Sketch rauszunehmen und 
durch eine Ersatzfunktion zu ersetzen.
Das sollte eigentlich funktionieren.
Kann aber bis morgen dauern.
Ich poste dann den geänderten Arduino-Code hier in den Thread hinein, 
und ohne tone() im Code sollte das dann auch für einen AtTiny85 in der 
Arduino-IDE kompilierbar sein.

Autor: Jürgen S. (jurs)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Reiner schrieb:
> Der attiny85 ist nackt.
> Ich hab auch schon versucht ein Bsp. Wie hier genannt probiert, da kommt
> nur beim testen eine knackende Tonfolge. Also keine Melodie, auf dem UNO
> läuft der Test.. Ich hatte mir hier auch die zip für den 85
> runtergeladen. Aber nix...
> Ich wäre für den download für arduino 1.6.1. Sehr dankbar.
>

OK, hier erstmal ein ganz einfaches Testprogramm, nur zum Testen, ob 
Dein AtTiny damit drei Töne erzeugen kann:
----- schnipp - hier fängt das Testprogramm an

const byte SPEAKERPIN=9;

void jursTone(const byte speakerPin,const int frequency, const int duration)
{
  pinMode(speakerPin,OUTPUT);
  unsigned long startTime=millis();
  int halfPeriod=1000000L/frequency/2;
  while(millis()-startTime<duration)
  {
    digitalWrite(speakerPin,HIGH);
    delayMicroseconds(halfPeriod);
    digitalWrite(speakerPin,LOW);
    delayMicroseconds(halfPeriod);
  }
}


void dreiTonKlang()
{
  jursTone(SPEAKERPIN,660,1000);
  delay(200);
  jursTone(SPEAKERPIN,550,1000);
  delay(200);
  jursTone(SPEAKERPIN,440,1000);
  delay(200);
    
}
  
  
  



void setup() 
{
  dreiTonKlang();

}

void loop() 
{

}


// ----- schnapp - Ende des Testprogramms

Bei jedem Start/Reset des Controllers wird in der setup() Funktion eine 
Dreitonfolge abgespielt:
1000ms lang 660 Hz
200 ms Pause
1000ms lang 550 Hz
200 ms Pause
1000ms lang 440 Hz
- danach Pause bis zum nächsten Reset
Verwendet werden nur ganz wenige Arduino-Funktionen, die Du in der IDE 
auch für AtTiny zur Verfügung haben solltest:
- pinMode()
- digitalWrite()
- millis()
- delay()
- delayMicroseconds()

Wenn das funktioniert und Du damit die Dreitonfolge auf Deinem AtTiny 
abspielen kannst, dann sollte das mit der 100-Melodien-Klingel vom 
Prinzip her auch möglich sein.

Aber teste bitte erstmal die Dreitonfolge!
Funktioniert das?

Autor: Reiner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So guten Morgen zusammen!
Nach dem Kaffee gleich ran gesetzt und probiert.
Status:
Die 3 Tonfolge lässt sich problemlos auf nen ATTiny85 flashen. Habe die 
Ports( Pin ) nur geändert auf "1" um auch die Schaltung wie hier 
beschrieben, zu testen. Das funktioniert soweit ganz gut.
Nun zu der Frage.
Es soll eine Klingel werden. Anstelle des Optokoppler, verwende ich aber 
ein Schaltrelais, welches beim betätigen des Klingelknopfes anzieht und 
somit einen Minusimpuls auf das Reset vom µC abgibt, um den AT immer 
wieder eine "Tonfolge --> Melodie" zu entlocken. Ob nun zufällige 
Wiedergabe oder immer der Reihe nach von 0 -100 ist völlig egal. Für 
mich wäre sogar denkbar die Titel Anzahl zu verringern und da dafür aber 
längere Melodien zu erhalten.
Ich will ja nicht dreist sein oder klingen, da ich von schreiben solcher 
Programme eigentlich keine Ahnung habe, würde ich dich bitten, Deiner 
Kreativität freien Lauf zu lassen und überrasche mich. Vielleicht noch 
als Denkanstoß. Die Klingel soll dann Ihren Platz bei meiner Mutter 
finden, da ihr der Schrille Klingelton einer mechanischen Glocke 
gewaltig auf den Nerv geht. (Mutter = "älteres" Baujahr = also, ältere 
bekannte Melodien...

Dann lass ich mich mal überraschen. Schaue heute hin und wieder mal hier 
rein. Ist ja fast wie Weihnachten. Hab ich was,  hab ich nichts.....

Danke im voraus.
L.G.
Reiner

Autor: bernte (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Jürgen,

hatte dich gestern angeschrieben wegen der Arduino Datei.

besten Gruß

Autor: Jürgen S. (jurs)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Reiner schrieb:
> Status:
> Die 3 Tonfolge lässt sich problemlos auf nen ATTiny85 flashen. Habe die
> Ports( Pin ) nur geändert auf "1" um auch die Schaltung wie hier
> beschrieben, zu testen. Das funktioniert soweit ganz gut.

Na wunderbar!
Wenn Dein AtTiny die drei Töne der Dreitonfolge abspielen kann, dann 
sollte es auch keine prinzipiellen Hindernisse beim Abspielen von 
gepiepsten "Melodien" mit mehr Tönen und mehr verschiedenen Noten geben.
Nachdem inzwischen auch " bernte (Gast)" Interesse an einem Arduino-Code 
gezeigt hat, werde ich das Originalprogramm mal soweit 
konvertieren/adaptieren, so dass es auf jedem Micocontroller laufen 
sollte, der von der Arduino-IDE unterstützt wird, und den Code dann hier 
posten.


> Nun zu der Frage.
> Es soll eine Klingel werden. Anstelle des Optokoppler, verwende ich aber
> ein Schaltrelais, welches beim betätigen des Klingelknopfes anzieht und
> somit einen Minusimpuls auf das Reset vom µC abgibt, um den AT immer
> wieder eine "Tonfolge --> Melodie" zu entlocken. Ob nun zufällige
> Wiedergabe oder immer der Reihe nach von 0 -100 ist völlig egal. Für
> mich wäre sogar denkbar die Titel Anzahl zu verringern und da dafür aber
> längere Melodien zu erhalten.
> Ich will ja nicht dreist sein oder klingen, da ich von schreiben solcher
> Programme eigentlich keine Ahnung habe, würde ich dich bitten, Deiner
> Kreativität freien Lauf zu lassen und überrasche mich. Vielleicht noch
> als Denkanstoß. Die Klingel soll dann Ihren Platz bei meiner Mutter
> finden, da ihr der Schrille Klingelton einer mechanischen Glocke
> gewaltig auf den Nerv geht. (Mutter = "älteres" Baujahr = also, ältere
> bekannte Melodien...

Musikwünsche können von mir leider NICHT berücksichtigt werden.

Wer selbst Lieder in dem von egberto damals erfundenen Datenformat 
beitragen möchte, der kann die Daten hier posten und ich kann es dann 
als Melodie Nummer 101, 102, 103, 104, und so weiter gerne einbauen. 
Aber ich setze mich nicht hin und besorge mir Notenblätter von 
Wunschmelodien, um diese in das Datenformat zu codieren und in Daten und 
Code des Programms einzubauen.

Was ich machen könnte: RTTTL-Player: Wenn jemand seine Wunschmelodien 
hier als RTTTL-Strings postet, dann kann ich ggf. ein ANDERES PROGRAMM 
für Arduino hier posten, das in der Lage ist, RTTTL-Stringformat auf 
Piezo-Laufsprecher abzuspielen. Wunschlieder also nur für den, der auch 
selbst liefert: Wer als Wunschlied aus den 1920er Jahren anstelle von 
"ausgerechnet Bananen" (das hat egberto damals in Datenform als Melodie 
mitgeliefert) stattdessen "mein kleiner grüner Kaktus" gepiepst bekommen 
möchte und dafür einen Code braucht, der müßte die Noten dafür in einem 
brauchbaren Format selber liefern, also entweder im "egberto-Format" 
oder im "RTTTL-Stringformat". Dann will ich gerne prüfen, wie ich das in 
den Code einbaue.

Ansonsten werde ich hier demnächst einen Arduino-Code zum Abspielen von 
genau denjenigen 100 Melodien bzw. Frequenz-Tonfolgen posten, die 
egberto im Jahr 2008 hier zur Verfügung gestellt hat.

Und den Code kann sich dann jeder, der daran interessiert ist, mit der 
Arduino-IDE kompilieren und auf x-beliebige Atmega und ARM Cortex 
Controller oder auf AtTiny85 Controller hochladen, wie er Spass dran 
hat.

Aber zum Einbau weiterer oder anderer Melodien würde ich etwas 
Unterstützung benötigen.

Autor: Jürgen S. (jurs)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
bernte schrieb:
> Hallo Jürgen,
>
> hatte dich gestern angeschrieben wegen der Arduino Datei.
>
> besten Gruß

Hallo, ich habe es mir hier vorgemerkt und werde in den kommenden Tagen 
einen Arduino-Code für eine konvertierte/adaptierte 100-Melodien-Klingel 
posten, der dann in der Arduino-IDE für jeden von der IDE untersützten 
Controller kompiliert werden kann, passend für alles:
- Atmega-Controller (Atmega168, Atmega328, Atmega2560 etc.
- AtTiny85 Controller
- ARM Cortex
- ESP8266 Controller

Und wer will, kann es dann piepsen lassen
Aber eben immer nur die 100 Tonfolgen, die egberto damals reingepackt 
hat.
Wer etwas anderes als das möchte, soll selbst die Tonfolge(n) liefern, 
die er haben möchte.
Stay tuned - den Arduino-Code hänge ich dann hier an den Thread dran.

: Bearbeitet durch User
Autor: bernte (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
THX

Autor: Reiner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Super, dann warte ich auf Deinen Post mit den herkömmlichen Liedern von 
"ehemals" Da ich momentan in der guten Lage bin, mich langfristigen 
Projekten zu widmen, setze ich mich mal dran, und werde mir mit Hilfe 
der Vorlage von Noten aus Bernd seinem ehemaligen Post, einige Melodien 
zusammenstellen. Kann aber bissel dauern, den mein Notenverständnis ist 
gleich 2 und bei 3 fängt ein Toastbrot an zu singen. Aber ich krieg das 
schon hin.
Hab da auch schon so ne Idee wie es gehen könnte. bernd hat ja in seiner 
Datei eine "txt" Datei mit "Lied". Wenn ich davon die noten mit der 
Frequenz nehme z.B. "C" mit 262, dann gehe ich jetzt mal davon aus, das 
wenn ich von dir einen Ton nehme (z.B. 440,1000) und ich die 440 durch 
262 ersetze, dann den Ton "C" bekomme. (Richtig?)
Notenbücher gibts ja tausende und da dann die Lieder (die einzelnen 
Noten)so zu setzen das es "klingt", dürfte kein Problem sein. 
Voraussetzung ist, das es so funktioniert wie ich mir das gerade 
vorgestellt habe.
Vielleicht kannste ja daraus dann was machen. Mal sehen wie die 
Melodieklingel ankommt, wenn Sie dann bei Muttern läuft, vielleicht ist 
dann ja eine zweite zu Weihnachten drin, Also nein, nur ein neuer Attiny 
mit anderen Melodien, meine ich.
In diesem Sinne voller Erwartungen auf den "Download"
L.G. Reiner

Autor: Reiner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab das ganze jetzt zum Spass mal mit Atmelstudio 6.0 probiert, weil 
ja hex file und so...
Da käme dann die Meldung bei mir...
Vielleicht dazu ne Idee?

Reading | ################################################## | 100% 
0.00s

avrdude.exe: Device signature = 0x1e950f
avrdude.exe: NOTE: "flash" memory has been specified, an erase cycle 
will be performed
             To disable this feature, specify the -D option.
avrdude.exe: erasing chip
avrdude.exe: reading input file "Debug\Klingel-ATTINY.hex"
avrdude.exe: can't open input file Debug\Klingel-ATTINY.hex: No such 
file or directory
avrdude.exe: read from file 'Debug\Klingel-ATTINY.hex' failed

avrdude.exe done.  Thank you.

Autor: egberto (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Jürgen + "Klingelgemeinde",

Vielen Dank für das Lob + die Anregungen und Modifikationen!!

Nur zur Historie:

Ich hatte die Klingel ursprünglich mal für die C-Control 1 gebaut - da 
wurde mir die Hardware aber zu teuer (pro Baustein damals 50 Euro (oder 
DM?)).

Die Klingeltöne habe ich nicht selbst gemacht, die sind aus Nokia 
Klingeltönen (RTTTL) mit einem Konverter + Handarbeit erzeugt.

Das ist dann wahrscheinlich auch der einfachste Weg, neue Melodien 
einzufügen
bzw. man schreibt gleich einen rtttl Interpreter (meine Chips hatten 
dafür aber zu wenig Platz).

Viel Spaß,

egberto

Autor: Stromtuner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du kannst Dir ein Midifile schnappen und den dich interessierenden Kanal 
rausziehen und mit einem kleinen Phyton-Script die Notendaten 
generieren.
Elm Chan hat das doch mit seiner Spieldose vorgemacht. 6fach Polyphon 
mit DDS. kein 50%50 RTTL-gequicke aus den 90ern.
Oder Du packst Dir eine Wavedatei auf eine Micro-SD Karte.

Das der Thread nochmal hochgeholt wurde...

StromTuner

Spieldose:  http://elm-chan.org/works/mxb/report.html
Waveplayer: http://elm-chan.org/works/sd8p/report.html

Autor: Jürgen S. (jurs)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
egberto schrieb:
> Hallo Jürgen + "Klingelgemeinde",
>
> Vielen Dank für das Lob + die Anregungen und Modifikationen!!
>
> Nur zur Historie:
>
> Ich hatte die Klingel ursprünglich mal für die C-Control 1 gebaut - da
> wurde mir die Hardware aber zu teuer (pro Baustein damals 50 Euro (oder
> DM?)).
>
> Die Klingeltöne habe ich nicht selbst gemacht, die sind aus Nokia
> Klingeltönen (RTTTL) mit einem Konverter + Handarbeit erzeugt.
>
> Das ist dann wahrscheinlich auch der einfachste Weg, neue Melodien
> einzufügen
> bzw. man schreibt gleich einen rtttl Interpreter (meine Chips hatten
> dafür aber zu wenig Platz).
>
> Viel Spaß,
>
> egberto

Mensch, der egberto!
Du lebst noch!
Und Du postest sogar in Deinem bald neun Jahre alten Thema immer noch 
mit!

Das finde ich ja SUPER!
Insbesondere im Vergleich zu den Themenstartern heutezutage, die oft 
nicht über die Aufmerksamkeitsspanne einer Eintagsfliege hinauskommen 
und manchmal bereits auf Antworten, die neun Stunden nach der Erstellung 
eines Themas geschrieben wurde, schon überhaupt nicht mehr reagieren und 
auf nimmer Wiedersehen aus dem Forum verschwinden.

Dass Du Dich auch nach fast neun Jahren immer noch um Antworten in 
Deinem alten Thema kümmerst, fällt mir um so positiver auf.So ganz aus 
der Mode gekommen sind Piepstöne über Piezo-Lautsprecher bei 
Mikrocontroller-Basteleien ja nie. Sei es als Türklingel, als Weckalarm 
für Wecker, als Warn-Alarmgeber für alle möglichen 
Automatisierungsaufgaben, zur Untermalung von Lichteffekten bei 
LED-Spielereien an Weihnachtsdekoration oder im RC- oder sonstigem 
Modellbau.

Die Mikrocontroller werden moderner, vielbittiger, schneller, mit mehr 
RAM und Programmspeicher, aber das Piezo-Piepsen bleibt uns als Geräusch 
erhalten, teils sogar mit denselben alten Tonfolgen von anno dunnemals.
;-)

: Bearbeitet durch User
Autor: Jürgen S. (jurs)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Reiner schrieb:
> avrdude.exe: Device signature = 0x1e950f

Offenbar liest Dein ISP-Programmer die falsche Device-Signatur.

Mein Google sagt, ein AtTiny85 sollte die Signatur 1E 93 0B haben.

Falsche Brenngeschwindigkeit?

Autor: Jürgen S. (jurs)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So, und hier nach über acht Jahren nun eine Arduino-Version der 
100-Melodien-Klingel:
// Anfangdes Arduino-Programms
const byte BUTTONPIN=2;
const byte SPEAKERPIN=9;
const byte MELODIES=100;
const uint16_t ton[]PROGMEM=
{
262, // c    tone frequenciesin Hz
277, //cis
294, //d
311, //dis
330, //e
349, //f
370, //fis
392, //g
416, //gis
440, //a
466, //b
495, //h
524, //c'
554, //cis'
588, //d'
622, //dis'
660, //e'
698, //f'
740, //fis'
784, //g'
831, //gis'
880, //a'
929, //b'
992, //h'
1050, //c''
1106, //cis''
1179, //d''
1244, //dis''
1316, //e'
1397, //f''
1562, //g'' auf position von fis'' verschoben
};



const uint8_t duration[] PROGMEM=
{
2, //1/32 Zeit in 20 ms Schritten
3, //1/32.
4, //1/16
6, //1/16.
8, //1/8
12,//1/8.
16,//1/4
24,//1/4.
};


const uint8_t lied[] PROGMEM = {

1 //Lied Nr. 1 Offset:0

,0,136,128,107,128,72,64,72,141,136,134,136,128,111,128,72,64,72,144,143,139,136,143,148,72,70,64,70,131,139,200,200,192,82,143,141,139,200,171,72,64,72,141,136,134,200,175,72,64,72,144,143,139,136,143,148,72,70,64,70,131,139,200,200

,2 //Lied Nr. 2 Offset:65

,65,3,3,67,131,65,65,65,65,4,4,68,132,67,67,67,65,3,3,67,131,65,65,65,65,4,4,68,132,67,66,65,77,236,72,70,232

,4 //Lied Nr. 3 Offset:103

,141,8,10,72,6,5,72,8,10,79,13,12,74,12,205

,4 //Lied Nr. 4 Offset:119

,13,18,13,20,13,16,18,13,21,13,23,13,20,21,13,20,13,18,13,20,13,16,18,13

,3 //Lied Nr. 5 Offset:144

,111,0,111,0,111,0,75,0,18,111,0,75,0,18,175,64,118,0,118,0,118,0,87,0,18,110

,2 //Lied Nr. 6 Offset:171

,13,12,77,8,0,8,0,4,0,4,0,1,0,1,0,13,12,77,9,0,9,0,6,0,70,1,0,1,0,13,12,77,8,0,8,0,4,0,4,0,1,0,1,0,8,6,4,3,1,3,4,1,4,6,72,64,79,13,15,11,15,10,15,8,15,15,0,15,0,15,0,79,13,15,11,15,10,15,8,15,15,0,15,0,15,0,8,6,4,3,1,3,4,1,4,6,129

,3 //Lied Nr. 7 Offset:269

,73,66,0,78,11,73,66,0,73,7,6,7,8,9,66,68,134,128,73,66,0,78,11,73,66,0,73,7,6,7,8,9,66,68,130

,3 //Lied Nr. 8 Offset:305

,8,8,72,74,69,0,104,74,69,0,104,74,72,7,134

,3 //Lied Nr. 9 Offset:321

,15,0,18,0,15,0,16,0,13,0,80,64,21,0,16,0,85,64,20,0,16,0,84

,3 //Lied Nr. 10 Offset:345

,72,77,81,77,79,64,18,17,15,13,76,79,72,76,141,81,64,72,77,81,77,79,64,18,17,15,13,76,79,72,76,141

,3 //Lied Nr. 11 Offset:378

,69,71,72,74,72,71,69,68,68,69,71,5,4

,3 //Lied Nr. 12 Offset:392

,76,74,76,74,76,74,76,10,109,76,77,76,77,76,77,15,113,79,81,79,81,79,81,15,108,74,76,74,76

,3 //Lied Nr. 13 Offset:422

,77,77,74,76,10,76,72,64,77,77,74,12,10,0,104,64,69,69,72,70,5,70,13,1,3,69,5,5,0,5,72

,3 //Lied Nr. 14 Offset:454

,15,8,8,15,8,8,15,8,16,8,15,8,8,15,8,8,15,8,16,8,14,7,7,14,7,15,7,14,7,7,14,7,7,14,7,15,7

,2 //Lied Nr. 15 Offset:492

,15,16,15,16,15,16,15,16,15,15,16,17,18,19,20,84,128,84,128,87,64,77,64,84,128,84,128,82,64,83,64,84,128,84,128,87,64,77,64,84,128,84,128,82,64,83,64,87,84,207,207,0,87,84,206,206,0,87,84,205,205,64,75,77

,5 //Lied Nr. 16 Offset:557

,8,13,16,15,13,16,13,15,13,9,11,136,8,13,16,15,13,16,13,15,13,8,7,134,6

,3 //Lied Nr. 17 Offset:583

,74,74,81,17,204,77,76,77,79,77,76,74,74,74,81,17,204,77,76,77,79,77,76

,4 //Lied Nr. 18 Offset:607

,145,143,13,8,8,8,8,8,15,13,12,8,8,8,8,0,15,13,12,8,8,8,8,8,10,12,13,12,13,17,20

,2 //Lied Nr. 19 Offset:639

,5,0,6,5,5,0,5,5,6,5,5,5,4,5,5,5,5,0,6,5,5,0,6,5,6,5,5,5,4,5,5,5,3,0,5,3,3,0,5,3,5,3,3,3,1,3,3,3,3,0,5,3,3,0,5,3,5,3,3,3,1,3,3,3

,2 //Lied Nr. 20 Offset:704

,173,40,100,136,225,128,173,40,100,136,225,128,171,42,104,138,227,128,173,40,100,136,225

,2 //Lied Nr. 21 Offset:728

,24,0,25,0,27,24,20,17,24,20,17,13,20,17,13,10,128,25,0,27,0,29,25,22,18,25,22,18,15,22,18,15,12,192,31,29,25,22,18,15,12,25,22,18,15,12,18,15,12,18,145

,4 //Lied Nr. 22 Offset:780

,8,8,10,10,5,5,72,8,8,10,10,5,5,72,8,8,10,10,13,13,76,76,74,72,70,6,6,8,8,3,3,70,6,6,8,8,3,3,70,6,6,8,8,10,12,77,74,72,69,65

,3 //Lied Nr. 23 Offset:831

,79,15,13,76,141,138,74,79,79,13,108,79,15,13,76,141,138,76,72,138,64,76,77,79,145,113,114,79,177,79,15,13,76,141,138,74,79,79,13,108,79,15,13,76,141,138,76,72,106

,3 //Lied Nr. 24 Offset:881

,79,17,109,81,79,13,106

,3 //Lied Nr. 25 Offset:889

,74,64,74,64,74,13,113,64,81,15,13,81,15,13,81,15,13,17,17,15,13

,2 //Lied Nr. 26 Offset:911

,141,18,18,18,0,79,77,170,77,18,18,18,0,81,79,177,81,81,77,79,77,81,77,79,74,77,72,75,74,70

,2 //Lied Nr. 27 Offset:942

,68,69,192,71,72,192,68,69,0,71,72,0,77,76,0,68,69,0,76,203,192,10,8,5,3,197,192,68,69,128,71,72,128,68,69,0,71,72,0,77,76,0,68,69,0,81,208

,3 //Lied Nr. 28 Offset:990

,141,168,64,8,10,12,141,168,64,8,10,12,141,111,17,146,113,15,212

,2 //Lied Nr. 29 Offset:1010

,8,10,11,1,3,4,6,8,10,11,13,15,16,0,18,20,22,215,0,21,23,21,0,19,0,21,0,19,0,21,0,19,0,18,0,16,0,79,78,0,16,0,17,0,82,0,15,0,11,9,0,11,137,0,71,6,0,198,198

,2 //Lied Nr. 30 Offset:1070

,10,15,10,15,202,134,136,195,128,10,15,10,15,202,134,136,205,128,10,15,10,15,202,134,69,67,193,128,10,15,10,15,202,136,227

,1 //Lied Nr. 31 Offset:1106

,78,207,207,192,192,78,239,192,192,49,47,46,207,207,192,192,78,207,207,192,192,76,237,192,192,47,45,44,205,205,192,192,75,236,192,192,13,12,10,44,234,192,192,10,8,7,42,232,232

,3 //Lied Nr. 32 Offset:1156

,129,198,168,9,11,201,161,65,166,72,73,65,41,33,13,235

,3 //Lied Nr. 33 Offset:1173

,8,8,8,8,72,74,72,69,64,1,3,1,67,67,65,133

,3 //Lied Nr. 34 Offset:1190

,81,150,113,19,149,78,78,147,113,15,145,106,10,140,108,14,143,79,81,147,117,22,184

,2 //Lied Nr. 35 Offset:1214

,15,14,15,17,18,17,18,19,20,19,20,22,23,22,20,23,22,10,14,17,22,20,18,17,18,17,15,14,15,10,12,14,15,14,15,17,18,17,18,19,20,19,20,22,23,22,20,23,22,10,14,17,22,20,18,17,15

,2 //Lied Nr. 36 Offset:1272

,10,8,202,202,8,6,3,5,194,0,163,192,10,8,202,202,101,102,98,195

,2 //Lied Nr. 37 Offset:1293

,69,0,6,8,0,173,0,67,0,5,198,64,72,0,10,12,0,178,64,74,0,12,141,143,145

,3 //Lied Nr. 38 Offset:1319

,67,72,200,76,10,8,204,138,200,133,195,67,69,200,76,10,8,204,74,76,207,207

,3 //Lied Nr. 39 Offset:1342

,13,82,22,82,13,76,148,18,81,20,81,13,74,146,13,82,22,82,13,76,148,18,81,13,79,17,210

,1 //Lied Nr. 40 Offset:1370

,12,15,12,15,12,15,12,15,15,18,15,18,15,18,15,18,18,22,18,22,18,22,18,22

,3 //Lied Nr. 41 Offset:1395

,72,72,8,12,79,79,79,15,13,76,77,77,13,12,74,3,76,8,74

,4 //Lied Nr. 42 Offset:1415

,12,17,21,22,21,17,12,10,9,10,108

,2 //Lied Nr. 43 Offset:1427

,141,64,40,0,232,64,37,0,134,0,42,0,136,0,33,0,225

,1 //Lied Nr. 44 Offset:1445

,10,12,10,12,10,12,10,128,10,12,10,12,10,12,10,12,10

,2 //Lied Nr. 45 Offset:1463

,77,75,77,72,68,72,129,77,75,77,72,68,72,129,77,79,80,13,80,13,80,79,11,79,11,79,77,75,72,75,141

,2 //Lied Nr. 46 Offset:1495

,41,47,48,41,110,172,201,201,41,47,48,41,110,172,201,201

,3 //Lied Nr. 47 Offset:1512

,11,7,11,16,76,0,11,9,6,9,14,75,9,7,64,7,4,73,4,64,9,7,75,9,7

,3 //Lied Nr. 48 Offset:1538

,15,0,13,0,10,10,13,13,15,15,13,10,64,15,0,17,17,15,0,12,12,15,0,17,0,15,12

,4 //Lied Nr. 49 Offset:1566

,72,74,76,13,12,12,10,10,8,8,1,67,170

,2 //Lied Nr. 50 Offset:1580

,12,10,140,133,64,13,12,77,76,138,64,13,12,141,133,64,10,8,74,72,71,74,168

,3 //Lied Nr. 51 Offset:1604

,71,74,108,71,74,13,140,71,74,108,74,167

,2 //Lied Nr. 52 Offset:1617

,102,11,176,79,43,40,45,210,210

,3 //Lied Nr. 53 Offset:1627

,143,76,13,143,0,76,13,175,81,79,77,76,77,108,0,72,10,140,0,74,76,167,64,136,106

,2 //Lied Nr. 54 Offset:1653

,69,70,72,13,72,13,8,13,72,143,72,104,141,128,70,72,74,13,74,13,10,13,74,143,72,104,141

,2 //Lied Nr. 55 Offset:1681

,79,81,211,211,19,20,19,17,15,19,81,0,246,246,0,84,83,207,207,0,204,0,202,202,0,79,81,211,211,19,20,19,17,15,19,81,0,214,214,0,147,0,216,216,0,150,0,209,209

,3 //Lied Nr. 56 Offset:1731

,104,5,129,133,136,205,113,15,141,133,135,200

,3 //Lied Nr. 57 Offset:1744

,82,81,77,10,207,64,77,15,81,77,202

,4 //Lied Nr. 58 Offset:1756

,5,17,5,17,5,18,5,20,5,17,5,17,5,18,5,15,5,17,5,17,5,18,5,20,5,17,5,17,5,18,5,15,5,17,13,5,15,5,12,5,13,5,10,5,12,5,9,202

,5 //Lied Nr. 59 Offset:1805

,37,5,5,37,6,8,10,72,0,8,10,10,8,77,72,6,101,0,5,6,8,3,67,3,5,6,65

,4 //Lied Nr. 60 Offset:1833

,76,13,5,10,13,15,8,12,77,10,13,17,82,17,15,13,5,10,13,12,3,8,138

,3 //Lied Nr. 61 Offset:1857

,141,77,12,13,15,13,12,10,77,13,10,141,77,12,13,10,8,5,6,200,8,6,5,3,5,6,8,10,136,136,8,10,12,10,8,6,5,3,5,3,65,65,1,3,69,70,131,200

,4 //Lied Nr. 62 Offset:1906

,65,65,3,6,5,3,72,72,8,10,5,6,67,67,3,6,5,3,1,12,10,8,6,5,3,129

,6 //Lied Nr. 63 Offset:1933

,17,22,24,121,17,89,17,114,0,17,18,27,25,120,0,15,88,22,148

,5 //Lied Nr. 64 Offset:1953

,19,19,19,19,84,19,81,17,22,83,79,128

,3 //Lied Nr. 65 Offset:1966

,5,106,5,113,10,78,12,14,74,69,74,83,81,14,15,177,0,5,74,83,81,14,15,81,12,14,74,69,74,14,15,108,10,138

,4 //Lied Nr. 66 Offset:2001

,100,3,1,3,4,8,107,10,8,10,11,15,178,64,102,5,3,5,6,10,109,12,10,12,13,17,180,128

,2 //Lied Nr. 67 Offset:2030

,134,102,8,106,8,102,1,131,134,193,134,136,138,104,6,136,104,10,200,129,97,1,134,97,1,131,99,3,200,133,101,5,133,101,3,129,99,5,198

,5 //Lied Nr. 68 Offset:2070

,10,15,14,15,17,18,17,18,20,150

,5 //Lied Nr. 69 Offset:2081

,6,6,10,11,13,11,10,6,6,10,11,13,10,3,3,6,8,10,8,6,3,3,10,8,0,70

,5 //Lied Nr. 70 Offset:2108

,40,35,11,10,13,10,6,40,35,11,10,13,10,6,43,38

,4 //Lied Nr. 71 Offset:2125

,150,86,24,217,64,25,25,89,24,123,89,88,86,145,81,18,212,64,20,20,84,19,118,84,82,81,143,79,17,210,64,18,18,82,17,116,82,81,79,209,64,79,81,82,84,64,153,152,87,64,150,86,24,217,64,25,25,89,24,123,89,88,86,145,81,18,212,64,20,20,84,19,118,84,82,81,143,79,17,210,64,18,18,82,17,116,82,81,79,205,64,143,76,202

,3 //Lied Nr. 72 Offset:2220

,72,77,79,81,170,64,10,12,77,15,77,74,0,76,13,76,10,72,77,79,81,178,145,239

,2 //Lied Nr. 73 Offset:2245

,73,0,73,0,76,0,144,0,206,0,233,0,73,0,73,0,71,0,140,0,201,201,128,73,0,73,0,76,0,144,0,206,0,245,64,83,0,83,0,80,0,140,0,245,245

,3 //Lied Nr. 74 Offset:2291

,8,13,0,13,15,0,15,20,0,20,17,64,84,0,84,0,18,79

,3 //Lied Nr. 75 Offset:2310

,69,77,76,74,5,5,13,13,12,12,10,0,70,77,76,74,6,6,13,13,12,12,10

,2 //Lied Nr. 76 Offset:2334

,175,17,0,114,0,111,0,18,0,18,0,17,0,15,0,113,0,106,0,177,18,0,116,0,113,0,20,0,20,0,18,0,17,0,143

,2 //Lied Nr. 77 Offset:2370

,72,69,72,173,177,111,17,82,138,64,74,77,86,148,64,79,81,82,145,64,77,79,81,175,173,140

,3 //Lied Nr. 78 Offset:2397

,70,6,6,70,6,6,6,6,6,6,6,10,1,1,70,6,6,70,6,6,6,6,6,6,3,1,64,70,6,6,70,6,6,6,6,6,6,6,10,64,173,74,13,10,6,64,128

,3 //Lied Nr. 79 Offset:2445

,84,82,81,10,106,76,13,79,0,82,81,79,8,104,74,12,77,0,81,79,77,70,70,8,74,0,76,76,13,111,200

,2 //Lied Nr. 80 Offset:2477

,71,64,74,64,140,128,71,64,74,64,140,128,71,64,74,64,76,64,79,79,78,78,74,64,236,128,7,72,64,74,64,76,64,72,64,167,133,128,7,72,64,74,64,44,44,72,64,167,133,128,7,72,64,74,64,76,64,72,64,71,64,69,64,67,64,66,64,195,195

,3 //Lied Nr. 81 Offset:2547

,82,17,79,14,77,12,75,10,8,10,11,74,8,141,0,13,10,0,10,10,9,10,18,0,13,13,0,10,11,0,11,11,0,13,143,0,11,8,0,8,8,7,8,17,0,15,15,0,11,10,0,10,10,0,11,141

,3 //Lied Nr. 82 Offset:2604

,20,18,20,18,81,77,64,17,18,20,18,20,18,17,18,20,22,23,22,23,22,84,64,85,84,83,82,16,15,13,15,80,64,16,15,13,15,80,77,84

,2 //Lied Nr. 83 Offset:2645

,14,0,16,0,145,17,0,19,0,81,16,0,14,0,12,0,140,14,0,16,0,144,14,0,16,0,113,0,115,0,81,16,0,14,0,12,0,142,14,0,12,0,140,14,0,16,0,145,17,0,19,0,81,16,0,14,0,12,0,140,14,0,16,0,144,14,0,16,0,113,0,115,0,81,16,0,14,0,12,0,142,14,0,12,0,140

,2 //Lied Nr. 84 Offset:2732

,8,74,8,69,77,74,168,8,10,8,10,72,77,172,64,6,72,6,67,76,74,168,8,10,8,10,72,74,165

,2 //Lied Nr. 85 Offset:2762

,1,1,65,1,1,65,1,1,6,72,74,0,1,1,65,1,1,65,10,10,8,69,65,0,1,1,65,1,1,65,1,1,6,72,74,0,6,10,77,13,13,13,11,10,8,6,106,6

,2 //Lied Nr. 86 Offset:2811

,216,145,147,149,150,216,145,128,209,218,150,152,154,156,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,11,10,11,10,11,10,11,10,11,10,11,10,11,10

,3 //Lied Nr. 87 Offset:2860

,81,17,17,17,17,17,81,74,77,81,79,15,15,15,15,15,15,8,0,76,79,81,17,17,17,17,17,17,19,20,22,0,84,81,15,12,0,74,0,74

,4 //Lied Nr. 88 Offset:2901

,109,81,83,22,116,81,77,10,7,7,7,136,0,0,7,7,7,8,107,13,13,13,77

,2 //Lied Nr. 89 Offset:2925

,8,0,13,0,12,0,13,0,15,0,17,0,18,0,116,0,84,82,116,0,84,82,116,0,84,82,84,86,82,84,209,209,64,8,0,13,0,12,0,13,0,15,0,17,0,18,0,116,0,84,82,116,0,84,82,116,0,84,82,81,82,79,81,205

,2 //Lied Nr. 90 Offset:2990

,72,72,72,141,77,212,64,84,118,20,82,212,212

,5 //Lied Nr. 91 Offset:3004

,6,8,8,6,72,0,8,6,8,10,8,6,5,6,6,5,70,0,6,5,6,8,6,69,0,3,5,5,3,69,0,3,5,6,5,3,0,139

,2 //Lied Nr. 92 Offset:3043

,72,141,64,76,138,64,77,79,81,79,77,140,64,8,8,74,77,72,8,8,74,77,72,82,145,64,79,141

,3 //Lied Nr. 93 Offset:3072

,65,3,5,3,5,7,8,7,8,10,8,5,10,12,141,140

,4 //Lied Nr. 94 Offset:3089

,7,7,7,3,0,12,0,5,0,5,0,5,9,9,10,12,10,10,10,5,0,3,0,7,0,7,0,7,5,5,7,5

,2 //Lied Nr. 95 Offset:3122

,81,5,0,5,0,5,0,5,0,5,0,76,5,0,5,0,5,0,5,0,5,0,77,5,0,5,0,5,0,5,0,5,0,74,5,0,5,0,5,0,5,0,5,0,76,5,0,5,0,5,0,72,5,0,5,0,5,0,74,5,0,5,0,5,0,5,0,5,0,71,5,0,5,0,5,0,5,0,5,0,72,5,0,5,0,5,0,5,0,5,0,74,5,0,5,0,5,0,5,0,5,0,71,5,0,5,0,5,0,72,5,0,5,0,5,0,69

,3 //Lied Nr. 96 Offset:3240

,14,11,128,11,9,7,9,11,78,11,78,16,11,128,11,9,7,9,11,78,11,78,16,12,128,12,11,9,11,12,80,19,80,114,112,110,108,75,73

,2 //Lied Nr. 97 Offset:3280

,132,132,104,4,107,8,132,132,104,4,107,8,134,97,12,129,102,4,99,4,97,3,107,1,99,11,132,132,104,4,107,8,132,132,104,4,107,8,134,134,134,104,6,132,136,196

,5 //Lied Nr. 98 Offset:3327

,22,13,17,22,24,17,13,24,25,17,13,25,19,15,22,19,17,13,22,77,17,13,10,8,8,10,74

,2 //Lied Nr. 99 Offset:3355

,72,139,77,111,16,79,141,74,102,8,74,139,72,104,6,72,138,70,131,72,139,77,111,17,79,141,74,102,8,74,107,10,72,103,5,71,136

,4 //Lied Nr. 100 Offset:3393

,116,17,17,79,116,17,81,17,15,116,81,81,15,84,20,17,81,17,15,82,79,79,15,13,81,77,77,13,75,141

};




uint16_t liedofs [] = { //Anfaenge der Lieder
0 //Lied 1
,65 //Lied 2
,103 //Lied 3
,119 //Lied 4
,144 //Lied 5
,171 //Lied 6
,269 //Lied 7
,305 //Lied 8
,321 //Lied 9
,345 //Lied 10
,378 //Lied 11
,392 //Lied 12
,422 //Lied 13
,454 //Lied 14
,492 //Lied 15
,557 //Lied 16
,583 //Lied 17
,607 //Lied 18
,639 //Lied 19
,704 //Lied 20
,728 //Lied 21
,780 //Lied 22
,831 //Lied 23
,881 //Lied 24
,889 //Lied 25
,911 //Lied 26
,942 //Lied 27
,990 //Lied 28
,1010 //Lied 29
,1070 //Lied 30
,1106 //Lied 31
,1156 //Lied 32
,1173 //Lied 33
,1190 //Lied 34
,1214 //Lied 35
,1272 //Lied 36
,1293 //Lied 37
,1319 //Lied 38
,1342 //Lied 39
,1370 //Lied 40
,1395 //Lied 41
,1415 //Lied 42
,1427 //Lied 43
,1445 //Lied 44
,1463 //Lied 45
,1495 //Lied 46
,1512 //Lied 47
,1538 //Lied 48
,1566 //Lied 49
,1580 //Lied 50
,1604 //Lied 51
,1617 //Lied 52
,1627 //Lied 53
,1653 //Lied 54
,1681 //Lied 55
,1731 //Lied 56
,1744 //Lied 57
,1756 //Lied 58
,1805 //Lied 59
,1833 //Lied 60
,1857 //Lied 61
,1906 //Lied 62
,1933 //Lied 63
,1953 //Lied 64
,1966 //Lied 65
,2001 //Lied 66
,2030 //Lied 67
,2070 //Lied 68
,2081 //Lied 69
,2108 //Lied 70
,2125 //Lied 71
,2220 //Lied 72
,2245 //Lied 73
,2291 //Lied 74
,2310 //Lied 75
,2334 //Lied 76
,2370 //Lied 77
,2397 //Lied 78
,2445 //Lied 79
,2477 //Lied 80
,2547 //Lied 81
,2604 //Lied 82
,2645 //Lied 83
,2732 //Lied 84
,2762 //Lied 85
,2811 //Lied 86
,2860 //Lied 87
,2901 //Lied 88
,2925 //Lied 89
,2990 //Lied 90
,3004 //Lied 91
,3043 //Lied 92
,3072 //Lied 93
,3089 //Lied 94
,3122 //Lied 95
,3240 //Lied 96
,3280 //Lied 97
,3327 //Lied 98
,3355 //Lied 99
,3393 //Lied 100
};

//Format Lied :

//1. Byte: speed 2 schnell, 3..5 normal
//2. Byte - n Byte Noten


//Aufbau eines Notenbytes:

//Bit
// 7  6  5  4  3  2  1  0
// |__|__|  |__|__|__|__|_Tonhoehe ( 1..31 (C..G'') incl. aller Halbtonschritte
//    |                                             ausser 31: G'' statt FIS''
//    |                                     wenn 0, kein Ton sondern Pause
//    |
//    |___________________________________________Tonlaenge
//
//                                                7: 1/4.
//                                                6: 1/4
//                                                5: 1/8.
//                                                4: 1/8
//                                                3: 1/16.
//                                                2: 1/16
//                                                1: 1/32.
//                                                0: 1/32
//   Ende Lied.h


/*
//Türklingel mit 100 Melodien M. Baudisch 12/2008
*/


void setup() 
{
  // put your setup code here, to run once:
//  Serial.begin(9600);
//  Serial.println("I\nprogram is up and running...");
  pinMode(BUTTONPIN,INPUT_PULLUP);
  pinMode(SPEAKERPIN,OUTPUT);
  jursTone(SPEAKERPIN,440,600);
}

void jursTone(const byte pin,const int frequency, const int duration)
{
  unsigned long startTime=millis();
  int halfPeriod=1000000L/frequency/2;
  while(millis()-startTime<duration)
  {
    digitalWrite(SPEAKERPIN,HIGH);
    delayMicroseconds(halfPeriod);
    digitalWrite(SPEAKERPIN,LOW);
    delayMicroseconds(halfPeriod);
  }
}




uint16_t liedcount;  
uint16_t liedende;
uint8_t liednr=0;
byte lspeed=0;
uint8_t dauer;
uint8_t hoehe;
uint8_t note ;


void playlied(int liednr)
{
//  Serial.print("Melodie Nr.: ");Serial.println(liednr);
   if (liednr==MELODIES) liedende=sizeof(lied); 
   //bei letztem Lied ist Endwert Größe des Arrays
   else liedende=liedofs[liednr]; //ansonsten 1 Byte vor nächstem Lied
  Serial.print(liedofs[liednr-1]);Serial.print(" ");Serial.println(liedende);
//  liedcount=liedofs[liednr-1];
  lspeed= pgm_read_byte(&lied[liedcount]);
//  Serial.print("Speed: ");Serial.print(lspeed);Serial.println();
   for (liedcount=liedofs[liednr-1]+1;liedcount<liedende;liedcount++)
   {
      note=pgm_read_byte(&lied[liedcount]); //Note holen
      Serial.println(note);
      hoehe=note & 0x1f; //Tonhöhe ausmaskieren (5 Bit)
      dauer= pgm_read_byte(&duration[note >> 5]); // 5 Bit nach rechts schieben und Zeit holen
      if (hoehe) //wenn keine Pause, somdern ein Ton
      {
         jursTone(SPEAKERPIN,pgm_read_word(&ton[hoehe-1]),dauer*lspeed*20);
         delay(int(dauer)*int(lspeed)*int(20));
      }
      else // es ist nur eine Pause
       delay(lspeed*dauer*20);
   }
}






byte b,liedNummer;
bool buttonPressed()
{
  static byte oldState;
  byte newState=digitalRead(BUTTONPIN);
  if(newState!=oldState && newState==LOW)  
  {
    oldState=newState;
    return true;
  }
  oldState=newState;
  return false;
}


void loop() 

{
  if (buttonPressed())
  {
  randomSeed(micros());  
  playlied(1+random(100));
  }

}
// Ende des Arduino-Programms


Der Code verwendet nur weniger als eine handvoll Library-Funktionen und 
sollte daher auf jedem Arduino-kompatiblen Board mit zwei freien Pins 
laufen, einschließlich AtTiny85

Getestet habe ich auf Atmega328, das Kompilat ergibt ein 6784 Bytes 
großes Programm.

Als Beschaltung  wird ein Tastschalter an Pin-2
und ein Piezo-Lautsprecher an Pin-9 verwendet.
(Diese Konstanten können im Code natürlich geändert werden.

Die Testbeschaltung ist:
- Tastschalter an Pin-2, schaltet gegen GND
- Piezo-Lautsprecher zwischen Pin-9 und GND

Zur Auswertung des Tastschalters wird im Programm der interne Pull-up 
Widerstand aktiviert

Beim Drücken des Tastschalters wird jedesmal eine der 100 vorhandenen 
Melodien nach dem Zufallsprinzip ausgewählt und abgespielt. Die 
loop()-Funktion dazu lautet einfach:
void loop() 

{
  if (buttonPressed())
  {
  randomSeed(micros());  
  playlied(1+random(100));
  }

}

Der Zufallszahlengenerator wird jedsmal erst beim Drücken des 
Tastschalters neu initialisiert, und zwar mit dem Stand des 
Mikrosekundenzählers, um damit zu verhindern, dass jedesmal nach einem 
Neustart/Reset des Controllers dieselbe "zufällige Reihenfolge 
abgespielt wird, sondern die zufällige Melodie "wirklich zufällig" 
ausgewählt wird, im Moment des Tastendrucks.

Ach ja, Nachtrag zu meinem Beitrag von gestern: Beim Testen des Codes 
habe ich heute noch eine weitere Melodie erkannt (aber ich kann die 
Nummer nicht sagen, da per Zufallsprinzip auf Tastendruck ausgewählt und 
abgespielt):
- eine der Tonfolgen ist: In München steht ein Hofbräuhaus - oans - zwoa 
- gsuffa!

Hinweise: Beim Neustart/Reset wird ein kurzer Kontroll-Piepser 
ausgegeben, danach ist der Tastschalter scharf geschaltet.
Sobald der Tastschalter-Pin gegen GND geschlossen wird, spielt eine der 
Tonfolgen.
 Und"Serial" hat in dem Programm keine Funktion, weil in der setup() 
Funktion kein "Serial.begin(9600)" drinsteht. Ggf. im setup() ergänzen, 
oder alle Zeilen mit Ausgaben auf Serial ignorieren oder aus dem 
Programm herauslöschen.

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es gibt die Möglichkeit, so viel Code einfach als *.ino File anzuhängen. 
Dann erstellt dieses Form sogar automatisch einen Knopf neben dem File, 
der den Code direkt anzeigt.
Also: Bitte verpacken!

Autor: Jürgen S. (jurs)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Markus schrieb:
> Es gibt die Möglichkeit, so viel Code einfach als *.ino File anzuhängen.
> Dann erstellt dieses Form sogar automatisch einen Knopf neben dem File,
> der den Code direkt anzeigt.
> Also: Bitte verpacken!

OK, also auf speziellen Wunsch von Markus nochmal als .ino Datei.

Das nachträgliche Editieren meines Beitrags war leider nicht mehr 
möglich, weil Markus bereits eine Antwort gepostet hat, und damit 
verhindert, dass ich meinen letzten Beitrag nochmal bearbeiten konnte.

Anyway. Viel Spass mit dm Code, wer immer ihn gebrauchen kann!

Autor: bernte (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wenn es an der Stelle eine Möglichkeit gäbe für dreimal Daumen hoch täte 
ich sie hier einfügen

Danke für deine Zeit und Mühe
ich denke ich werde meine Frau heute Abend mit dem Gepiepse nerven
irgendwo sollten noch ein paar Arduino Uno clones rumliegen

Autor: Reiner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Super Sache!!!
Ganz liebe  Dank für Deine große Mühe!
Ich hab natürlich auch gleich mal getestet und gespielt. Auf mein Uno 
mit Atmega328 gibts keine Probleme!! Läuft wie beschrieben.
Jedoch krieg ich es nicht auf den 85.
Fehlermeldung hier:
Ich hab zwar deine Mitteilung bzgl der Seriel Zeilen gelesen, doch wenn 
ich die komplett rauslösche, kommt trotzdem diese Fehlermeldung.
Ich weiß ich kann nerven, aber als µC Anfänger darf man das.

Arduino: 1.6.1 (Windows XP), Platine: "ATtiny, ATtiny85, 8 MHz 
(internal)"

sketch_apr25g.ino: In function 'void playlied(int)':

sketch_apr25g.ino:637:3: error: 'Serial' was not declared in this scope

Fehler beim Kompilieren.

  Dieser Report hätte mehr Informationen mit
  "Ausführliche Ausgabe während der Kompilierung"
  aktiviert in Datei > Einstellungen

Autor: Jürgen S. (jurs)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Reiner schrieb:
>
> sketch_apr25g.ino:637:3: error: 'Serial' was not declared in this scope
>
> Fehler beim Kompilieren.

Ich würde lieber nochmal im Code nach "Serial" suchen und alle Ausgaben 
auf Serial für den AtTiny entfernen, bevor er für den Tiny kompiliert 
wird.

Mir ist beim Drüberschauen über den Code heute aber doch noch ein Bock 
aufgefallen, den ich geschossen habe:
Die Noten werden viel zu stark im "Stakkato" gespielt, weil ich die 
Pause nach dem Spielen einer Note genau so lang mache wie die Spieldauer 
der Note.

Es dürfte besser sein, die Pause zwischen den Noten deutlich kürzer zu 
machen als die Spieldauer der Note, zum Beispiel nur ein fünftel so 
lang:
     jursTone(SPEAKERPIN,pgm_read_word(&ton[hoehe-1]),dauer*lspeed*20);
         delay(dauer*lspeed*4); // kurze Pause nach jedem Ton

Einen Piano-Sound bekommt man mit einer Rechteckfrequenz natürlich nie, 
aber die Pausendauer nach jeder Note ist im geposteten Code wohl zu 
lang, die würde ich wohl von "*20" auf "*4" im delay() nach der Note 
reduzieren.

Autor: Reiner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So liebe klingelgemeinde.....
Ganz großen Dank an alle, insbesondere an Jürgen!  Ich hab jetzt den 
85Igel zum laufen bekommen.  Danke danke danke....
Aber wenn ich ehrlich bin, ich trau mich ja kaum das hier zufragen, 
gibt's noch mehr was mich interessieren würde. Ich Häng noch an einer 
Sache mit 433mhz. Ich komm mit dem virtuelle wire nicht klar. Hab dazu 
schon viel gelesen aber ich steig nicht dahinter. Für heute reichts aber 
erstmal.
Nochmal danke!
In diesem Sinne schönen abend euch allen.

Autor: Reiner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Soooo.
Duten morgen zusammen.
Werden wir mal das schei... Wetter nutzen (bei uns liegt Schnee und es 
schneit weiter) um noch bissel rum zu löten und krach zu machen.
Ich erwähnte ja gestern schon, das ich noch an einem Projekt hänge mit 
433MHz Funk. Soll später mal die Gartenbeleuchtung schalten. Nur schreit 
mich die IDE immer an das irgendwas mit der virtuell wire wäre.

Ich weiß, das Forum hier geht ja ausschlieslich um die Sache mit der 
Melodieklingel, aber mir scheint, der liebe "Jürgen" hat noch viel mehr 
drauf als den Sketch gestern.
Dafür aber noch mal tausend dank! das Teil ist mit ner kleinen 
Verstärkerstufe und nem 8Ohm / 4Watt Lautsprecher in ein Gehäuse 
"geflogen" und dat funzt!!

Ich hab mich schon einige Tage durch Foren gekämpft, bin aber auch nicht 
schlauer als vorher.
Hat vielleicht jemand ne Idee wo ich noch was lesen könnte dazu, oder 
hat gar der  "Jürgen" eine zündende Idee?
Den Sketch gibts ja zu hunderten im Internet, aber keiner davon 
funktioniert.
Na mal schauen, ob ich hier ne vielversprechende Info / Antwort bekomme. 
Denn hier geht es wesentlich netter und freundlicheer zu als in manch 
anderen Foren.
(Da macht "lernen" doch auch Spass. Gerade als Anfänger im Umgang mit 
programmieren und µC im allgemeinen, braucht man keine "unsinnigen" 
Antworten oder "dumme" Komntare.
In diesem Sinne schönen Montag gewünscht.
L.G.  Reiner
DE- SAC - Altenberg / Osterzgebirge

Autor: Reiner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry völlig im Tag vertan, das kommt davon wenn man nur zu Hause hockt.
Schönen Mittwoch meine ich natürlich....

Autor: Mampf F. (mampf) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ui nettes Projekt! Die Lieder landen vmtl bald in einem STM32 mit einem 
Piezo-Piepserl xD

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.