Forum: Analoge Elektronik und Schaltungstechnik Alarmton/Buzzer-Dreiklang erzeugen


von Alexander H. (alexander_h732)


Angehängte Dateien:

Lesenswert?

Hallo,

ich bin auf der Suche nach einer Schaltung, die an einem passiven 
Mini-Piepser(„magnetic buzzer“) eine Art Dreiklang(varierenden Klang) 
erzeugt.
Die Versorgungsspannung liegt bei 2-5V.
Im besten Fall so simpel wie möglich und nur mit (wenigen) 
Standardteilen realisierbar.

Wahrscheinlich werde ich ums Experimentieren nicht herum kommen, aber 
vielleicht hat jemand einen Ansatz. Ich habe bereits schon die üblichen 
Standardschaltungen (zB. die mit zwei Transistoren) aufgebaut und damit 
erhält man nur einen konstanten Ton.


Viele Grüße
Alexander

von Uwe B. (uwe_beis)


Lesenswert?

Alexander H. schrieb:
> so simpel wie möglich und nur mit (wenigen) Standardteilen
... ist natürlich von deinen Kenntnissen und Möglichkeiten abhängig. Die 
µC-Fraktion wird zu einem Arduino o. Ä. greifen, diejenigen, die auch 
Hardware machen können, schaffen das mit einem 8-Pin µC + 
Treiber-Transistor, wer nur Röhren kennt macht's halt mit einem 
19"-Gestell mit Röhren.

Welche Technologien beherrscht du? Rein mit Transistoren würde zunächst 
ein "One-Hot-Zähler" (3 Transistoren, 3 Kondensatoren und 3 Widerstände) 
und dein astabiles Flip-Flop gebraucht, dazu vielleicht ein paar Dioden 
um Kondensatoren oder Widerstände im FF umzuschalten. Ich weiß aber 
nicht, ob es dabei bleibt.

Du meinst mit "Dreiklang(varierenden Klang)" drei Töne hintereinander, 
nicht gleichzeitig? Sozusagen Ding-Dang-Dong?

Nachtrag: Ich habe jetzt erst deinen Beep.mp3 bemerkt. Das scheint mir 
ja ein ziemlich komplexer Ablauf zu sein. Nix Ding-Dang-Dong. Ich kann 
noch nicht einmal erkennen, welche und wie viele Töne in welcher 
Reihenfolge abgespielt werden.

: Bearbeitet durch User
von Alexander H. (alexander_h732)


Angehängte Dateien:

Lesenswert?

Uwe B. schrieb:
> Alexander H. schrieb:
>> so simpel wie möglich und nur mit (wenigen) Standardteilen
>
> ... ist natürlich von deinen Kenntnissen und Möglichkeiten abhängig. Die
> µC-Fraktion wird zu einem Arduino o. Ä. greifen, diejenigen, die auch
> Hardware machen können, schaffen das mit einem 8-Pin µC +
> Treiber-Transistor, wer nur Röhren kennt macht's halt mit einem
> 19"-Gestell mit Röhren.
> Welche Technologien beherrscht du? Rein mit Transistoren würde zunächst
> ein "One-Hot-Zähler" (3 Transistoren, 3 Kondensatoren und 3 Widerstände)
> und dein astabiles Flip-Flop gebraucht, dazu vielleicht ein paar Dioden
> um Kondensatoren oder Widerstände im FF umzuschalten. Ich weiß aber
> nicht, ob es dabei bleibt.
> Du meinst mit "Dreiklang(varierenden Klang)" drei Töne hintereinander,
> nicht gleichzeitig? Sozusagen Ding-Dang-Dong?

Diese Lösung würde ich bevorzugen. Es gibt einige Oszillatorschaltungen, 
die schon fast etwas ähnliches machen.
Es fehlt nur der Tonwechsel (in dem Fall sind es zwei Töne in sehr 
schneller Abfolge: Ton1>Ton2>Ton1).

Wahrscheinlich ist der Klang sehr abhängig von der Wellenform. Ich hab 
mal mit Audacity reingezoomt und gesehen, dass die Welle immer Kurz auf 
der X-Achse verweilt. Wie würde man das mit Standardteilen analog 
erzeugen?

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Wenn man sich den beep.mp3 deutlich verlangsamt anhoert, kann man 
draufkommen, dass das 6 Toene in 3 verschiedenen Tonhoehen sind, die da 
nacheinander abgespielt werden. Wo kommt das denn her? Sind das 
Lichtsprueche der Frogs, die die Orion aufgefangen hat?

Vor 40 Jahren haett ich da irgendwas mit einem CD4017 und fuer den 
Oszillator einen UJT 2N2646 hergenommen. Vor 45 JAhren vielleicht was 
mit nem SN7492 und SN7442...
Heute wuerd' ichs eher mit nem attiny13a aufbauen/nachprogrammieren.

Gruss
WK

von Cartman E. (cartmaneric)


Angehängte Dateien:

Lesenswert?

Das Ganze ist ein Sechsklang. Wie das Spektrum zeigt. ☺
Man wird wohl ca. ein Dutzend Transistoren brauchen, um es zu erzeugen.
Endstufe nicht mitgerechnet.

: Bearbeitet durch User
von Uwe B. (uwe_beis)


Lesenswert?

Ich habe es mir jetzt auch mit Audacity angesehen. Deine Bilder sagen 
herzlich wenig aus. Im wesentlichen sind es 3 Töne, die in 6 relativ 
gleich langen Abschnitten erscheinen (A-A-B-C-B-A), mit kleinen Pausen 
dazwischen, und wahrscheinlich von Störgeräuschen überlagert sind, und 
wegen eines schlechten Mikros auch noch unterschiedliche Amplituden 
haben.

Die Frage ist jetzt, wie genau soll es sein? Irgendwo zwischen irgendwas 
ähnlichem und einer genauen Kopie?

Wie gesagt (oder geschrieben): Drei Töne hintereinander müssten mit 3 
Transistoren für den Ablauf (oder z. B. 6 für 6 Töne oder 11 für 6 Töne 
und 5 zusätzliche Pausen) und zwei für den Oszillator machbar sein. Dazu 
eine Menge passive Bauteile und wohl auch Dioden.

Nicht analog: Mit einem 8-Pin µC, einem Transistor (und einem 
Stützkondensator), also mit 3 Bauteilen, wäre eine ganze Melodie 
möglich.

Mit Digitaltechnik würden es auch weniger Bauteile.

von Wastl (hartundweichware)


Lesenswert?

Uwe B. schrieb:
> Mit Digitaltechnik würden es auch weniger Bauteile.

Wenn es dann noch so analog klingen soll wie im Beispiel dann
bräuchte man noch ein paar Widerstände und Kondensatoren
zum Wegfiltern der Oberwellen.

von Cartman E. (cartmaneric)


Lesenswert?

Wastl schrieb:
> zum Wegfiltern der Oberwellen.

Ich glaub die Tröte die das verlautbaren wird, filtert schon genug.

von Uwe B. (uwe_beis)


Lesenswert?

Cartman E. schrieb:
> Ich glaub die Tröte die das verlautbaren wird, filtert schon genug.

Das erklärt auch den weitgehend dreiecksförmigen Verlauf des Signals und 
die geringeren Amplituden bei den höheren Frequenzen.

von Cartman E. (cartmaneric)


Lesenswert?

Uwe B. schrieb:
> Cartman E. schrieb:
>> Ich glaub die Tröte die das verlautbaren wird, filtert schon genug.
>
> Das erklärt auch den weitgehend dreiecksförmigen Verlauf des Signals und
> die geringeren Amplituden bei den höheren Frequenzen.

Eher eine Mischung aus Rechteck und ein wenig Sägezahn,
sagt das Epektrum.
Die 3. Oberwelle ist prominent vertreten. Es sind aber auch Anteile
einer 2. und 4. Oberwelle erkennbar. Die fünfte Oberwelle hat es
nur knapp ins Spektrum geschafft. ☺

Möglicherweise ist das Rechteck auch unsymmetrisch.

: Bearbeitet durch User
von Sabi (herr_flitzpiep)


Angehängte Dateien:

Lesenswert?

Ich tippe auf nicht ganz perfekten bzw. gut aufgenommenen Sägezahn.

: Bearbeitet durch User
von Alexander H. (alexander_h732)


Lesenswert?

Uwe B. schrieb:
> Ich habe es mir jetzt auch mit Audacity angesehen. Deine Bilder
> sagen herzlich wenig aus. Im wesentlichen sind es 3 Töne, die in 6
> relativ gleich langen Abschnitten erscheinen (A-A-B-C-B-A), mit kleinen
> Pausen dazwischen, und wahrscheinlich von Störgeräuschen überlagert
> sind, und wegen eines schlechten Mikros auch noch unterschiedliche
> Amplituden haben.
> Die Frage ist jetzt, wie genau soll es sein? Irgendwo zwischen irgendwas
> ähnlichem und einer genauen Kopie?
> Wie gesagt (oder geschrieben): Drei Töne hintereinander müssten mit 3
> Transistoren für den Ablauf (oder z. B. 6 für 6 Töne oder 11 für 6 Töne
> und 5 zusätzliche Pausen) und zwei für den Oszillator machbar sein. Dazu
> eine Menge passive Bauteile und wohl auch Dioden.
> Nicht analog: Mit einem 8-Pin µC, einem Transistor (und einem
> Stützkondensator), also mit 3 Bauteilen, wäre eine ganze Melodie
> möglich.
> Mit Digitaltechnik würden es auch weniger Bauteile.

Ok, dass es sogar sechs Töne sind, hatte ich nicht rausgehört.

Es muss nicht exakt gleich werden, aber ungefähr. Vielleicht kann man 
über Bauteilwerte noch nachjustieren.

Ich hatte mal eine Schaltung mit zwei Transistoren
http://embeddeddreams.com/site/2008/10/06/fun-and-easy-to-build-buzzer-circuit/
aufgebaut, und dann experimentell einen Kondensator hinzugefügt, damit 
war ein Zweiklang mit Pause dazwischen möglich.

Vielleicht gibt es ja eine trickreiche Oszillatorschaltung, die in etwa 
das macht?
Wäre der NE555 ein Möglichkeit?

Sabi schrieb:
> Ich tippe auf nicht ganz perfekten bzw. gut aufgenommenen
> Sägezahn.

Hatte ich mir auch schon überlegt, da viele Buzzer so ähnlich klingen.
Das würde die Tonerzeugung vielleicht ein bisschen einfacher machen, 
oder?

: Bearbeitet durch User
von Cartman E. (cartmaneric)


Lesenswert?

Alexander H. schrieb:
> Ok, dass es sogar sechs Töne sind, hatte ich nicht rausgehört.
Tja, siehste mal.

> Ich hatte mal experimentell eine Schaltung mit zwei Transistoren
> http://embeddeddreams.com/site/2008/10/06/fun-and-easy-to-build-buzzer-circuit/
> aufgebaut, und dann experimentell einen Kondensator hinzugefügt, damit
> war ein Zweiklang mit Pause dazwischen möglich.
Ein paar mehr Transistoren braucht es schon. Aber der Anfang ist
so schon nicht ganz falsch.

> Vielleicht gibt es ja eine trickreiche Oszillatorschaltung, die in etwa
> das macht?
Bestimmt.

> Wäre der NE555 ein Möglichkeit?
Der kann zwar Alles, aber nichts davon Richtig gut.
Besser nicht.

> Sabi schrieb:
>> Ich tippe auf nicht ganz perfekten bzw. gut aufgenommenen
>> Sägezahn.
Ein Sägezahn hat keine so starke 3. Oberwelle.

> Hatte ich mir auch schon überlegt, da viele Buzzer so ähnlich klingen.
> Das würde die Tonerzeugung vielleicht ein bisschen einfacher machen,
> oder?
Nicht wirklich.

von Uwe B. (uwe_beis)


Angehängte Dateien:

Lesenswert?

Die aufgenommene Signalform ergibt sich nur zufällig aus den 
Schallwandlern. dahinter steckt zweifellos immer ein Rechteck. Und es 
geht auch sicherlich nicht darum, den perfekten Sound nachzuahmen, also 
wenig Grund, über Oberwellen zu diskutieren.

Ich habe mal meine Idee aufgezeichnet. Drei verschiedene Töne 
hintereinander, gestartet durch eine Taste. Oder gestrichelt: 
Wiederholend. Alle Transistoren in der selben Grundschaltung. 
Tonhöhenunterschiede durch unterschiedliche Widerstände. Ein Treiber für 
den Wandler habe ich nicht gezeichnet. Für mehr Töne werden einfach 
zusätzliche Stufen eingefügt.

Ich bin nicht sich sicher, ob das auf Anhieb genau so klappt, aber viel 
dürfte nicht falsch sein.

Ich bin jetzt erst mal ein paar Stunden weg.

: Bearbeitet durch User
von Cartman E. (cartmaneric)


Lesenswert?

Uwe B. schrieb:
> Ich bin nicht sich sicher, ob das auf Anhieb genau so klappt, aber viel
> dürfte nicht falsch sein.
+1

Aber der Pausengenerator fehlt da noch. Oder umgekehrt, der
Generator für ein die Tonlänge bestimmendes Gate.
Das würde ebenso eine solche Zeitstufe wie für die Töne sein,
würde aber von jeder dieser Ton-Zeitstufen ausgelöst.
Womit wir beim geschätzten Dutzend wären.

> Ich bin jetzt erst mal ein paar Stunden weg.
Ich auch. ☺

: Bearbeitet durch User
von Christoph M. (mchris)


Lesenswert?

Meiner Meinung nach sind die Töne wie folgt:

50ms Ton an, 20ms Pause
Tonfrequenz A: 2000Hz
Tonfrequenz B: 3200Hz

Die Sequenz ist: A,A,B,still,B,A
Das ganze dauert 6*70ms = 420ms

von Uwe B. (uwe_beis)


Lesenswert?

Cartman E. schrieb:
> Aber der Pausengenerator fehlt da noch.
Ich vermute sehr stark, dass es dem TO (Alexander) gar nicht um solche 
Details wie Pausen geht, vielleicht nicht einmal um genau diese 
Tonfolge, sondern nur um das Prinzip.

Den Aufwand für 6 Töne mit 5 Pausen nach dem von mir vorgeschlagenen, 
rein analogen Prinzip, hatte ich schon vorher beschrieben:
Uwe B. schrieb:
> Drei Töne hintereinander müssten mit 3
> Transistoren für den Ablauf (oder z. B. 6 für 6 Töne oder 11 für 6 Töne
> und 5 zusätzliche Pausen) und zwei für den Oszillator machbar sein. Dazu
> eine Menge passive Bauteile und wohl auch Dioden.
Blöd, dass ich das nicht gleich im Simulator gezeichnet habe. Dann hätte 
ich ruck-zuck gewusst, ob es so klappt, oder ob noch was geändert werden 
muss.

Christoph M. schrieb:
> Die Sequenz ist: A,A,B,still,B,A
Ich vernehme statt "still" einen sehr schwachen, dafür stark gestörten 
Ton mit etwas niedriger Frequenz als Ton B. Aber ob das Absicht oder nur 
eine Störung ist, und ob das überhaupt in irgendeiner Weise relevant 
ist, weiß ich nicht. Deswegen noch einmal @ Alexander:
Uwe B. schrieb:
> Die Frage ist jetzt, wie genau soll es sein? Irgendwo zwischen irgendwas
> ähnlichem und einer genauen Kopie?

von Alexander H. (alexander_h732)


Lesenswert?

Etwas Ähnliches reicht absolut aus.😉
Danke für Eure Expertisen bisher!

Unter „two tone oscillator“ findet man auch jede Menge Schaltungen, aber 
es ist schwierig, da was Passendes zu finden.

von Thomas B. (thombde)


Lesenswert?

Wenn man den IC noch beschaffen kann wäre das eine Lösung.
https://media.elv.com/file/2004_04_02_gs3.pdf

von Cartman E. (cartmaneric)


Lesenswert?

Alexander H. schrieb:
> Etwas Ähnliches reicht absolut aus.😉

Vermutlich wirst du schwer enttäuscht sein, wenn es nur ähnlich ist.
Das wäre etwa so, als wenn sich Bob Marley an "Smoke on the Water"
versuchen würde. ☺

Schönes Wochenende!

von Uwe B. (uwe_beis)


Lesenswert?

Alexander H. schrieb:
> Etwas Ähnliches reicht absolut aus.
Ich finde es schade, dass du zwar mit etwas Ähnlichem zufrieden bist, 
aber mit keiner Silbe kommentierst, ob dir an meinem Schaltungsvorschlag 
etwas nicht gefällt oder passt, oder ob es zu aufwändig ist, sich falsch 
verhält, oder ob der Vorschlag aus irgend einem weiteren Grund doch 
nicht als "etwas Ähnliches" zählt.

Wenn es daran liegt, dass du die Schaltung und die Verhaltensweise 
(noch) nicht verstehst, kann ich beides erklären, und auch die 
Möglichkeiten, die man mit Modifikationen hat. Allerdings nicht 
schriftlich - das würde mir dann doch zu aufwändig.

von Alexander H. (alexander_h732)


Lesenswert?

Uwe B. schrieb:
> Alexander H. schrieb:
>> Etwas Ähnliches reicht absolut aus.
>
> Ich finde es schade, dass du zwar mit etwas Ähnlichem zufrieden bist,
> aber mit keiner Silbe kommentierst, ob dir an meinem Schaltungsvorschlag
> etwas nicht gefällt oder passt, oder ob es zu aufwändig ist, sich falsch
> verhält, oder ob der Vorschlag aus irgend einem weiteren Grund doch
> nicht als "etwas Ähnliches" zählt.
> Wenn es daran liegt, dass du die Schaltung und die Verhaltensweise
> (noch) nicht verstehst, kann ich beides erklären, und auch die
> Möglichkeiten, die man mit Modifikationen hat. Allerdings nicht
> schriftlich - das würde mir dann doch zu aufwändig.


Danke für den super Vorschlag!
Ich befürchte, da ich nur ganz wenig Platz für den Aufbau habe, würde 
das Ganze auch in SMD platzmässig knapp.
Wenn ich alle Teile (insbesondere Widerstände) zusammenbekomme, werde 
ich es interessehalber zumindest mal aufbauen. Analoge Tonerzeugung ist 
ziemlich cool und vielleicht nutze ich deine Schaltung im nächsten 
Projekt (wo Platz keine Rolle spielt).

Also nochmal zu den Anforderungen:
ein dem „Beep“ ähnliche Tonfolge mit dem gleichen Frequenzbereich 
reicht.
Die Pausen müssen auch nicht exakt stimmen.
Es sollte ähnlich klingen, also kein reiner Sinus (wohl eher Sägezahn).

Ich hab den Abend damit verbracht und die Schaltung aus obigem Link 
etwas abgeändert (hauptsächlich Cs eingefügt). Es geht schon ein 
bisschen  in die richtige Richtung und man hört eine Tonfolge statt 
einem gleichförmigen Ton. Die Trennung zwischen den Tönen müsste nur 
noch schärfer werden. Werde die Schaltung morgen nachreichen.

von Uwe B. (uwe_beis)


Lesenswert?

Du hast es aufgebaut und es funktioniert prinzipiell? Das würde mich 
freuen. In der Schaltung sind keine Pausen zwischen den Tönen 
vorgesehen. Die lassen sich einfach mit weiteren Stufen in der 
"Steuerkette" erzeugen, bei denen die Reihenschaltung der Widerstände 
und Dioden entfällt. Dann bleibt der Oszillator stehen. Allerdings ist 
ist zu erwarten, dass der Anlauf des folgenden Tons nicht ganz sauber 
ist. Aber vielleicht "ausreichend ähnlich".

Hättest du vorher geschrieben, dass nicht nur "Analogtechnik", sondern 
auch Platzbedarf bzw. Anzahl der Bauelemente ein wichtiges Kriterium 
ist, hätte ich den Vorschlag nicht gemacht. Zumal die Frage nach Pausen 
und ggf. mehr Tönen noch einmal zu einem erheblich größeren Aufwand 
führt.

Digital wäre das mit wenigen CMOS-ICs erschlagen. Ich vermute, für bis 
zu 5 Töne incl. 4 Pausen ungefähr 2 x '4046 (Takt und VCO) und 1 x '4017 
(Statuszähler) + ~10 Widerstände (+ Dioden?) und 2 Kondensatoren.

Noch weniger Platzbedarf: 1 µC mit 8 Pins: Nahezu beliebig viele Töne 
und Pausen. Fertig.

In allen Schaltungen kommt noch der Treiber und die Stromversorgung 
hinzu.

von Christoph M. (mchris)


Angehängte Dateien:

Lesenswert?

Da wir ja im MC-Netz sind, könnte man es glatt mit einem Microcontroller 
machen.
Im Anhang mal die Version mit pipico2.
Wer es ausprobieren will: Taste auf pipico drücken und u2f-File auf das 
Laufwerk schieben.
Der Ton kommt an Pin 19.
Er ist mit einem RC-Tiefpassfilter direkt mit der Soundkarte gesampelt.

Was ich beim Experimentieren festgestellt habe: im Lautsprecher mit 
Verstärker hört sich der Ton relativ gut an, aber mit dem Piezo, mit dem 
ich es ausprobiert habe, hat ziemlich starke Resonanzen, deshalb ist die 
Lautstärke der beiden Tonfrequenzen extrem unterschiedlich.

von Alexander H. (alexander_h732)


Angehängte Dateien:

Lesenswert?

Uwe B. schrieb:
> Die aufgenommene Signalform ergibt sich nur zufällig aus den
> Schallwandlern. dahinter steckt zweifellos immer ein Rechteck. Und es
> geht auch sicherlich nicht darum, den perfekten Sound nachzuahmen, also
> wenig Grund, über Oberwellen zu diskutieren.
> Ich habe mal meine Idee aufgezeichnet. Drei verschiedene Töne
> hintereinander, gestartet durch eine Taste. Oder gestrichelt:
> Wiederholend. Alle Transistoren in der selben Grundschaltung.
> Tonhöhenunterschiede durch unterschiedliche Widerstände. Ein Treiber für
> den Wandler habe ich nicht gezeichnet. Für mehr Töne werden einfach
> zusätzliche Stufen eingefügt.
> Ich bin nicht sich sicher, ob das auf Anhieb genau so klappt, aber viel
> dürfte nicht falsch sein.
> Ich bin jetzt erst mal ein paar Stunden weg.

So, hab das Ganze mal versucht aufzubauen.
Die Schaltung läuft noch nicht so recht, wahrscheinlich hab ich einen 
Fehler drin. Beim Anklemmen sehe ich ein 40Khz Rechteck, beim Drücken 
der Taste ein 50khz Rechteck.

Ich war mir aber auch nicht sicher, was für Potis und Kondensatoren ich 
verwende sollte.
Wie zu erwarten gab die Bastelkiste auch keine 100k und 10k her, hab 
daher 180k und 6,8k genommen.😂😊

Die wichtigste Frage: wo muss der Buzzer eigentlich korrekt 
abgeschlossen werden, oder geht ein direkter Betrieb garnicht?

Potis 3x 1,2k
Kondensatoren 5x 100nF

Viele Grüße
Alexander

: Bearbeitet durch User
von Uwe B. (uwe_beis)


Lesenswert?

Hallo Alexander,
da fehlt dir die Kenntnis darüber, wie die Schaltung funktioniert, was 
da passiert. Gravierender Fehler: Die 3 "Steuerstufen" sollen 
Zeitkonstanten im Bereich von einigen 100 ms haben, der Oszillator im 
Bereich von einigen 100 µs. Die ersten 3 Kondensatoren müssen sich also 
größenordnungsmäßig die 1000-fache Kapazität wie die anderen beiden 
haben.

Wenn du willst, kann ich dir erklären, was in der Schaltung passiert. 
Nur nicht hier, nicht schriftlich. Wenn du schon 1,2k-Potis (das glaube 
ich nicht, wo gibt's die denn???) für die Tonhöhen-Einstellung hast, 
kann man die Schaltung auch eleganter machen: Sie können die 
1k-Kollektor-Widerstände ersetzen und die Widerstände in Reihe mit den 
Dioden würden entfallen. Ferner hatte ich geschrieben, dass ich selber 
nicht sicher bin, dass nicht doch die eine oder andere Kleinigkeit 
anders sein muss. Insbesondere hatte ich den Verdacht, dass eine 
Kapazität an der Tonsteuer-Leitung erforderlich sein könnte, allerdings 
würde die wiederum bei der eben beschriebenen Schaltungsänderung mit den 
Potis entfallen.

Da bei dir Frequenzen von ~50 kHz entstehen, sind die von dir 
angegebenen C-Werte sicherlich falsch. Wahrscheinlich hast du, zumindest 
im Oszillator, 100 pF statt 100 nF eingesetzt.

Alles das würde ich selber simulieren, um die Funktionsfähigkeit der 
Schaltung zu untersuchen und vernünftige Werte für die Widerstände und 
Kondensatoren zu ermitteln, bevor ich sie aufbaue.

Dass eine weitere Treiberstufe für den Buzzer erforderlich sein wird, 
hatte ich auch schon geschrieben.

Viel Erfolg!

von Otto K. (opto_pussy)


Angehängte Dateien:

Lesenswert?

Christoph M. schrieb:
> Meiner Meinung nach sind die Töne wie folgt:
> 50ms Ton an, 20ms Pause

Das erinnert mich an die Tonfolge von der Telekom Werbung, die hört sich 
nämlich so an:

di-di-di-DA-di


https://youtu.be/DDqdk_h2Pvo?si=UqAiQA16n7_uyIDK


Um die Wirksamkeit und den Kontrast zwischen den einzelnen Tönen 
hervorzuheben, wurde immer ein Abstand von 134 Millisekunden dazwischen 
gebaut. Das kann man sehr gut mit einem CD4017 nachbauen. Wie man einen 
CD4017 startet und resettet, kann man in einem Schaltplan sehen, den 
Herr Hinz und Falk Brunner vor einiger Zeit in einem anderen Thread 
dargestellt haben. Den finde ich jetzt aber leider nicht mehr.

Die ungeraden Ausgänge Q1, Q3, Q5 und Q7 vom CD4017 werden nicht 
beschaltet, dadurch entstehen die nötigen Pausen zwischen den Tönen. An 
Q9 wird eine Diode zum Reseteingang gelegt. Als Taktgeber für den 
Clockeingang könnte man hier tatsächlich den NE555 mit einer Frequenz 
von 7,5 Hz verwenden.

: Bearbeitet durch User
von Jonny O. (-geo-)


Lesenswert?

Hi,

ich denke das Ganze schreit gradezu förmlich nach einem kleinen ATtiny 
Microcontroller und einem Transistor (wenn überhaupt nötig). Also ein 
8-pinniges SMD-Gehäuse (µC) + SMD-Cap (Stützcap) + Widerstand + 
Transistor.

Ich würde das ehrlich gesagt niemals diskret aus Logik-ICs 
zusammenbauen. Mir wäre das viel zu viel Aufwand :-)

Was genau möchtest Du denn damit machen? Geht es dir eher um Löten 
lernen, Logic-ICs kennenlernen, oder interessiert dich auch das 
Programmieren?

lg

von Alexander H. (alexander_h732)


Lesenswert?

Hallo,

also die Idee mit CD4017 ist genial!
Ich werde das auch mal aufbauen.
Die Ähnlichkeit zum Telekom Signaturklang ist da, das ist ja 
interessant.😉👍

Leider hab ich wirklich extrem wenig Platz (10x6mm).
Und das Ganze sollte mit 10mA/3V auskommen.

Da wird leider fast alles zu groß.
Hab mittlerweile mit viel Probierei eine Analog-Oszillator Variante 
aufgebaut, die an ein Telefonklingeln erinnert.
Immer noch nicht so richtig das, was ich suche, aber momentan das Beste 
bisher.
Zwischenzeitlich hatte ich sogar eine „Warbling Siren“ mit PUT 
aufgebaut.
https://www.eleccircuit.com/warbling-alarm-circuit-with-tone-generator/
Den PUT habe ich mittels NPN+PNP gebastelt. Das hörte sich gut an, aber
eben auch eher langweilig.
Teilweise kommt dann noch eine Temperaturempfindlichkeit dazu…😂


Den Ton für den Attiny würde man dann (wie oben von Christoph 
vorgeschlagen) per Software umwandeln und dann programmieren?
Ich schalte meinen Ton mit 1Hz über einen anderen uC ein. Wäre denn der 
Attiny überhaupt so schnell?

Gibt es evtl. irgendwelche Spezial-ICs für den Zweck?

von Cartman E. (cartmaneric)


Lesenswert?

Alexander H. schrieb:

> Leider hab ich wirklich extrem wenig Platz (10x6mm).
> Und das Ganze sollte mit 10mA/3V auskommen.

Doch so wenig Platz. Wenn es so eng ist, dann greif zu einem
Controller in einem BGA16 Gehäuse. Da bleibt dann sogar noch
reichlich Luft.

> Den Ton für den Attiny würde man dann (wie oben von Christoph
> vorgeschlagen) per Software umwandeln und dann programmieren?
> Ich schalte meinen Ton mit 1Hz über einen anderen uC ein. Wäre denn der
> Attiny überhaupt so schnell?

Den Attiny gibt es m.W. nicht in BGA16.
Aber schnell genug sind eigentlich alle.

> Gibt es evtl. irgendwelche Spezial-ICs für den Zweck?

Von Holtek und Princeton Technology ganz bestimmt.

von Joachim B. (jar)


Lesenswert?

https://forum.arduino.cc/t/pwm-with-attiny85/182466
https://www.arrow.com/en/research-and-events/articles/programming-attiny85-with-arduino

Alexander H. schrieb:
> Leider hab ich wirklich extrem wenig Platz (10x6mm).
> Und das Ganze sollte mit 10mA/3V auskommen.

ich lese
https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-2586-AVR-8-bit-Microcontroller-ATtiny25-ATtiny45-ATtiny85_Datasheet-Summary.pdf

Seite 18/30
Unit of Measure = mm
E 4.00 BSC

mit Pinabstand 0.5mm kommt 4mm x 4mm hin sollte doch auf 10x6mm passen

: Bearbeitet durch User
von Dergute W. (derguteweka)


Lesenswert?

Moin,

Alexander H. schrieb:
> Leider hab ich wirklich extrem wenig Platz (10x6mm).
Dann biste mit deinen Einzeltransistorschaltungen oder gar 4017 sowieso 
voellig drueber. Also 5-8 fuessiger µContoller mit selbstgeschriebener 
Software ist da schon das Mittel der Wahl.

> Und das Ganze sollte mit 10mA/3V auskommen.
Da wirds auch langsam unrealistisch. Also bisschen hoehergeskillte Amper 
;-) sollte schon gehen. Alleine die "Audioendstufe" wird das schon 
locker brauchen, wenn du da einen "magnetic buzzer" anschliessen willst. 
Hoeren wirst du das ganze ja wahrscheinlich auch noch wollen. Vermutlich 
nicht nur in einem reflexionsarmen Raum, sondern in "normaler" Umwelt 
mit Hintergrundgeraeuschen...

Gruss
WK

von Esmu P. (Firma: privat) (max707)


Lesenswert?

Alexander H. schrieb:
> Hallo,
>
> ich bin auf der Suche nach einer Schaltung, die an einem passiven
> Mini-Piepser(„magnetic buzzer“) eine Art Dreiklang(varierenden Klang)
> erzeugt.
...
> Viele Grüße
> Alexander

Das kann nicht funktionieren, systembedingt.

Ein Dreiklang ist so etwas wie ein Akkord. Also benutze mehrere Piepser.
Aber es wird trotzdem piepsig klingen.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Alexander H. schrieb:
> Leider hab ich wirklich extrem wenig Platz (10x6mm).
Wenn da in der nicht genannten Höhe nicht mindestens 50mm und 
beidseitige Bestückung mit kleinen 0402 Bauteilen möglich sind, dann 
bleibt realistisch betrachtet nur ein 6-Pin µC im SOT-Gehäuse über:
- 
https://www.mouser.de/c/semiconductors/embedded-processors-controllers/microcontrollers-mcu/8-bit-microcontrollers-mcu/?package%20%2F%20case=SOT-23-6

Das wäre auch von Anfang an mein Lösungsweg gewesen. Das nötige Programm 
passt locker und luftig auf 1 Bildschirmseite und besteht im Großen und 
Ganzen aus Delays.

Alexander H. schrieb:
> Leider hab ich wirklich extrem wenig Platz (10x6mm).
> Und das Ganze sollte mit 10mA/3V auskommen.
Scheiß Salamitaktik. Die Info zu dieser extremen Einschränkung hättest 
du gleich im allerersten Post geben müssen und nicht erst 4 Tage später.

: Bearbeitet durch Moderator
von Joachim B. (jar)


Lesenswert?

Lothar M. schrieb:
> Alexander H. schrieb:
>> Leider hab ich wirklich extrem wenig Platz (10x6mm).
>> Und das Ganze sollte mit 10mA/3V auskommen.
> Scheiß Salamitaktik. Die Info zu dieser extremen Einschränkung hättest
> du gleich im allerersten Post geben müssen und nicht erst 4 Tage später.

die Höhe ist doch nach seinen eigenen Angaben nicht begrenzt, also eine 
Adapterplatine vertikal einlöten ;-) oder ist das die nächste 
Salamischeibe?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Angehängte Dateien:

Lesenswert?

Lothar M. schrieb:
> Das wäre auch von Anfang an mein Lösungsweg gewesen.
Heute in der Mittagspause kurz gemacht. Programm kommt morgen.

: Bearbeitet durch Moderator
von Esmu P. (Firma: privat) (max707)


Lesenswert?

Lothar M. schrieb:
> Lothar M. schrieb:
>> Das wäre auch von Anfang an mein Lösungsweg gewesen.
> Heute in der Mittagspause kurz gemacht. Programm kommt morgen.

Grässlich, das muss man nicht zeigen....

von J. T. (chaoskind)


Lesenswert?

Esmu P. schrieb:
> Lothar M. schrieb:
>> Lothar M. schrieb:
>>> Das wäre auch von Anfang an mein Lösungsweg gewesen.
>>
>> Heute in der Mittagspause kurz gemacht. Programm kommt morgen.
>
> Grässlich, das muss man nicht zeigen....

Also das klingt deutlich dichter am Original als alles was du so gezeigt 
hast.

Esmu P. schrieb:
> Das kann nicht funktionieren, systembedingt.
> Ein Dreiklang ist so etwas wie ein Akkord. Also benutze mehrere Piepser.
> Aber es wird trotzdem piepsig klingen.

Klar, ein Lautsprecher (nichts anderes ist so ein Minipiepser, wenn auch 
ein sehr schlechter, mit ausgeprägter Resonanz) kann ausschließlich 
reine Sinustöne abspielen. Wer kennt sie nicht, die Hifi-Zimmer die für 
jeden Oberton einen Lautsprecher haben.

von Esmu P. (Firma: privat) (max707)


Lesenswert?

J. T. schrieb:...
> Klar, ein Lautsprecher (nichts anderes ist so ein Minipiepser, wenn auch
> ein sehr schlechter, mit ausgeprägter Resonanz) kann ausschließlich
> reine Sinustöne abspielen. Wer kennt sie nicht, die Hifi-Zimmer die für
> jeden Oberton einen Lautsprecher haben.

Ist die Volks-Verblödung mittlerweile auch hier im Forum angekommen?

von J. T. (chaoskind)


Lesenswert?

Esmu P. schrieb:
> Ist die Volks-Verblödung mittlerweile auch hier im Forum angekommen?

Scheinbar schon, immerhin meinst du ja, es braucht mehrere Piepser für 
nen Mehrklang. Falls es dir entgangen sein sollte, der TO schrieb von 
passiven Piepsern, also solche die sich nicht mit Gleichspannung 
zufrieden geben um die Wechselspannung zum Piepsen intern zu erzeugen.

Und wer blödt ist neigt auch zum Meckern, da Blödheit Unverständnis 
erzeugt, und Unverständis wieder aggro macht.

Und mein lieber Scholli, bist du am Meckern. Merkst das eigentlich noch 
selbst oder denkst du, du gibst hiöfreiche und zielführende Tips?

von H. H. (hhinz)


Lesenswert?

Esmu P. schrieb:
> Ist die Volks-Verblödung mittlerweile auch hier im Forum angekommen?

Das war am 29.08.2016 10:05.

von Christoph M. (mchris)


Lesenswert?

Lothar M.
>Heute in der Mittagspause kurz gemacht. Programm kommt morgen.

Vielleicht ist es ja auch ganz einfach :-)

Es kompiliert, aber ob und wie es klingt habe ich nicht getestet.
1
// https://github.com/storbukas/ATtiny85
2
3
#define SPEADERPIN 0
4
5
void play(uint16_t f)
6
{
7
  tone(SPEADERPIN, f, 50);
8
  delay(20);
9
  noTone(SPEADERPIN);
10
}
11
12
void setup()
13
{
14
}
15
16
/*
17
  50ms Ton an, 20ms Pause
18
  Tonfrequenz A: 2000Hz
19
  Tonfrequenz B: 3200Hz
20
21
  Die Sequenz ist: A,A,B,still,B,A
22
  Das ganze dauert 6*70ms = 420ms
23
*/
24
uint16_t A = 2000;
25
uint16_t B = 3200;
26
27
void loop()
28
{
29
  play(A);
30
  play(A);
31
  play(B);
32
  delay(70);
33
  play(B);
34
  play(A);
35
  delay(1000);
36
}

: Bearbeitet durch User
von J. T. (chaoskind)


Lesenswert?

Christoph M. schrieb:
> #define SPEADERPIN 0

No offense, aber ist das nur ein konsequenter Vertipper oder sollte das 
ein Speakerpin werden?

Falls es kein Speakerpin sein sollte, was ist ein Speaderpin, bzw wofür 
steht es?

: Bearbeitet durch User
von Christoph M. (mchris)


Lesenswert?

>No offense, aber ist das nur ein konsequenter Vertipper oder sollte das
>ein Speakerpin werden?

In diesem Bild würde ich den Pin PB5 als Index 0 interpretieren:
https://github.com/storbukas/ATtiny85/blob/main/resources/ATtiny85-Pin-Diagram-Simple.png

Ansonsten:
Dieser MC könnte klein genug sein:

https://www.heise.de/news/Kleinster-Mikrocontroller-hat-acht-Anschluesse-auf-1-38-Quadratmillimetern-10312469.html

: Bearbeitet durch User
von Esmu P. (Firma: privat) (max707)


Lesenswert?

H. H. schrieb:
> Esmu P. schrieb:
>> Ist die Volks-Verblödung mittlerweile auch hier im Forum angekommen?
>
> Das war am 29.08.2016 10:05.

Benutzername           max707
Angemeldet seit   29.08.2016 10:05
Beiträge           1662

von Alexander H. (alexander_h732)


Angehängte Dateien:

Lesenswert?

Lothar M. schrieb:
> Lothar M. schrieb:
>> Das wäre auch von Anfang an mein Lösungsweg gewesen.
>
> Heute in der Mittagspause kurz gemacht. Programm kommt morgen.

Das klingt richtig gut!
Der Attiny85 ist in TSSOP sehr klein, das passt dann locker. Außerdem 
funktioniert das Ganze dann sicher(ohne Temperaturabhängigkeit).

Ich hatte ursprünglich vor, zwei Töne (mit Jumper) umschaltbar zu 
machen.  Der eine Alarm/Sirenen-Ton war ja analog noch machbar, aber die 
komplexere Tonfolge ist wirklich ein Fall für einen Attiny. 👍😊

Wie geht man beim Erstellen der Töne vor? Vielleicht kriege ich den 
zweiten Ton noch selber hin.
Die Umschaltung mittels Steckbrücke müsste dann wohl auch noch im Attiny 
hinterlegt werden. Wie würde so etwas softwaremässig gemacht?

Was bräuchte ich noch an Beschaltung (Abblock-C, evtl. 
Treibertransistor?)

Es gibt ja die Varianten Attiny25/45/85, wieviel Speicher(Flash/Eprom) 
benötige ich mindestens?
Auf die Schnelle hab ich keinen Attiny85 in TSSOP finden können, aber 
einen ATtiny45.


Vielen Dank für die ganzen Ideen! 👍

: Bearbeitet durch User
von Christoph M. (mchris)


Lesenswert?

Alexander H.
>Wie geht man beim Erstellen der Töne vor? Vielleicht kriege ich den
>zweiten Ton noch selber hin.

Du installierst dir die Arduino IDE und den Attiny85 Support von hier:

https://github.com/storbukas/ATtiny85

Dort findet sich auch ein Verdrahtungsplan zur Programmierung des 
Attiny85 mit einem Arduino Uno.

Im Beispielprogramm lassen sich die Töne leicht anpassen:
Beitrag "Re: Alarmton/Buzzer-Dreiklang erzeugen"

Vielleicht wird ist der Code so verständlicher:
1
void loop()
2
3
{
4
  play(2000); // spiele 2000Hz
5
  play(2000); // spiele 2000Hz
6
  play(3200); // spiele 3200Hz
7
  delay(70);  // 70 Millisekunden Ruhe
8
  play(3200); // usw.
9
  play(2000);
10
  delay(1000); // eine Sekunde Ruhe
11
}

Natürlich wäre das alles viel zu einfach. Um State-Of-The-Art zu sein, 
solltest du einen RISC-V Mikrocontroller verwenden und um es wirklich zu 
verstehen in RISC-V Assembler programmieren. Dazu solltest du dich etwas 
in die verschiedenen Risc-V Architekturen einarbeiten und die 
Compiler-Toolchain etwas genauer betrachten. Danach einfach das passende 
Make-File erstellen und den Treiber für den Programmieradapter geschickt 
installieren.  Debuggen lässt sich das ganze mit dem GDB, den sollte man 
in etwas weniger als einer Woche erlernen können.
Ich habe hier mal ein Beispiel für ein Blink-Programm mit System-Timer 
als Zeitbasis gemacht:
Beitrag "Re: RISCV (CH32V003): GNU Assembler übersetzt "CALL" nicht korrekt (oder bin ich nur zu doof?)"

: Bearbeitet durch User
von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Alexander H. schrieb:
> Wie geht man beim Erstellen der Töne vor?
Wie gesagt: im einfachsten Fall mit _delay().

Und dann sieht das Programm so aus:
1
#include <avr/io.h>
2
#define F_CPU 16000000L
3
#include <util/delay.h>
4
5
void A (void) {
6
  for(int i=0; i<100; i++) { // A: 2kHz, 50ms
7
    PORTB = 0x01;
8
    _delay_us(250);
9
    PORTB = 0x00;
10
    _delay_us(250);
11
  }
12
}
13
14
void B (void) {
15
  for(int i=0; i<160; i++) { // B: 3k2Hz, 50ms
16
    PORTB = 0x01;
17
    _delay_us(155);
18
    PORTB = 0x00;
19
    _delay_us(156);
20
  }
21
}
22
23
int main(void)
24
{
25
  DDRB = 0x01; // B0 = LED
26
  while(1)
27
  {
28
    // 50ms Ton an, 20ms Pause Tonfrequenz A: 2000Hz Tonfrequenz B: 3200Hz
29
    // Die Sequenz ist: A,A,B,still,B,A Das ganze dauert 6*70ms = 420ms
30
    A();
31
    _delay_ms(20);          // kurze Pause
32
    A();
33
    _delay_ms(20);          // kurze Pause
34
    B();
35
    _delay_ms(20);          // kurze Pause
36
    _delay_ms(50);          // still
37
    _delay_ms(20);          // kurze Pause
38
    B();
39
    _delay_ms(20);          // kurze Pause
40
    A();
41
        
42
    _delay_ms(3000); // wart mal ab...
43
  }                      
44
}
Man könnte sich sogar die Funktionen "sparen", dann wird das Ganze ein 
wenig länger. Wenn man eine Tonausgabe-Bibliothek nimmt, dann wird die 
Eigenleistung wie oben gezeigt noch deutlich geringer.

: Bearbeitet durch Moderator
von Axel R. (axlr)


Lesenswert?

Ich krieg immer Mecker, wenn ich Statusausgaben mitm Relais 
signalisiere. "Tütelüt", wenn gut und "NÖPNÖPNÖPNÖÖP" wenn schlecht.
Oder wenn man nen Stecker verkehrt ansteckt, gibts dann auch "Alarm". 
Man munkelt, die Relais machen das nicht lange mit.
Ich weiss mal garnicht, wo ich das eigentlich herhabe. Ausgedacht hab 
ich mir das nicht selbst. Also die Melodie dann schon, aber nicht das 
Framework. Hätte man ja die Credits mit angeben können.
Zum uC: ich nehm immer die kleinen ATTiny2313 im MLF Gehäuse für 
"sowas", wenn kein Platz ist. Wegen der UART und Bootloader. Man muss ja 
die Software irgendwie in den Drahtigel hineinbekommen.

-------------------------------------

Ha - kurz gesucht und gleich gefunden:
https://docs.arduino.cc/built-in-examples/digital/toneMelody/
1
#include "pitches.h"
2
3
// notes in the melody:
4
int melody[] = {
5
6
  NOTE_G3, NOTE_B3, NOTE_D4, NOTE_G3, NOTE_B3, NOTE_D4, NOTE_C4, NOTE_G3, NOTE_B3, NOTE_C4, NOTE_B3, NOTE_G3
7
};
8
9
// note durations: 4 = quarter note, 8 = eighth note, etc.:
10
int noteDurations[] = {
11
12
  4, 4, 2, 4, 4, 8, 2, 4, 4, 2, 4, 1
13
  //8, 8, 4, 8, 8, 16, 4, 8, 8, 4, 8, 2
14
};
15
16
void Play_MUSIC() {
17
  // iterate over the notes of the melody:
18
19
  for (int thisNote = 0; thisNote < 12; thisNote++) {
20
21
    // to calculate the note duration, take one second divided by the note type.
22
23
    //e.g. quarter note = 1000 / 4, eighth note = 1000/8, etc.
24
25
    int noteDuration = 800 / noteDurations[thisNote];
26
27
    tone(Relais_2, melody[thisNote] / 2, noteDuration);
28
    // to distinguish the notes, set a minimum time between them.
29
30
    // the note's duration + 30% seems to work well:
31
32
    int pauseBetweenNotes = noteDuration * 1.3;
33
34
    delay(pauseBetweenNotes);
35
36
    // stop the tone playing:
37
38
39
    noTone(Relais_2);
40
  }
41
}

in "pitches.h" stehen dann die Defines für die Notenwerte in gerundete 
Hertz
1
#define NOTE_B0  31
2
.
3
.
4
.
5
6
#define NOTE_AS7 3729
7
#define NOTE_B7  3951
8
#define NOTE_C8  4186
9
#define NOTE_CS8 4435
10
#define NOTE_D8  4699
11
#define NOTE_DS8 4978

: Bearbeitet durch Moderator
von Alexander H. (alexander_h732)


Lesenswert?

Wieviel Platz benötigt denn das Programm mit zwei Piepstönen ungefähr?
Dann könnte man abschätzen ob Attiny25/45 oder Attiny85 besser geeignet 
ist.
Der ATtiny85 hat doch alle Pins für ISP. Die Anschlüsse würde ich 
herausführen und dann per TL866 programmieren.

Da ich eine Batterieanwendung plane (2,8V), könnte ich entweder die 
Versionen ab >2,7V(20MHz) oder auch die Versionen <2,7V(10MHz) nutzen.
Ich müsste mich vorher festlegen, wegen der korrekten Wiedergabe des 
Tones, oder?

Der uC ist dann immer AN, bzw. müsste standardmäßig immer eingeschaltet 
sein? Wäre er normalerweise im sleep, könnte ich mir vorstellen, dass es 
Probleme geben könnte, denn der Ton soll ja mittels 1Hz Puls(lowside 
geschaltet) eingeschaltet werden.

Was wäre denn der ungefähre Stromverbrauch, bei immer eingeschaltetem 
uC(und würde sleep Vorteile im Stromverbrauch bringen?)?
Ich habe was von 300uA gelesen. Sollte der sleep-Modus mehr Nachteile 
bringen, verzichte ich lieber darauf.

von Cartman E. (cartmaneric)


Lesenswert?

Alexander H. schrieb:
> Wieviel Platz benötigt denn das Programm mit zwei Piepstönen ungefähr?
> Dann könnte man abschätzen ob Attiny25/45 oder Attiny85 besser geeignet
> ist.
Wenig.

> Was wäre denn der ungefähre Stromverbrauch, bei immer eingeschaltetem
> uC(und würde sleep Vorteile im Stromverbrauch bringen?)?
> Ich habe was von 300uA gelesen. Sollte der sleep-Modus mehr Nachteile
> bringen, verzichte ich lieber darauf.
Man kann den Controller ja aufwecken. ☺
Wirklich sparsame brauchen aber auch wenn das Programm läuft,
weniger als einige uA. Piepsen ist ja auch keine anspruchsvolle
Beschäftigung.

von Otto K. (opto_pussy)


Lesenswert?

Alexander H. schrieb:
> denn der Ton soll ja mittels 1Hz Puls(lowside geschaltet) eingeschaltet
> werden.

Du willst also die Versorgungsspannung für den ATtiny für eine Sekunde 
einschalten und innerhalb dieser Sekunde soll der ATtiny von selbst 
starten und seinen Sound einmal abspulen?

Dadurch sparst du natürlich einen Eingangs-Pin, der sonst zum Starten 
benötigt würde. Wichtig ist, dass du zwei Ausgänge hast, um den Piezo 
als Brücke schalten zu können, um damit die Lautstärke zu erhöhen, denn 
du hast ja nur 2,8 Volt.

von Alexander H. (alexander_h732)


Lesenswert?

Otto K. schrieb:
> Alexander H. schrieb:
>> denn der Ton soll ja mittels 1Hz Puls(lowside geschaltet) eingeschaltet
>> werden.
>
> Du willst also die Versorgungsspannung für den ATtiny für eine Sekunde
> einschalten und innerhalb dieser Sekunde soll der ATtiny von selbst
> starten und seinen Sound einmal abspulen?
> Dadurch sparst du natürlich einen Eingangs-Pin, der sonst zum Starten
> benötigt würde. Wichtig ist, dass du zwei Ausgänge hast, um den Piezo
> als Brücke schalten zu können, um damit die Lautstärke zu erhöhen, denn
> du hast ja nur 2,8 Volt.

Genau, ich schalte im 1Hz Takt lowside ein.
Ich müsste halt testen, dass nicht  ein Teil des Tons beim Einschalten 
verschluckt wird, aber wahrscheinlich geht das.
Alternativ könnte man auch den Attiny immer eingeschaltet lassen und per 
LOW-Signal einschalten?

Ok, die Brückenschaltung (besser als Treibertransistor?) spart dann 
sogar noch ein Bauteil. Es soll nicht sehr laut werden, aber gut hörbar.
Werde den ATtiny45(2,7-5,5V/TSSOP8) nutzen.

: Bearbeitet durch User
von Christoph M. (mchris)


Lesenswert?

So ein Programm braucht kein Platz. Früher hatte ich für so was immer 
den Attiny13 verwendet (geht dann nur noch Bare-Bone wie von Lothar und 
nicht mehr mit dem Arduino Framework).
Die MCU läuft innerhalb von Millisekunden nach anlegen der 
Stromversorgung los.

von Otto K. (opto_pussy)


Lesenswert?

Alexander H. schrieb:
> Ok, die Brückenschaltung (besser als Treibertransistor?

Für einen Piezo-Lautsprecher ist die Brückenschaltung mit zwei Ausgängen 
besser. Und für einen 4 Ohm Lautsprecher ist die Transistor Treiberstufe 
besser.

von Alexander H. (alexander_h732)


Lesenswert?

Ich nutze keinen Piezo sondern einen kleinen „magnetic buzzer“(ca. 50 
Ohm Impedanz). Piezos haben wohl ca. >1M Ohm.
Also würde ich annehmen, in dem Fall ist vielleicht auch der Transistor 
besser?

von Nemopuk (nemopuk)


Lesenswert?

Alexander H. schrieb:
> Dann könnte man abschätzen ob Attiny25/45 oder Attiny85 besser geeignet
> ist.

Schau dir deren Einzelpreise an. Es gibt eigentlich keinen guten Grund, 
nicht den ATtiny85 zu nehmen.

Wenn du das dann noch 20x bauen musst, kannst du immer noch schauen, ob 
der kleinere reicht. Die Arduino IDE zeigt das ja an.

> Ich müsste mich vorher  (auf 10 oder 20 MHz) festlegen, wegen der korrekten 
Wiedergabe des Tones, oder?

8 MHz gehen mit jeder Spannung.

> Der uC ist dann immer AN (?)

Er kann schlafen, bis er Startsignal (pin cgange interript) kommt.

> Was wäre denn der ungefähre Stromverbrauch, bei immer eingeschaltetem uC

Das hängt fast linear an der gewählten Taktfrequenz, die man übrigens 
per Software wecgseln kann (clock prescaler). Schau ins Datenblatt! Im 
Sleep sind es jedenfalls unter 1 uA, soweit ich mich erinnere.

Du kannst zusätzlich zur Brückenschaltung jeweils zwei Ausgänge parallel 
schalten, um Verluste im IC zu reduzieren.

: Bearbeitet durch User
von Esmu P. (Firma: privat) (max707)


Lesenswert?

https://www.eurohorns.de/PKW-12V-Hupen/Tourhupe-klassisch

Aber im Original klangen die doch noch ganz anders, oder?

Ist das nicht wieder ein digital Gedöns?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Otto K. schrieb:
> den Piezo
Es ist ein magnetischer Piepser wie im 1 Post

Alexander H. bereits schrieb:
> Mini-Piepser(„magnetic buzzer“)
Die sind üblicherweise auch unipolar angesteuert schon laut genug.

Alexander H. schrieb:
> Wieviel Platz benötigt denn das Programm mit zwei Piepstönen ungefähr?
Irgendwas unter 5%. Aber ich habe eben eine 400er Restrolle mit 
vorprogrammierten ATTiny85 hier rumliegen... ;-)

Wenn du sparen musst, koste es, was es wolle, dann würde ich aber den 
ATtiny9 empfehlen:
- 
https://www.mouser.de/ProductDetail/Microchip-Technology/ATTINY9-TSHR?qs=rBGENRD8NwJTK%2Fst6H6pMg%3D%3D

von Alexander H. (alexander_h732)


Lesenswert?

So, hab nun den Attiny45 da und bin gerade dabei, den uC mit Lackdraht 
zu verkabeln.

Bräuchte man dann zwingend die Arduino IDE bzw. das wäre wohl die 
Programmiersoftware der Wahl, oder?
Als Programmiergerät nutze ich den Tl866 (6-Pin ISP).

Hardwaremässig würde ich einen 100nF Entkoppel-Kondensator zwischen Vcc 
und GND(evtl. noch 10uF), einen(oder zwei?) Vorwiderstand in einer 
Leitung zum Lautsprecher, für die Lautstärke, sowie eine Freilaufdiode 
vorsehen.
Der Lautsprecher soll bipolar betrieben werden. Evtl. wird unipolarer 
Betrieb bzw. mit Treibertransistor getestet, je nach Stromverbrauch.

Wie genau definiere ich die Pins (Ausgang zum Lautsprecher, Umschaltung 
zwischen Ton 1/2)?
Das mit dem Aufwecken aus Sleep würde ich einfach weglassen, da ich ja 
auch nur simpel Einschalten kann.

Versuche mich gerade da einzulesen.😊😅

von Nemopuk (nemopuk)


Lesenswert?

Alexander H. schrieb:
> Bräuchte man dann zwingend die Arduino IDE bzw. das wäre wohl die
> Programmiersoftware der Wahl, oder?

Der Hersteller empfiehlt seine eigene IDE, das wäre das Microchip Studio 
und dazu die XC8 Toolchain, von der ich wenig halte.

Die Arduino IDE bietet einen erheblich leichteren Einstieg und 
untersützt mehr Programmieradapter. Deinen Tl866 aber vermutlich nicht. 
Für den brauchst du wohl zusätzliche Software.

Siehe http://stefanfrings.de/avr_ide/index.html

von Alexander H. (alexander_h732)


Lesenswert?

Ok, dachte eher ich kann mit der Arduino IDE eine .hex-file generieren 
und diese dann per TL866 über ISP aufspielen.
https://forum.arduino.cc/t/how-to-get-hex-file-from-arduino-files/128790/2

von Nemopuk (nemopuk)


Lesenswert?

Alexander H. schrieb:
> Ok, dachte eher ich kann mit der Arduino IDE eine .hex-file generieren
> und diese dann per TL866 über ISP aufspielen.

Ja, das meinte ich mit "zusätzliche Software".

Praktischer wäre natürlich, einen kompatiblen Programmieradapter zu 
verwenden, denn dann kann man direkt in der IDE per Mausklick hochladen.

von Nemopuk (nemopuk)


Lesenswert?


von Ob S. (Firma: 1984now) (observer)


Lesenswert?

Alexander H. schrieb:

> Bräuchte man dann zwingend die Arduino IDE

Nein, natürlich nicht. Die würde bezüglich des Aufwands zum Flashen nur 
was bringen, wenn du Controller hast, auf denen der Arduino-Bootloader 
schon drauf ist. Ansonsten musst du ihn sleber erstmal draufbringen und 
das geht auch wieder nur über ISP.

> Der Lautsprecher soll bipolar betrieben werden. Evtl. wird unipolarer
> Betrieb bzw. mit Treibertransistor getestet, je nach Stromverbrauch.
>
> Wie genau definiere ich die Pins (Ausgang zum Lautsprecher, Umschaltung
> zwischen Ton 1/2)?
> Das mit dem Aufwecken aus Sleep würde ich einfach weglassen, da ich ja
> auch nur simpel Einschalten kann.
>
> Versuche mich gerade da einzulesen.😊😅

Dann lies vielleicht mal das hier:

Beitrag "Westminster Soundgenerator mit ATtiny85"

Da ist das alles schonmal gelöst. Da wird nur ein sehr viel komplexerer 
Klang abgespielt. Für dein bissel düdeldü könnte man das Programm ganz 
sicher ohne jedes Problem so weit abrüsten, dass es auch in einen Tiny45 
passt.

von Nemopuk (nemopuk)


Lesenswert?

Ob S. schrieb:
> Nein, natürlich nicht. Die würde bezüglich des Aufwands zum Flashen nur
> was bringen, wenn du Controller hast, auf denen der Arduino-Bootloader
> schon drauf ist. Ansonsten musst du ihn sleber erstmal draufbringen und
> das geht auch wieder nur über ISP.

Das liest sich so, als könnte die Arduino IDE nur mit Bootloader 
verwendet werden. Dem ist aber nicht so. Sie unterstützt wie gesagt auch 
einige ISP Programmieradapter.

Und man kann (wie Alexander vor hat) *.hex Dateien erzeugen, die mit 
beliebigen anderen ISP Programmieradaptern außerhalb der IDE in den Chip 
gebracht werden.

: Bearbeitet durch User
von Joachim B. (jar)


Lesenswert?

Nemopuk schrieb:
> Siehe http://stefanfrings.de/avr_ide/index.html

ist das wieder ein neuer Nick von dir Stefan?
Wen willst du mit deinen Kenntnissen eigentlich helfen?

von Nemopuk (nemopuk)


Lesenswert?

Wenn man nichts zum Thema beitragen kann: einfach mal die klappe halten. 
Stattdessen könntest du dich über den Dativ informieren.

von Alexander H. (alexander_h732)


Angehängte Dateien:

Lesenswert?

Hallo,

bin gerade dabei den Attiny45 zu flashen bzw. überhaupt erst mal eine 
LED blinken zu lassen.😊
Scheinbar ist es für mich als Anfänger mit AVRisp mkII + AVRdude doch 
nicht ganz so simpel.

Gibt es eine Möglichkeit, per AVRdude den Inhalt des Flash auszulesen 
und sich das Ganze anzeigen zu lassen?
Beim Klicken auf „Read“ bzw. „Verify“ > „Program“ scheint alles zu 
passen.
Vielleicht müssen noch fuses eingestellt werden?

Ich wollte das hier testen:
https://www.arduinoslovakia.eu/blog/2017/12/attiny85---blik?lang=en

Grüne LED mit Vorwiderstand an PB0/GND angeschlossen, aber es passiert 
nichts. Das Programm sollte doch mit Anlegen von Spannung sofort 
loslaufen, oder?

von Nemopuk (nemopuk)


Lesenswert?

Alexander H. schrieb:
> Gibt es eine Möglichkeit, per AVRdude den Inhalt des Flash auszulesen
> und sich das Ganze anzeigen zu lassen?

Auslesen ja, anzeigen nein. Dabei käme nur ein Haufen Zahlen heraus, 
kein lesbarer Quelltext.

> Das Programm sollte doch mit Anlegen
> von Spannung sofort loslaufen, oder?

Ja. Wie hast du denn das "Board" in der IDE konfiguriert? Zeige mal alle 
Parameter.

: Bearbeitet durch User
von Alexander H. (alexander_h732)


Angehängte Dateien:

Lesenswert?

Ich habe den Code exakt so übernommen/herauskopiert.
Hätte ich irgendetwas anpassen müssen?

von Nemopuk (nemopuk)


Lesenswert?

Es geht nicht um den Quelltext, sondern um die Board-Einstellungen in 
der IDE. Die müssen mit der Ziel-Hardware übereinstimmen.

von Alexander H. (alexander_h732)


Lesenswert?

Ok, daran wird es liegen. Wo und was müsste ich denn einstellen?
Die Arduino IDE fragt zB. nach einem Board. Richtet sich das Ergebnis 
der compilierten .hex dann danach?
Ich nutze ja kein Arduino board sondern den AVRisp.

von Manfred P. (pruckelfred)


Lesenswert?

Alexander H. schrieb:
> Die Arduino IDE fragt zB. nach einem Board. Richtet sich das Ergebnis
> der compilierten .hex dann danach?

Natürlich, es muß passend zum CPU-Typ compiliert werden.

Du müstest in den Board-Einstellungen genau Deinen AVR wählen. Ist der 
nicht da, muß er per Download nachgerüstet werden - ich hoffe, dass 
arduinoslovakia auch das beschrieben hat.

von Alexander H. (alexander_h732)


Lesenswert?

Es blinkt!👍
Hab es nach folgender Anleitung hinbekommen.😉
https://www.instructables.com/Program-an-ATtiny44458485-with-Arduino/

: Bearbeitet durch User
von Nemopuk (nemopuk)


Lesenswert?

Alexander H. schrieb:
> Hab es nach folgender Anleitung hinbekommen.

Meinst du das?:
> Make sure you have the correct Board, Clock, and Processor selected under the 
Tools Menu for what you are using. Then hit upload.

: Bearbeitet durch User
von Manfred P. (pruckelfred)


Lesenswert?

Nemopuk schrieb:
> Meinst du das?:
>> Make sure you have the correct Board, Clock, and Processor selected under the
> Tools Menu for what you are using. Then hit upload.

Ich glaube eher, drei Schritte vorher "Step 3: Add Support for ATtiny"

von Alexander H. (alexander_h732)


Lesenswert?

Ja genau. Man muss in der Arduino IDE dann den Link 
(https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json) 
eingeben und dann hat man den Attiny45 mit drin.

Der Beep von Lothar hört sich sehr gut an! Wie erhofft legt der Attiny 
sofort bei Anlegen der Betriebsspannung los. Stromverbrauch nur 8,5mA.

Beim zweiten Beep bin ich mir unsicher. Ich sehe hauptsächlich drei 
Frequenzen, die parallel erklingen(95Hz, 200Hz und 750Hz). Anfangs sind 
die 95Hz lauter, am Ende dominieren die 750Hz.
Sollte ich das überhaupt richtig interpretiert haben🤔
Könnte man so eine Mischung von Frequenzen überhaupt in Software 
nachahmen?

: Bearbeitet durch User
von Otto K. (opto_pussy)


Angehängte Dateien:

Lesenswert?

Wenn man den BigTrak (ab 1980) fertig programmiert hatte, dann gab es 
immer diesen individuellen 7-tönigen Bestätigungssound:

du-ti-du-ti-du-ti-du

Diesen Sound könnte man nachmachen und mit doppelter Geschwindigkeit 
abspielen, dann hört er sich noch besser an. In dem Video hört man ihn 2 
mal, in Sekunde 27 und in Sekunde 49:

https://youtu.be/7zOCc145g88?si=XOUee7_0XHOqU_Ds

von Axel R. (axlr)


Lesenswert?

Alexander H. schrieb:
> Der Beep von Lothar hört sich sehr gut an!
Welche Firmware hast Du denn nun draufkopiert? den "Beep von Lothar"?
Kannst Du bitte nochmal drauf verlinken?

EDIT;
war nun doch besser, das mitm uC zu machen, als mit 12 Transistoren, 
oder?

: Bearbeitet durch User
von Dergute W. (derguteweka)


Lesenswert?

Moin,

Alexander H. schrieb:
> Beim zweiten Beep bin ich mir unsicher. Ich sehe hauptsächlich drei
> Frequenzen, die parallel erklingen(95Hz, 200Hz und 750Hz). Anfangs sind
> die 95Hz lauter, am Ende dominieren die 750Hz.
> Sollte ich das überhaupt richtig interpretiert haben🤔

der Beep2.mp3 hoert sich fuer mich an, wie ein Sweep. Faengt also mit 
einer tiefen Frequenz an und die erhoeht sich dann mit der Zeit. Klingt 
auch obertonreich, also koennte es wohl ein Saegezahn oder kurze Pulse 
sein.

> Könnte man so eine Mischung von Frequenzen überhaupt in Software
> nachahmen?
Warum sollte man das nicht koennen? Man kann so gut wie alles in 
Software nachahmen.

Gruss
WK

von Axel R. (axlr)


Lesenswert?

Beitrag "Re: Alarmton/Buzzer-Dreiklang erzeugen"
Wenn man jetzt hier noch den zweiten Pin als Ausgang definiert und 
"entgegenegesetzt" schaltet (am Ende der Tonausgabe beide auf "L" 
oder"H" oder als Eingang!), kann man den Piepser zwischen zwei Ausgänge 
"hängen". Oder man verwendet einen Auskoppel-Kondensator, damit nicht 
ständig Strom durch die Spule fließt. Auch würde ich zwei 
Doppel-Schottky an die Ausgangspins gegen GND und VCC schalten und einen 
kleinen Elko (100uF/6V3)parallel zur Betriebsspannung nicht einsparen.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Axel R. schrieb:
> Auch würde ich zwei Doppel-Schottky an die Ausgangspins gegen GND und
> VCC schalten und einen kleinen Elko (100uF/6V3)parallel zur
> Betriebsspannung nicht einsparen.
Wenn von den Augangstransistoren der Gegentaktendstufe des µC immer 1 
leitet, sind irgendwelche Freilaufdioden unötig, weil der 
Induktionsstrom ja immer einen Weg freigeschaltet bekommt.

Axel R. schrieb:
> Wenn man jetzt hier noch den zweiten Pin als Ausgang definiert und
> "entgegenegesetzt" schaltet (am Ende der Tonausgabe beide auf "L"
> oder"H" oder als Eingang!), kann man den Piepser zwischen zwei Ausgänge
> "hängen".
Man kann mehrere digitale Ausgangssignale auch einfach mit der 
XOR-Funktion mischen. Dabei kommt es natürlich zu "Übersteuerungen", 
denn eigentlich ergibt ja 1+1 = 2. Diese 2 ist binär aber nicht 
darstellbar und resultiert als 0 in Verzerrungen. Dem Ohr ist das 
kurioserweise ziemlich egal. Siehe dazu auch den 
Beitrag "Re: VHDL Grundlagen Tonerzeugung" und den 
Beitrag "Re: Warum ist hier weniger los als.".

von Alexander H. (alexander_h732)


Lesenswert?

Axel R. schrieb:
> Beitrag "Re: Alarmton/Buzzer-Dreiklang erzeugen"
> Wenn man jetzt hier noch den zweiten Pin als Ausgang definiert und
> "entgegenegesetzt" schaltet (am Ende der Tonausgabe beide auf "L"
> oder"H" oder als Eingang!), kann man den Piepser zwischen zwei Ausgänge
> "hängen". Oder man verwendet einen Auskoppel-Kondensator, damit nicht
> ständig Strom durch die Spule fließt. Auch würde ich zwei
> Doppel-Schottky an die Ausgangspins gegen GND und VCC schalten und einen
> kleinen Elko (100uF/6V3)parallel zur Betriebsspannung nicht einsparen.

Das wollte ich auch noch fragen.
Die Lautstärke ist zwar ganz ok, aber an 2,7V würde ein bisschen Reserve 
nicht schaden.
Man sieht oft eine Diode zwischen den Lautsprecherpins(Rück-Induktion?), 
erfüllt das den gleichen Zweck wie zwei Schottkydioden?
Also wie genau kann ich das Programm auf „Brückenschaltung“ (push-pull?) 
abändern? Ich hab auch gelesen, dass push-pull Betrieb durch 
„bitbanging“ gelöst werden kann?
Leider finde ich so gut wie keine (Code-)beispiele für 
Lautsprecherbetrieb an zwei Ausgängen.

Ich nutze diese Firmware von Lothar:
1
include <avr/io.h>
2
#define F_CPU 16000000L
3
#include <util/delay.h>
4
void A (void) {
5
  for(int i=0; i<100; i++) { // A: 2kHz, 50ms
6
    PORTB = 0x01;
7
    _delay_us(250);
8
    PORTB = 0x00;
9
    _delay_us(250);
10
  }
11
}
12
void B (void) {
13
  for(int i=0; i<160; i++) { // B: 3k2Hz, 50ms
14
    PORTB = 0x01;
15
    _delay_us(155);
16
    PORTB = 0x00;
17
    _delay_us(156);
18
  }
19
}
20
int main(void)
21
{
22
  DDRB = 0x01; // B0 = LED
23
  while(1)
24
  {
25
    // 50ms Ton an, 20ms Pause Tonfrequenz A: 2000Hz Tonfrequenz B: 3200Hz
26
    // Die Sequenz ist: A,A,B,still,B,A Das ganze dauert 6*70ms = 420ms
27
    A();
28
    _delay_ms(20);          // kurze Pause
29
    A();
30
    _delay_ms(20);          // kurze Pause
31
    B();
32
    _delay_ms(20);          // kurze Pause
33
    _delay_ms(50);          // still
34
    _delay_ms(20);          // kurze Pause
35
    B();
36
    _delay_ms(20);          // kurze Pause
37
    A();
38
        
39
    _delay_ms(3000); // wart mal ab...
40
  }                      
41
}

: Bearbeitet durch Moderator
von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Alexander H. schrieb:
> Leider finde ich so gut wie keine (Code-)beispiele für
> Lautsprecherbetrieb an zwei Ausgängen.
Selber aktiv werden?

> Ich hab auch gelesen, dass push-pull Betrieb durch „bitbanging“ gelöst
> werden kann?
Seis drum. Schließe den Pipser zwischn PB0 und PB1 an und ändere das 
Programm in diesen Zeilen ab:
1
:
2
    PORTB = 0x01;
3
    _delay_us(...);
4
    PORTB = 0x02;
5
    _delay_us(...);
6
:
7
   DDRB = 0x03; // B1 und B0 werden im Gegentakt aktiviert
8
:

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Wenn ich total crazy drauf bin, bau ich sogar noch 2x ein
1
PORTB = 0x00;
ein. Und zwar jeweils hier:
1
    _delay_us(IRGENDEINE_ZAHL);
2
  }
3
  PORTB = 0x00;
4
}

Dann fliesst kein Gleichstrom durch den Buzzer, wenn nix dudelt.

Gruss
WK

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Dergute W. schrieb:
> PORTB = 0x00;
Erscheint sinnvoll... ;-)

von Ob S. (Firma: 1984now) (observer)


Lesenswert?

Alexander H. schrieb:

> Der Beep von Lothar hört sich sehr gut an!

Ist aber nicht wirklich dem Original entsprechend. Ich habe mal mein 
altes Analyseprogramm rausgekramt, mit dem ich damals den 
Westminster-Schlag analysiert habe. Es hat sich folgendes ergeben:

Sechs "Noten", drei Frequenzen

Jede Note (mit Ausnahme der vierten) enthält ca. 50ms Ton, dann 20ms
Stille, die vierte Note ist komplett still, sollte sie wohl jedenfalls
mal sein, bevor irgendein Idiot Störgeräusche und Rauschen zu der 
Aufnahme hinzugefügt hat...

Die Zuordnung der Frequenzen zu den Noten sieht so aus:
1
n/f  2k  3k  4k
2
---------------
3
1    x   x     
4
2    x   x     
5
3        x   x 
6
4              
7
5        x   x 
8
6    x   x

> Beim zweiten Beep bin ich mir unsicher. Ich sehe hauptsächlich drei
> Frequenzen, die parallel erklingen(95Hz, 200Hz und 750Hz).

Nö, ist viel simpler. Offensichtlich wurde hier näherungsweise mit einem 
Dirac-Puls gearbeitet. Sprich: nur ganz kurz Saft auf den Buzzer, der 
Rest des Tones wird durch das mechanische System des Buzzers selber 
erzeugt. Dessen Resonanzfrequenz liegt offensichtlich bei ca. 2,7kHz.
Die Anregung durch den Puls wird dann gut 80 mal wiederholt, wobei die 
Abstände der Pulse immer kürzer werden. Das erzeugt den wahrgenommenen 
Frequenz-Sweep. In Wirklichkeit gibt es aber keine Änderung der 
tatsächlichen Frequenz des Geräuschs, die ist vom ersten bis zum letzten 
immer so bei 2,7kHz.

: Bearbeitet durch Moderator
von Ob S. (Firma: 1984now) (observer)


Lesenswert?

Ob S. schrieb:

> der
> Rest des Tones wird durch das mechanische System des Buzzers selber
> erzeugt. Dessen Resonanzfrequenz liegt offensichtlich bei ca. 2,7kHz.

Hmmm... Bei nochmaligem Nachdenken könnte sich bezüglich Beep1 noch eine 
Änderung ergeben. Wenn man nämlich mal annimmt, dass die Aufnahme mit 
demselben Buzzer entstanden ist wie die von Beep2 und die grottige 
Qualität der Quelle meiner Analyse berücksichtigt, dann könnten meine 
analysierten 3kHz gut und gerne ein Artefakt sein, das aus der 
Resonanzfrequenz des Beepers resultiert und in Wirklichkeit eben auch 
2.7kHz hat und in der Anregung niemals enthalten war.

Entsprechend bereinigt würde das dann so aussehen:
1
n/f  2k  4k
2
-----------
3
1    x        
4
2    x        
5
3        x 
6
4              
7
5        x 
8
6    x

[Mod: die [code]-Tags sind case-sensitiv]

: Bearbeitet durch Moderator
von Ob S. (Firma: 1984now) (observer)


Lesenswert?

Ob S. schrieb:

> [Mod: die [code]-Tags sind case-sensitiv]

Ooops. Danke für die Korrektur.

von Alexander H. (alexander_h732)


Lesenswert?

Danke für die Erklärung (Buzzer im Gegentakt anschliessen). Das werde 
ich versuchen ins Programm eunzubauen, wenn der Rest wie geplant läuft.

Ich bin noch auf ein Problem gestoßen:
der Ton wird leider am Ende knapp abgeschnitten, wenn ich den uC im 1Hz 
Takt lowside einschalte.
Ein Stützelko hat auch nicht geholfen.
Also komme ich doch nicht um einen Steuereingang (active low?)herum.
Ich hab einige unterschiedliche Varianten gefunden. Wie implementiert 
man das ins Programm am einfachsten?
Man müsste wahrscheinlich einen (Taster-) Eingang definieren?
Ich bräuchte einen Pull-Up R und könnte einen der Inputs nutzen. Welchen 
nimmt man am besten, dass später das ISP(im eingebauten Zustand) noch 
funktioniert? Hatte zB. beobachtet, dass mit Buzzer+Freilaufdiode am 
Ausgang dann das ISP nicht mehr läuft.

Interessant, 2,7KHz alleine hören sich ja erstmal überhaupt nicht so an, 
wie der Sweep.

: Bearbeitet durch User
von Alexander H. (alexander_h732)


Lesenswert?

Edit: es sind scheinbar doch 1,5-2Hz und damit leider schneller als 
gedacht.

von Alexander H. (alexander_h732)


Lesenswert?

Hmm, ich hab nun einige verschiedene Codebeispiele mit 
Inputkonfiguration dem Code (mit Lothars Tonfolge) vorangestellt. Weil 
ich es noch nicht besser weiß.😉
Wie zu erwarten war, funktioniert das so nicht. Was muss ich denn 
beachten, damit ein activ LOW am Eingang die Tonfolge auslöst?
Es wurde zwar teilweise kompiliert, aber ich mache irgendetwas 
grundsätzlich falsch. Wahrscheinlich braucht man erstmal ein Minimum an 
Erfahrung.

Da die Dauer der Tonfolge unter 500ms(2Hz) liegt, müsste es mit 
dauerhaft eingeschaltetem uC und Einschaltung per Input ja eigentlich 
auch klappen.

: Bearbeitet durch User
von Nemopuk (nemopuk)


Lesenswert?

Alexander H. schrieb:
> Was muss ich denn beachten, damit ein activ LOW am Eingang die Tonfolge
> auslöst?

Du musst beachten, dass der Eingang Aktiv LOW ist. Konkrete Hilfe 
erfordert konkreten Input (dein Quelltext).

von Alexander H. (alexander_h732)


Lesenswert?

Ich hatte zB. das hier gefunden:
1
const int buzzerPin = 5;
2
const int switchPin = 6;
3
int buzzerState = 1; // 1 for off, 0 for on
4
5
void setup() {
6
  pinMode(buzzerPin, OUTPUT);
7
  pinMode(switchPin, INPUT_PULLUP); // Enable internal pull-up resistor
8
  Serial.begin(9600);
9
}
10
11
void loop() {
12
  int switchState = digitalRead(switchPin);
13
14
  if (switchState == LOW) { // Switch is pressed (active-low)
15
    buzzerState = 1; // Turn on the buzzer
16
  } else { // Switch is not pressed
17
    buzzerState = 0; // Turn off the buzzer
18
  }
19
20
  digitalWrite(buzzerPin, buzzerState); // Control the buzzer based on buzzerState
21
22
  delay(10); // Debounce the switch
23
}
Falls das ungefähr in die richtige Richtung geht, wie vereine ich das 
mit der Tonfolge?
Ja, also normalerweise ist der Eingang "intern" im uC immer auf LOW, 
richtig?

[Mod: die [c]-Tags das nächste Mal bitte selber einsetzen. Nazulesen 
über jeder Texteingabebox bei "Wichtige Regeln - **erst lesen**, dann 
posten!"]

: Bearbeitet durch Moderator
von Ob S. (Firma: 1984now) (observer)


Lesenswert?

Alexander H. schrieb:

> Ja, also normalerweise ist der Eingang "intern" im uC immer auf LOW,
> richtig?

Nein, wie kommst du darauf? Es gibt keinen default state. Was default 
ist, wird durch einen Widerstand bestimmt, der entweder auf Vcc (pullup) 
oder Gnd (pulldown) geht. Intern gibt es beim TinyX5 nur Pullups, die 
man einschalten könnte, um einen default state zu erreichen. Der wäre 
dann aber HIGH.

von Alexander H. (alexander_h732)


Lesenswert?

Ob S. schrieb:
> Alexander H. schrieb:
>> Ja, also normalerweise ist der Eingang "intern" im uC immer auf LOW,
>> richtig?
>
> Nein, wie kommst du darauf? Es gibt keinen default state. Was default
> ist, wird durch einen Widerstand bestimmt, der entweder auf Vcc (pullup)
> oder Gnd (pulldown) geht. Intern gibt es beim TinyX5 nur Pullups, die
> man einschalten könnte, um einen default state zu erreichen. Der wäre
> dann aber HIGH.

Default state HIGH gilt für den Eingang? Den internen Pullup zu nutzen 
hatte ich vor, denn ich will ja per active LOW den Ausgang einschalten.

Kann sich jemand den Code von Lothar und meine Ergänzung nochmal 
anschauen?
Ich komme da nicht weiter.

von Nemopuk (nemopuk)


Lesenswert?

Alexander H. schrieb:> Falls das ungefähr in die 
richtige Richtung geht,

tut es

> wie vereine ich das mit der Tonfolge?

Dafür hast du doch schon Beispiele bekommen. Wenn du keine Lust auf 
Lesen und Lernen hast (ja das ist mühsam), kannst du ja versuchen, einen 
KI Chatbot zu überreden, das für dich zu erledigen. Und nein, das ist 
keine Verarschung, das können die Dinger wirklich.

von Alexander H. (alexander_h732)


Lesenswert?

Nemopuk schrieb:
> Alexander H. schrieb:> Falls das ungefähr in
> die richtige Richtung geht,
> tut es
>> wie vereine ich das mit der Tonfolge?
>
> Dafür hast du doch schon Beispiele bekommen. Wenn du keine Lust auf
> Lesen und Lernen hast (ja das ist mühsam), kannst du ja versuchen, einen
> KI Chatbot zu überreden, das für dich zu erledigen. Und nein, das ist
> keine Verarschung, das können die Dinger wirklich.

Welche Beispiele?

Würd ich gerne mal sehen, ob „KI“ das kann. Bitte verlinken, falls 
jemand hier KI erfolgreich nutzt😉👍

: Bearbeitet durch User
von Manfred P. (pruckelfred)


Lesenswert?

Alexander H. schrieb:
>> Dafür hast du doch schon Beispiele bekommen. Wenn du keine Lust auf
>> Lesen und Lernen hast (ja das ist mühsam), kannst du ja versuchen, einen
>> KI Chatbot zu überreden, das für dich zu erledigen.
> Welche Beispiele?
>
> Würd ich gerne mal sehen, ob „KI“ das kann. Bitte verlinken, falls
> jemand hier KI erfolgreich nutzt

Wenn Du keine Lust hast, selbst aktiv zu werden, verschwinde. Du kannst 
Deine Versuche und Ergebnisse zeigen, aber niemand hat Spaß daran, auch 
hier diesen KI-Dreck zu diskutieren.

von Alexander H. (alexander_h732)


Lesenswert?

Voilá! Here is your code...
This code will Define input PB1. Define output PB0.
Use intern pullup on input.
Activate buzzer on output, if input is LOW.

// Define input PB1
#define PB1 1

// Define output PB0
#define PB0 0

// Set PB1 as input with internal pullup
pinMode(PB1, INPUT_PULLUP);

// Set PB0 as output
pinMode(PB0, OUTPUT);

// Check if input is LOW
if(digitalRead(PB1) == LOW) {
  // Activate buzzer on output
  tone(PB0, 2000, 50); // Tone A 2khz, 50ms
  delay(50);
  tone(PB0, 3200, 50); // Tone B 3.2khz, 50ms
}

// Tone frequency sequence
// Tone A 2khz, 50ms
tone(PB0, 2000, 50);
delay(50);

// Tone B 3.2khz, 50ms
tone(PB0, 3200, 50);
delay(50);

// Reference: Arduino Tone Library - 
https://www.arduino.cc/reference/en/language/functions/advanced-io/tone/

Wird kompiliert, aber bei Input LOW passiert nichts.

von Joachim B. (jar)


Lesenswert?

Alexander H. schrieb:
> aber bei Input LOW passiert nichts

was hast du erwartet?
KI kann nichts werden wenn die natürliche Inteligenz stetig abnimmt.

von Alexander H. (alexander_h732)


Lesenswert?

Genau das hatte ich von „KI“ auch erwartet, daher überrascht mich das 
nicht.😊

von Otto K. (opto_pussy)


Lesenswert?

Joachim B. schrieb:
> KI kann nichts werden wenn die natürliche Inteligenz stetig abnimmt.

Eine künstliche KI muss ständig von intelligenten Menschen mit 
intelligenten Sachverhalten, Infos und mit gesicherten Wahrheiten 
gefüttert werden und nicht mit Fake News, denn sonst kommen aus der KI 
auch nur Fake News heraus.

Man kann nicht erwarten, dass eine KI so schlau ist und sich von selbst 
in die richtige Richtung entwickelt. Da steckt immer ein kluger 
menschlicher Kopf dahinter, der das Steuerrad fest in der Hand hält und 
ggf. kräftig gegenlenkt, damit alles wieder in geordneten Bahnen 
weiterläuft.

von Alexander H. (alexander_h732)


Lesenswert?

Ok, das hört sich ja vernünftig an. Also liegt es am Anwender.
Aber wo ist denn mein Fehler in der Eingabe?
Wenn ich hier schon so gute Tipps (KI)bekomme, will ich wenigstens 
sehen, was ich falsch mache. Das sind doch eigentlich einfache Sachen, 
die sollte die viel gelobte KI doch locker hinbekommen.
Liegt es vielleicht daran, dass die KI nicht spezifisch für den Attiny45 
funktioniert?

Nächstes Beispiel:
This code will Define input PB1. Define output PB0.
Use intern pullup on input.
Activate led on output, if input is LOW.

// Define input PB1
const int PB1 = 1;

// Define output PB0
const int PB0 = 0;

// Set PB1 as input with internal pullup
pinMode(PB1, INPUT_PULLUP);

// Set PB0 as output
pinMode(PB0, OUTPUT);

// Check if input is LOW
if(digitalRead(PB1) == LOW){
  // Activate LED on output
  digitalWrite(PB0, HIGH);
}

// Reference: 
https://www.arduino.cc/reference/en/language/functions/digital-io/digitalread/


Das wird nicht mal kompiliert (Compilation error: expected 
unqualified-id before numeric constant).

: Bearbeitet durch User
von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Angehängte Dateien:

Lesenswert?

Mach bitte wie schon beschrieben die [c]-Tags um den Code.

: Bearbeitet durch Moderator
von Nemopuk (nemopuk)


Lesenswert?

Alexander,
lerne doch einfach mal die Grundlagen von Arduino, bevor du es zu 
benutzen versuchst. setup() und loop() spielen eine elementare Rolle, 
beides fehlt in deinen zuletzt geposteten Code-Fragmenten.

Fange damit an:

https://docs.arduino.cc/built-in-examples/basics/BareMinimum/
https://docs.arduino.cc/built-in-examples/basics/Blink/
https://docs.arduino.cc/built-in-examples/basics/DigitalReadSerial/
https://docs.arduino.cc/built-in-examples/digital/InputPullupSerial/
https://docs.arduino.cc/built-in-examples/digital/toneMelody/

Oder damit:

https://funduino.de/vorwort

Noch einfacher und bequemer also mit Arduino geht es nicht. Wer gar 
nicht lernen will es selbst zu machen, der muss andere dafür bezahlen.

: Bearbeitet durch User
von Alexander H. (alexander_h732)


Lesenswert?

1
 const int led = 0;
2
const int button = 1;
3
4
void setup() {
5
  pinMode(button, INPUT_PULLUP);
6
  pinMode(led, OUTPUT);
7
}
8
9
void loop() {
10
  if (digitalRead(button)== HIGH)digitalWrite(led, LOW); // Turn LED on if button is not pressed
11
  else {
12
    digitalWrite(led, HIGH); // Turn LED off if button is pressed
13
   
14
    delay(500); 
15
  }
16
}


Ein kleines bisschen weiter bin ich gekommen. Habe mittlerweile 
verstanden, dass Groß-/Kleinschreibung wichtig ist, und dass die I/Os 
nicht als 5/6 sondern 1/0 bezeichnet werden.
Mit dem Code oben schalte ich eine LED lowside für 500ms ein, das klappt 
schonmal. :)


Nur, wie genau baut man die Tonfolge von Lothar in diese Logik ein 
(Klammern setzen?)? Ein paar Hinweise wären klasse :)

: Bearbeitet durch Moderator
von Nemopuk (nemopuk)


Lesenswert?

Alexander H. schrieb:
> Nur, wie genau baut man die Tonfolge von Lothar in diese Logik ein

Indem man programmiert. Und wenn man das noch nicht kann, dann muss man 
es lernen. Wie jeder andere Mensch auch. Meister fallen nicht vom 
Himmel.

: Bearbeitet durch User
von Alexander H. (alexander_h732)


Lesenswert?

Nemopuk schrieb:
> Alexander H. schrieb:
>> Nur, wie genau baut man die Tonfolge von Lothar in diese Logik ein
>
> Indem man programmiert. Und wenn man das noch nicht kann, dann muss man
> es lernen. Wie jeder andere Mensch auch. Meister fallen nicht vom
> Himmel.

Ja, das sagt sich leicht :)

Ich hab nun etwas anderes probiert, das überschreitet aber den Speicher 
des Attiny45. Kann das sein?
1
const int buzzer = 0;
2
const int button = 1;
3
4
void setup() {
5
  pinMode(button, INPUT_PULLUP);
6
  pinMode(buzzer, OUTPUT);
7
}
8
9
// Define tone frequencies
10
#define TONE_A 2000 // 2kHz
11
#define TONE_B 3200 // 3.2kHz
12
13
// Define tone duration
14
#define TONE_DURATION 50 // 50ms
15
16
// Function to generate tone
17
void generateTone(int frequency, int duration) {
18
  tone(buzzer, frequency, duration); // Generate tone with specified frequency and duration
19
  delay(duration); // Wait for tone to finish playing
20
}
21
22
// Main code
23
void loop() {
24
  if (digitalRead(button) == HIGH) { // Check if button is pressed
25
    digitalWrite(buzzer, LOW); // Turn off buzzer
26
  } else {
27
    generateTone(TONE_A, TONE_DURATION); // Generate tone A
28
    generateTone(TONE_B, TONE_DURATION); // Generate tone B
29
  }
30
}

Sketch uses 2146 bytes (104%) of program storage space. Maximum is 2048 
bytes.
Global variables use 26 bytes (20%) of dynamic memory, leaving 102 bytes 
for local variables. Maximum is 128 bytes.


Wie kommt es, dass Lothars Ton eigentlich gleich viele Zeilen hat und 
dennoch viel weniger Platz benötigt?

: Bearbeitet durch Moderator
von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Lothar M. schrieb:
> Mach bitte wie schon beschrieben die [c]-Tags um den Code.
Und zwar genau auf die Art, wie es bechrieben wurde und über jeder 
Eingabebox steht. Auch mit dem Slash vor dem 'c'.

Wenn du beim Programmieren die Anweisungen genauso sorgfältig beachtest, 
dann hast du einen steinigen Weg vor dir. Der Compiler stört sich 
nämlich an fehlenden Schrägstrichen.

Alexander H. schrieb:
> dass die I/Os nicht als 5/6 sondern 1/0 bezeichnet werden.
PB0 und PB1 sind beim DIL8 Gehäuse am Pin5 und 6. Das steht im 
Datenblatt. In einem anderen Gehäuse können die an ganz anderen Pins 
sein, es bleiben aber PB0 und PB1.

: Bearbeitet durch Moderator
von Nemopuk (nemopuk)


Lesenswert?

Alexander H. schrieb:
> Sketch uses 2146 bytes (104%) of program storage space. Maximum is 2048
> bytes.

Eigentlich hat der ATtiny45 4096 Bytes Flash. Hast du eventuell den 
falschen Mikrocontroller in der IDE eingestellt  oder die Hälfte davon 
mit einem veralteten Bootloader vergeudet?

Mit was für einem USB Adapter programmierst du ihn?

: Bearbeitet durch User
von Alexander H. (alexander_h732)


Lesenswert?

Ich kompiliere mit der Arduino IDE (board: Attiny25/45/85 IDE v.2.3.6) 
und schreibe dann die .hex per AVRDude auf den Attiny.

von Alexander H. (alexander_h732)


Lesenswert?

Nemopuk schrieb:
> Hast du eventuell den
> falschen Mikrocontroller in der IDE eingestellt

Das wars! Danke. :)
Aber dieser Code macht leider garnichts. :(

: Bearbeitet durch User
von Nemopuk (nemopuk)


Lesenswert?

Alexander H. schrieb:
> Aber dieser Code macht leider garnichts.

Der ATtiny Core von Damelli ist unvollständig. tone() ist dort nicht 
implementiert, kannst du nicht verwenden.

Vielleicht geht es mit dem anderen Core, den ich dir vor einer Woche 
empfahl:

Nemopuk schrieb:
> Wenn du die Arduino IDE verwendest, wirst du das brauchen...

Und lies dessen Dokumentation. Da steht nämlich, dass dessen tone() 
Implementierung nur auf Pin 1 und 4 (offenbar sind PB1 und PB4 gemeint) 
geht.

: Bearbeitet durch User
von Ob S. (Firma: 1984now) (observer)


Lesenswert?

Nemopuk schrieb:

> Der ATtiny Core von Damelli ist unvollständig. tone() ist dort nicht
> implementiert, kannst du nicht verwenden.
>
> Vielleicht geht es mit dem anderen Core, den ich dir vor einer Woche
> empfahl

Oder am allerbesten: Gleich ganz ohne Arduino-Gedöhns. Bei der konkreten 
Aufgabe hilft das nämlich eigentlich kein bissel.

Eher im Gegenteil. Spätestens bei der vorlagengerechten Umsetzung von 
Beep2 wird es nämlich u.U. sogar etwas störend werden.

Naja und dazu kommt natürlich noch: Ohne Arduino passt der Kram auch 
noch ganz locker in einen Tiny25. Na gut, das ist für den TO im Moment 
irrelevant, er hat ja einen Tiny45 zur Verfügung.

von Alexander H. (alexander_h732)


Lesenswert?

OK, also gibt es hier einige Möglichkeiten fürs Scheitern. ;)
Mir fehlt halt noch das logische Verständnis (oder das 
Hintergrundwissen) dafür, wie Programme aussehen (zB. konkret ob und wie 
ich Codeteile aneinanderreihen kann).
Lothars Ton ist ja klasse, den will ich auch gerne beibehalten.
Hab den anderen Core dann noch nach deiner Empfehlung getetest, Code 
umgeschrieben und neu verdrahtet - kein Erfolg. Ich lasse jetzt erstmal 
alles hardwaremässig wie gehabt und versuche, das nötige Wissen 
nachzuholen.

Ob S. schrieb:
> Gleich ganz ohne Arduino-Gedöhns. Bei der konkreten
> Aufgabe hilft das nämlich eigentlich kein bissel.

Was wäre denn eine gute Alternative?

: Bearbeitet durch User
von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Alexander H. schrieb:
> Wie kommt es, dass Lothars Ton eigentlich gleich viele Zeilen hat und
> dennoch viel weniger Platz benötigt?
Ich verwende keine ausufernden Bibliotheken, die auch sonst noch alles 
Mögliche können könnten. Sondern ich bearbeite die Portpins direkt über 
bitweise Zugriffe. Diese Zeilen kann der Compiler super optimieren. Lies 
mal den Post dort im 
Beitrag "Re: Meinung zu dieser Produktidee?" ab der Mitte.

Alexander H. schrieb:
> Was wäre denn eine gute Alternative?
Keine Arduino-Bibliotheken, sondern nur rudimentäre C-Funktionen 
verwenden. Mein Programm benötigt nur knapp 5% des Speicherplatzes eines 
ATTiny85. Aber es hat eben auch nicht solche Dinge wie einen Bootloader 
mit an Bord.

von Nemopuk (nemopuk)


Angehängte Dateien:

Lesenswert?

Alexander H. schrieb:
> Mir fehlt halt noch das logische Verständnis (oder das
> Hintergrundwissen) dafür, wie Programme aussehen (zB. konkret ob und wie
> ich Codeteile aneinanderreihen kann).

Das hättest du in der Zwischenzeit längst lernen können, indem du ein 
Lehrbuch liest, oder ein Tutorial durcharbeitest. Ich hatte dir vor 
einer Woche eine Webseite empfohlen, die neben Empfehlungen für IDEs und 
Programmieradapter auch ein Tutorial enthält. 
http://stefanfrings.de/mikrocontroller_buch/
Aber wie gesagt: Bücher aus Papier sind auch eine gute Erfindung.

Ob S. schrieb:
> Oder am allerbesten: Gleich ganz ohne Arduino-Gedöhns

Dazu möchte ich ergänzen, dass du auch bei der Methode trotzdem die 
Arduino IDE benutzen kannst. Wenn dein Hauptprogramm anstelle von 
setup() und loop() eine main() Funktion enthält und auf 
Arduino-spezifische Bibliotheken verzichtet, dann kommt dabei ein 
"reines" C/C++ Programm heraus. Siehe angehängter Screenshot. Dort habe 
ich einfach einen kleinen C-Quelltext aus einem Tutorial in die Arduino 
IDE kopiert. Läuft.

Ich schreibe das, weil die Arduino IDE für Anfänger erheblich angenehmer 
ist, als die IDE von Microchip mit ihren überwältigend vielen 
Menüpunkten und Konfigurations-Dialogen.

: Bearbeitet durch User
von Alexander H. (alexander_h732)


Lesenswert?

Nach einigen Anläufen und Fehlschlägen funktioniert es nun wie es soll.
Ich hab aber ein Delay von 1000ms beibehalten, weil es mit Pausen besser 
klingt.

Nochmal eine Frage an Lothar zur Tonsequenz-Erzeugung:
könnte ich einen Sweep (beep2) mit deiner Methode erzeugen?
Wie genau berechnet man die erzeugte Frequenz (zB. "for (int i = 0; i < 
100; i++) { // A: 2kHz, 50ms")?


Vielleicht hat jemand so etwas schon mal gemacht und kann einen Tipp 
geben?

von Alexander H. (alexander_h732)


Lesenswert?

Hab jetzt was ausprobiert, das geht ungefähr in die Richtung.
1
#include <avr/io.h >
2
#define F_CPU 16000000L
3
#include <util/delay.h>
4
5
const int button_pin = 1;
6
7
void A (void) {
8
  for (int i = 0; i < 20; i++) { // A: 2kHz, 50ms
9
    PORTB |= _BV(0);
10
    _delay_us(5000);
11
    PORTB &= ~_BV(0);
12
    _delay_us(50);
13
  }
14
}
15
16
void B (void) {
17
  for (int i = 0; i < 15; i++) { // B: 3k2Hz, 50ms
18
19
    PORTB |= _BV(0);
20
    _delay_us(4000);
21
    PORTB &= ~_BV(0);
22
    _delay_us(40);
23
  }[/c]
24
}
25
void C (void) {
26
  for (int i = 0; i < 10; i++) { // B: 3k2Hz, 50ms
27
28
    PORTB |= _BV(0);
29
    _delay_us(2500);
30
    PORTB &= ~_BV(0);
31
    _delay_us(30);
32
  }
33
}
34
void D (void) {
35
  for (int i = 0; i < 4; i++) { // B: 3k2Hz, 50ms
36
37
    PORTB |= _BV(0);
38
    _delay_us(2200);
39
    PORTB &= ~_BV(0);
40
    _delay_us(20);
41
  }
42
}
43
void E (void) {
44
  for (int i = 0; i < 2; i++) { // B: 3k2Hz, 50ms
45
46
    PORTB |= _BV(0);
47
    _delay_us(2000);
48
    PORTB &= ~_BV(0);
49
    _delay_us(50);
50
  }
51
}
52
void setup()
53
{
54
  // DDRB |=_BV(0); // Set as output
55
  pinMode (0, OUTPUT);
56
  pinMode(button_pin, INPUT_PULLUP);
57
}
58
59
void loop()
60
{
61
  int button = digitalRead(button_pin);
62
  if (button == LOW)
63
  {
64
    // 50ms Ton an, 20ms Pause Tonfrequenz A: 2000Hz Tonfrequenz B: 3200Hz
65
    // Die Sequenz ist: A,A,B,still,B,A Das ganze dauert 6*70ms = 420ms
66
    A();
67
    _delay_ms(0);          // kurze Pause
68
    B();
69
    _delay_ms(0);          // kurze Pause
70
    C();
71
    _delay_ms(0);          // kurze Pause
72
    D();
73
    _delay_ms(0);          // kurze Pause
74
    E();
75
    _delay_ms(0);          // kurze Pause
76
    
77
   
78
    _delay_ms(3000); // wart mal ab...
79
  }
80
  _delay_ms(100);
81
}


Aber es ist viel zu leise. Liegt das am Frequenzgang des Buzzers?
Ich hoffe, dass man, indem man den Piepser an zwei Ausgänge schaltet 
noch etwas rausholen kann.

: Bearbeitet durch User
von Ob S. (Firma: 1984now) (observer)


Lesenswert?

Alexander H. schrieb:

> #define F_CPU 16000000L

Wo kommen die 16MHz her?

> Aber es ist viel zu leise. Liegt das am Frequenzgang des Buzzers?

Nö. Das liegt daran, dass das Programm ziemlicher Schwachsinn ist. Ganz 
offensichtlich ohne jedes Verständnis der Funktion zusammenkopiert.

Deine Funktionen von A bis E erzeugen allesamt nicht wirklich den 
gewünschten Ton. Und schon garnicht mit der gewünschten Dauer (wenn man 
die Kommentare mal als Referenz dafür betrachtet, was jeweils gewünscht 
ist).

Und das ist jedem mit auch nur andeutungsweisem Verständnis sofort klar, 
wenn man z.B. B() und C() vergleicht. Gleicher Wunsch, gleiche 
Programmstruktur, aber unterschiedliche Implementierung. Kann also 
unmöglich passen. Wenn überhaupt, könnte nur eine Implementierung 
passen, tatsächlich passt aber keine von beiden.

Dazu kommt aber noch: du brauchst keine sechs Funktionen zur 
Tonerzeugung, sondern nur allerhöchstens drei, von denen eine nicht mal 
einen Ton erzeugt, sondern nur eine Notendauer lang nichts tut. 
Sinnvoller wäre aber, nur eine Funktion zur Tonerzeugung zu haben, der 
man mittels Parametern die gewünschte Frequenz, die Tondauer und die 
Pausendauer übergibt. Der Prototyp für diese Funktion könnte z.B. so 
aussehen:

void Note(int Frequency_Hz, int ToneDuration_ms, int PauseDuration_ms);

Diese Funktion muss dann vier Sachen tun:
1) Die halbe Periodenzeit für die gewünschte Frequenz ausrechnen
2) Ausrechnen, wieviel Perioden der Frequenz abzuspielen sind, um auf
   die Dauer der ToneDuration zu kommen.
3) Mit den beiden berechneten Werten die eigentliche Tonerzeugung
   durchführen.
4) Die gewünschte Pause erzeugen.

Bei den Punkten 1) und 2) ist relativ viel zu rechnen 
(Integer-Divisionen). Da kommt es auf die Güte des Compilers an, ob er 
von allein erkennt, dass man das schon zur Compilezeit ausrechnen kann. 
Wenn nicht, muss man ihm ggf. Hilfestellung geben.

Das Hauptprogramm würde dann sechs mal die Note()-Funktion aufrufen, 
etwa so:

Note(2000, 50, 20);
Note(2000, 50, 20);
Note(3200, 50, 20);
Note(0, 0, 70);         //kein Ton, statt dessen: lange Pause
Note(3200, 50, 20);
Note(2000, 50, 20);

Wobei natürlich noch zu berücksichtigen ist, dass da statt 3200 
eigentlich 4000 stehen müsste. Aber das ist erstmal egal. Das ist dann 
schnell geändert, wenn das Programm erst mal korrekt funktioniert.

Eine naive Implementierung von Note() könnte etwa so aussehen:

void Note(int Frequency_Hz, int ToneDuration_ms, int PauseDuration_ms) {
  if (Frequency_Hz > 0 && ToneDuration > 0) {
    int period_us = 1000000L / Frequency_Hz;
    int periods = (1000 * ToneDuration) / period_us;
    int halfperiod_us = period_us / 2;
    for (int i = 0; i < periods; i++) {
      PORTB |= _BV(0);
      _delay_us(halfperiod_us);
      PORTB &= ~_BV(0);
      _delay_us(halfperiod_us);
    }
  }
  _delay_ms(PauseDuration);
}

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Alexander H. schrieb:
> Aber es ist viel zu leise. Liegt das am...
Du hast da mit den unterschiedlichen delay-Zeiten ein ganz schlechtes 
Tastverhältnis ins Spiel gebracht. Probierst mal mit 50:50 statt mit 
100:1

Der Buzzer kann bei den kurzen 20..50us gar nicht viel Hub machen. Und 
der Hub ist letztlich die Lautstärke.

Ich hatte ja schon gepostet, wie es richtig geht. Auch das mit den 
[c]-Tags...

: Bearbeitet durch Moderator
von J. T. (chaoskind)


Lesenswert?

Lothar M. schrieb:
> Und
> der Hub ist letztlich die Lautstärke.

Das ist letztlich ein Trugschluß, denn für die Lautstärke ist die 
Membranschnelle verantwortlich. Natürlich bedingt eine schnellere 
Membran einen größeren Hub, da die Membran für einen Hubzyklus bei 
Frequenz x, Zeit 1/x braucht, und wenn sie sich die Zeit schneller 
bewegt, natürlich mehr Strecke zurücklegt.

Aber am Ende ist es die Membranschnelle, die die Lautstärke bestimmt, 
darum brauchen Tieftöner auch mehr Hub als Hochtoner um auf die gleiche 
Lautstärke zu kommen. Aber eigentlich ist der größere Hub eine Folge der 
höheren Lautstärke und keine Ursache.

Das ändert aber natüelich nichts an dem, was du zur Pulsweite gesagt 
hast.

: Bearbeitet durch User
von Nemopuk (nemopuk)


Lesenswert?

Alexander H. schrieb:
> Aber es ist viel zu leise. Liegt das am Frequenzgang des Buzzers?

Um welchen genau geht es? In dessen Datenblatt sollte ein Diagramm den 
Wirkungsgrad je nach Frequenz zeigen.

> Ich hoffe, dass man, indem man den Piepser an zwei Ausgänge schaltet
> noch etwas rausholen kann.

Doppelte Spannung -> vierfache Leistung. Das Ohr reagiert logarithmisch 
auf Lautstärke.

: Bearbeitet durch User
von Ob S. (Firma: 1984now) (observer)


Lesenswert?

Nemopuk schrieb:

[Brückenbetrieb]

> Doppelte Spannung -> vierfache Leistung. Das Ohr reagiert logarithmisch
> auf Lautstärke.

Ja. Effektiv kann man also durch diese Massnahme nur etwa mit dem 
Eindruck doppelter Lautstärke rechnen.

von Kurt (sommerwin)


Lesenswert?

SAB0600 ist speziell für 3 Klang Gong, das müsste auch mit 5V 
funktionieren, habs aber selber noch net probiert...

von Manfred P. (pruckelfred)


Lesenswert?

Kurt schrieb:
> SAB0600 ist speziell für 3 Klang Gong,

.. und wird von Siemens noch aktiv gefertigt?

von Kurt (sommerwin)


Lesenswert?

Manfred P. schrieb:
> und wird von Siemens noch aktiv gefertigt?

Vielleicht nimmer gefertigt, aber gibts immer noch zu kaufen. Hab erst 
vor ein paar Wochen 2 Stück bestellt und auch bekommen...

von Joachim B. (jar)


Lesenswert?

Nemopuk schrieb:
> Doppelte Spannung -> vierfache Leistung. Das Ohr reagiert logarithmisch
> auf Lautstärke.

nur in der grauen Theorie, bei Autoradios wurde effektiv nur die 3-fache 
Leistung erreicht.

von Alexander H. (alexander_h732)


Lesenswert?

Ich hab jetzt den Buzzer-Ausgang auf PB0 und PB1 ans Laufen bekommen.
Es ist definitiv ein bisschen lauter.
An PB0/PB1 waren jeweils 39 Ohm erforderlich, sonst geht der Attiny 
scheinbar in die Strombegrenzung.
Aber leider wird der Ton (ich gebs zu, nicht ansatzweise wie beep2) 
immer im Loop abgespielt, auch wenn kein LOW mehr am Eingang anliegt.
Was mache ich falsch?
1
#include <avr/io.h >
2
#define F_CPU 16000000L
3
#include <util/delay.h>
4
5
const int button_pin = 2;
6
7
void A (void) {
8
  for (int i = 0; i < 20; i++) { // A: 2kHz, 50ms
9
    PORTB = 0x01;
10
    _delay_us(3000);
11
    PORTB = 0x02;
12
    _delay_us(3000);
13
14
   DDRB = 0x03; // B1 und B0 werden im Gegentakt aktiviert
15
  }
16
}
17
18
void B (void) {
19
  for (int i = 0; i < 20; i++) { // B: 3k2Hz, 50ms
20
21
    PORTB = 0x01;
22
    _delay_us(2900);
23
    PORTB = 0x02;
24
    _delay_us(2900);
25
26
   DDRB = 0x03; // B1 und B0 werden im Gegentakt aktiviert
27
  }
28
}
29
void C (void) {
30
  for (int i = 0; i < 10; i++) { // B: 3k2Hz, 50ms
31
32
    PORTB = 0x01;
33
    _delay_us(2800);
34
    PORTB = 0x02;
35
    _delay_us(2800);
36
37
   DDRB = 0x03; // B1 und B0 werden im Gegentakt aktiviert
38
}
39
40
}
41
void setup()
42
{
43
  // DDRB |= 0x03; // Set as output
44
  
45
  pinMode(button_pin, INPUT_PULLUP);
46
}
47
48
void loop()
49
{
50
  int button = digitalRead(button_pin);
51
  if (button == LOW)
52
  {
53
    // 50ms Ton an, 20ms Pause Tonfrequenz A: 2000Hz Tonfrequenz B: 3200Hz
54
    // Die Sequenz ist: A,A,B,still,B,A Das ganze dauert 6*70ms = 420ms
55
    A();
56
    _delay_ms(0);          // kurze Pause
57
    B();
58
    _delay_ms(0);          // kurze Pause
59
    C();
60
    _delay_ms(0);          // kurze Pause
61
   
62
   
63
    _delay_ms(3000); // wart mal ab...
64
  }
65
  _delay_ms(100);
66
}

: Bearbeitet durch User
von Nemopuk (nemopuk)


Lesenswert?

Alexander H. schrieb:
> sonst geht der Attiny
> scheinbar in die Strombegrenzung.

Du kannst dessen Ausgänge kurzschließen, ohne dass die Funktion des 
Mikrocontrollers beeinträchtigt wird (nur nicht zu viele gleichzeitig).

Wenn es bei dir nur mit einem Widerstand vor dem Schallwandler 
funktioniert, dann taugt deine Stromversorgung nicht. Zeige mal Fotos 
vom Aufbau.

: Bearbeitet durch User
von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Alexander H. schrieb:
> An PB0/PB1 waren jeweils 39 Ohm erforderlich, sonst geht der Attiny
> scheinbar in die Strombegrenzung.
Garantiert geht der nicht in irgendeine "Strombegrenzung", denn sowas 
hat dessen Pintreiber gar nicht eingabaut. Der Ausgang ist nach meinen 
Erfahrungen für gefühlt endlose Zeit kurzschlussfest (Pin gegen Masse 
und Pin gegen Vcc und auch 2 Pins gegeneinenader) weil die Mostfet dort 
drin "hinreichend" hochohmig sind. Du hast da andere Effekte.

Ich fände es unheimlich hilfreich, wenn wir nach 3 Wochen so langsam mal 
wüssten, was du da überhaupt für einen "Buzzer" vor dir hast. Ein Foto 
(mit Lineal) und eine Widerstandsmessung wären da sicher hilfreich.

Und natürlich wäre es auch nicht schlecht, wenn du gleich den ganzen 
Aufbau samt Stromversorgungn mitfotografieren würdest, wenn du schon mal 
dabei bist.

von Alexander H. (alexander_h732)


Lesenswert?

Nemopuk schrieb:
> Alexander H. schrieb:
>> sonst geht der Attiny
>> scheinbar in die Strombegrenzung.
>
> Du kannst dessen Ausgänge kurzschließen, ohne dass die Funktion des
> Mikrocontrollers beeinträchtigt wird (nur nicht zu viele gleichzeitig).
> Wenn es bei dir nur mit einem Widerstand vor dem Schallwandler
> funktioniert, dann taugt deine Stromversorgung nicht. Zeige mal Fotos
> vom Aufbau.

Ja, das wird es sein. Ich hab einen AVRisp mkII mit einem Schalter 
umgebaut (5V USB Spannung des Programmers auf Vcc am ISP Stecker).

Mein Buzzer:
https://cdn-reichelt.de/documents/datenblatt/A900/CEM-1203.pdf

von Joachim B. (jar)


Lesenswert?

Alexander H. schrieb:
> Ich hab

das Gelesene nicht verstanden und immer noch keine Bilder geliefert!

von Manfred P. (pruckelfred)


Lesenswert?

Alexander H. schrieb:
> Mein Buzzer:
> https://cdn-reichelt.de/documents/datenblatt/A900/CEM-1203.pdf

Da sieht man unterhalb 2kHz einen erheblichen Abfall des Schallpegels, 
dieser Signalgeber hat da einen Resonanzbereich. Und die Daten sagen 
auch, ihn nicht oberhalb 5 Volt zu betreiben. Er scheint mir für Deine 
Anwendung nur begrenzt geeignet.

Schaue nach Lautsprecherchen aus Schnurlostelefonen, Pollin sollte sowas 
haben. Die sind breibandiger, aber auch deutlich größer.

von Axel R. (axlr)


Lesenswert?

Alexander H. schrieb:
> void C (void) {
>   for (int i = 0; i < 10; i++) { // B: 3k2Hz, 50ms
>     PORTB = 0x01;
>     _delay_us(2800);
>     PORTB = 0x02;
>     _delay_us(2800);
>    DDRB = 0x03; // B1 und B0 werden im Gegentakt aktiviert
> }
>
> }
Ich meld' mich auch mal zu Wort (wollte mich eigentlich raushalten).

Alexander, erklär mir mal bitte schritt für Schritt, was diese (von mir 
zitierte) Funktion Zeile für Zeile macht.
Danach erkläre auch ich Dir, was die einzelnen Programmzeilen bewirken 
und Du kannst überlegen, was Du dort ändern kannst, damit sich nun 
endlich die gewünschte Funktion einstellt.
Solltest Du hier noch Fragen haben, erklär' ich Dir gern, was GENAU zu 
tun ist und auch warum.
Du kannst nicht einfach - auf gut Glück - irgendwas zusammenkopieren, 
ohne zu wissen, was Du da tust. Also: klar, kannst Du, machst Du ja 
auch; wird dann halt nur nie fertig. Und beim nächsten Mal fragste 
wieder.

von Esmu P. (Firma: privat) (max707)


Angehängte Dateien:

Lesenswert?

Manfred P. schrieb:
> Alexander H. schrieb:
>> Mein Buzzer:
>> https://cdn-reichelt.de/documents/datenblatt/A900/CEM-1203.pdf
>
> Da sieht man unterhalb 2kHz einen erheblichen Abfall des Schallpegels,
> dieser Signalgeber hat da einen Resonanzbereich. Und die Daten sagen
> auch, ihn nicht oberhalb 5 Volt zu betreiben. Er scheint mir für Deine
> Anwendung nur begrenzt geeignet.
>
> Schaue nach Lautsprecherchen aus Schnurlostelefonen, Pollin sollte sowas
> haben. Die sind breibandiger, aber auch deutlich größer.

Im Bereich von 2500–3500 Hz liegen keine Grundfrequenzen typischer 
Tonleitern (z. B. C-Dur). Der Bereich von 2500–3500 Hz enthält keine 
Grundtöne und ist daher auch nicht sinnvoll zu verwenden.

wie ich schon mehrmals anmerkte, ein Piepser bleibt ein Piepser.

von Teo D. (teoderix)


Lesenswert?

Alexander H. schrieb:
> Ich hab jetzt den Buzzer-Ausgang auf PB0 und PB1 ans Laufen bekommen.
> Es ist definitiv ein bisschen lauter.
> An PB0/PB1 waren jeweils 39 Ohm erforderlich, sonst geht der Attiny
> scheinbar in die Strombegrenzung.

Die Membranen (Metllplätchen) sind mechanisch vorgespannt (Dauermagnet). 
Die Ansteuerung mit Wechselstrom bringt da ähnlich "viel", wie eine 
Z-Diode in Serie zur Freilaufdiode zu verbauen.
Ich würde auch nichts an der Frequenz modulieren, nur das 
Tastverhältnis. Damit lässt sich sogar Sprache "verständlich" ausgeben. 
Hat Rolf-Dieter Klein, schon ende der 70er gezeigt. :)

von Esmu P. (Firma: privat) (max707)


Lesenswert?

Teo D. schrieb:
...
> Die Membranen (Metllplätchen) sind mechanisch vorgespannt (Dauermagnet).
> Die Ansteuerung mit Wechselstrom bringt da ähnlich "viel", wie eine
> Z-Diode in Serie zur Freilaufdiode zu verbauen.
> Ich würde auch nichts an der Frequenz modulieren, nur das
> Tastverhältnis. Damit lässt sich sogar Sprache "verständlich" ausgeben.
> Hat Rolf-Dieter Klein, schon ende der 70er gezeigt. :)

Das konnte man auch mit 2 kiloohm Kopfhörern aus dem 1. WK schon, siehe 
hier: https://de.wikipedia.org/wiki/Datei:Detektor-Kopfhoerer.png.

von Axel R. (axlr)


Lesenswert?

1
 void C (void) {
2
   DDRB |= (1<<DDB1)|(1<<DDB0); //1x PortB0 und B1 als Ausgang, andere Portpins unberührt
3
     for (int i = 0; i < 10; i++) { // (B: 3k2Hz, 50ms) 3.2kHz, 50ms?
4
     PORTB = 0x01;  //2800µsek POTB0 auf High, PORTB1 auf LOW
5
     _delay_us(2800);
6
     PORTB = 0x02; //2800µsek POTB1 auf High, PORTB0 auf LOW
7
     _delay_us(2800);
8
     } //das ganze zehn mal
9
  DDRB ~= (1<<DDB1)|(1<<DDB0); // 1x am Ende nach der Schleife Portpins 0,1 vom PORTB wieder auf Eingang
10
 }
Was Du mit den anderen Portpins machst, weiss ich gerade nicht; besser 
ist es, diese nicht anzufassen. Hier sicher nicht weiter tragisch; man 
kann durchaus mit 0x01, 0x02 und 0x00 hantieren. Aber es kann auch 
anders kommen.
Zu Deiner Ausgabefrequenz:
1
(2800µs EIN + 2800µs AUS) = 5600µs Periodendauer
Frequenz wäre demnach:
1
1 / 5600E-6 = 178.5 Hertz
weit weg von 3200 Hz

Dauer des Tones:
1
(2800µs EIN + 2800µs AUS) * 10 = 0.056 = 56ms

Zu bemerken sei vielleicht noch, dass der Buzzer am liebsten bei 2Khz 
herum spielen mag. Muss mit der Geometrie des Aufbaus zusammenhängen. 
Jedenfalls sagt das das Datenblatt, welches Du freundlicherweise 
verlinkt hast.

Jetzt wäre noch zu klären, ob dein Eingangspin dauerhaft auf LOW liget 
und er solange dudeln soll, oder ob du einen Triggerimpuls hast, der die 
Tonausgabe starten soll und diese Folge dann einmal abspielt.

(Ich hoffe, ich hab mich nicht verrechnet und blamiere mich hier ;), 
vieles wurde ja auch schon richtig angedeutet und bemerkt)

EDIT: ODER eingefügt

: Bearbeitet durch User
von Esmu P. (Firma: privat) (max707)


Angehängte Dateien:

Lesenswert?

Beep.mp3 (33,8 KB) audacity vorgeworfen und die zeitskala angepasst

: Bearbeitet durch User
von Dergute W. (derguteweka)


Lesenswert?

Esmu P. schrieb:
> Beep.mp3 (33,8 KB) audacity vorgeworfen und die zeitskala
> angepasst

Und das Forum mit einem weiteren Megabyte voelliger Redundanz geflutet.

von Esmu P. (Firma: privat) (max707)


Angehängte Dateien:

Lesenswert?

Dergute W. schrieb:
> Esmu P. schrieb:
>> Beep.mp3 (33,8 KB) audacity vorgeworfen und die zeitskala
>> angepasst
>
> Und das Forum mit einem weiteren Megabyte voelliger Redundanz geflutet.

Damit kann jeder hören was der TS hören wollte...

: Bearbeitet durch User
von Ob S. (Firma: 1984now) (observer)


Lesenswert?

Teo D. schrieb:

> Die Membranen (Metllplätchen) sind mechanisch vorgespannt (Dauermagnet).

Ja. Und?

> Die Ansteuerung mit Wechselstrom bringt da ähnlich "viel", wie eine
> Z-Diode in Serie zur Freilaufdiode zu verbauen.

Unsinn. Wenn (mal angenommen) das Ziel wäre, AC möglichst gut 
wiederzugeben, dann ist der Trick einfach, die Membrane während der 
Wiedergabe halt vom Anschlag fernzuhalten. Das macht man ganz einfach 
durch das passende Tastverhältnis der Ansteuerung.

Aber: Das Ziel war hier eben NICHT, AC möglichst gut wiederzugeben, 
sondern den Höreindruck einer existierenden Vorlage möglichst gut 
nachzuempfinden. Und auch das Ziel dieser Vorlage war es offensichtlich 
schon NICHT, AC möglichst gut wiederzugeben. Die hörbaren Artefakte 
sprechen eindeutig dagegen.

D.h.: Dein Beitrag geht zu 100% am Thema vorbei. Sechs, setzen.

von Esmu P. (Firma: privat) (max707)


Lesenswert?

Ob S. schrieb:
...
>
> D.h.: Dein Beitrag geht zu 100% am Thema vorbei. Sechs, setzen.

gilt nur für dich

von Nemopuk (nemopuk)


Lesenswert?

Alexander H. schrieb:
> Mein Buzzer:
> https://cdn-reichelt.de/documents/datenblatt/A900/CEM-1203.pdf

Na endlich, jetzt kann ich eine deiner vorherigen Fragen beantworten:

Alexander H. schrieb:
> Aber es ist viel zu leise. Liegt das am Frequenzgang des Buzzers?

Nach deiner Doku arbeitest du mit 2000 und 3200 Hz. 2000 Hz entspricht 
der Nennfrequenz des Schallwandler, und 3200 Hz kann er Laut Diagramm 
sogar noch besser wiedergeben.

Wurde alles schon gesagt, nur noch nicht von jedem :-)

: Bearbeitet durch User
von Esmu P. (Firma: privat) (max707)


Lesenswert?

Nemopuk schrieb:
...
> Nach deiner Doku arbeitest du mit 2000 und 3200 Hz. ...

Nein, er wünscht sich das nur...

von Nemopuk (nemopuk)


Lesenswert?

Esmu P. schrieb:
> Nein, er wünscht sich das nur...

Ich wollte es freundlich ausdrücken.

von Esmu P. (Firma: privat) (max707)


Angehängte Dateien:

Lesenswert?

Esmu P. schrieb:
> Beep.mp3 (33,8 KB) audacity vorgeworfen und die zeitskala
> angepasst

von Jens M. (jens_m287)


Lesenswert?

Was für ein Aufwand für 6 Töne. Puhh ich glaub da hätte ich mir einfach 
ein fertiges mp3 Modul aus China bestellt und dann die Datei aus dem 
ersten Post aufgespielt.

von Esmu P. (Firma: privat) (max707)


Lesenswert?

Jens M. schrieb:
> Was für ein Aufwand für 6 Töne. Puhh ich glaub da hätte ich mir
> einfach
> ein fertiges mp3 Modul aus China bestellt und dann die Datei aus dem
> ersten Post aufgespielt.

Ja, und die war eben Murks...

von Esmu P. (Firma: privat) (max707)


Lesenswert?

Es ist so ruhig hier. Gibt es schon eine Lösung für den TO?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.