Forum: Analoge Elektronik und Schaltungstechnik Schrillen Ton mit PWM erzeugen


von Holger (Gast)


Lesenswert?

Ich erzeuge mit einer PWM einen Ton und gebe den über einen Lautsprecher 
aus.

Harwaremäßig habe ich die Schaltung von hier verwendet: 
http://www.mikrocontroller.net/articles/Klangerzeugung um das PWM-Signal 
für den Lautsprecher zu verstärken.

Softwaremäßig sieht die Tonerzeugung so aus:
1
On_timer2_overflow:
2
Timer2 = tonhoehe
3
Toggle Buzzer
4
Return


Es funktioniert eigentlich alles sehr gut. Der Ton ist klar und deutlich 
und auch schön laut. Über "tonhoehe" ändere ich die Frequenz.

Aber ich hätte gerne einen richtig schön schrillen Ton. Den Ton einer 
echten Sirene z.B. Ich stehe aber auf dem Schlauch, wie ich mit einer 
PWM einen schrillen Ton erzeugen kann. Mit dem Code oben ist es immer 
ein reicht sanfter Ton. Sehe ich das richtig, daß ich theoretisch zwei 
verschiedene Frequenzen übereinander legen müsste, damit es für das Ohr 
schrill klingt?

Hintergrund: Der erzeugte Ton soll auch dann gut hörbar sein, wenn laute 
Musik läuft. Und hier war mein Gedanke: Je Schriller der Ton, desto 
besser wird man ihn hören. Natürlich ginge auch "lauter", aber das nur 
mit anderer Hardware, nicht mehr über Transistoren.

von J. S. (engineer) Benutzerseite


Lesenswert?

Ich bin nicht sicher, ob ich Dir angesichts Deines Vorhabens wirklich 
Tipps geben soll - wer weiss, wo diese Sirene dann zum Einsatz kommt. 
Hoffentlich nicht, um wieder ein Bundesligaspiel zu stören :-)

Aber schrille Töne erzeugt man mit schnellen Schwebungen, also mehreren 
überlagerten Tonfrequenzen, die leicht moduliert werden, um die 
Schwebung selbst schweben zu lassen.

Also 3 Tongenratoren mit unterschiedlichen - nicht harmonischen - 
Frequenzen und jeweils dreimal unterschiedliches Vibrato. Das mischen 
und dann auf die PWM-Stufe. Hiermit z.B. ging das gut:
http://www.96khz.org/doc/virtualpldorgan2001spartan3e.htm

von Harald W. (wilhelms)


Lesenswert?

Holger schrieb:

> Hintergrund: Der erzeugte Ton soll auch dann gut hörbar sein, wenn laute
> Musik läuft.

Du solltest es mal mit einer etwas höheren Frequenz versuchen.
So etwa 600THz mit einer PWM von ca. 1Hz. Das kann man dann auch
noch bei der lautesten Musik gut wahrnehmen. :-)

von lrep (Gast)


Lesenswert?

Harald Wilhelms schrieb:
> solltest es mal mit einer etwas höheren Frequenz versuchen.
> So etwa 600THz

Entspricht das der Temperatur einer Lötspitze?
Da braucht man nur dran zu fassen und schon gibt es einen schrillen Ton.

von Holger (Gast)


Lesenswert?

@Jürgen: Wenn man einfach nur "Stören" möchte, kauft man sich ne 
Vuvuzuela oder nen Megaphone. Das ist 10 mal lauter.

Ich möchte damit eine Eieruhr (Streng genommen eine Pizza-Fertig-Uhr) 
Programmieren. Wenn der TV an ist, hört man die perfekt. Aber wenn mal 
die Stereoanlage läuft, wird es schwer.

Also lag ich schon ganz richtig, es müssen mehrere Töne überlagert 
werden, damit es "schrill" ist. Ich hätte ggf. dazu schreiben müssen, 
daß ich mit Bascom programmiere.

@Harald: Eine höhere Frequenz habe ich schon versucht. Das geht, aber 
wenn Techno läuft, sind solche Frequenzen auch hier gut und gerne mal 
vertreten. Wenn ich dann noch höher gehe in der Frequenz, wird es 
schnell unangenehm, speziell, wenn mal nur der TV läuft...

600 Terraherz? grübel - Das Ohr geht nur bis 20 Kiloherz. Da ich in 
Bascom mit Timer2 arbeite, gebe ich hier nur den Startwert von 30 bis 
230 an, und keine Frequenzen. Ich kann somit nicht genau sagen, welche 
Frequenz gerade läuft. (Timer 1 ist in Verwendung für den 
Sekunden-Zähler)

von Holger (Gast)


Lesenswert?

Nachtrag: Das Projekt mit der Orgel sieht interessant aus. Da die 
Hardware jedoch schon fertig ist, suche ich eine Lösung auf 
Softwareebene.

Nachtrag 2: Die Soundbeispiele zur Schwebung bei Wikipedia klingen gar 
nicht mal schlecht. Sind aber nicht einfach mit "Toggle" im On_Timer 
Event machbar. Da müssen die alten grauen Zellen wohl die nächsten Tag 
auf Höchstleistung hochgefahren werden^^

Ich hatte die Hoffnung, daß es vielleicht einen ganz einfachen Trick 
gibt in Bascom...

von Joe F. (easylife)


Angehängte Dateien:

Lesenswert?

Wie wär's mit retro-style?
3 Töne (Rechteck) kurz hintereinander (600 Hz, 1200 Hz, 2400 Hz) für je 
ca. 25ms gibt nen hübschen commodore-like Sound...

von Holger (Gast)


Lesenswert?

@Joe: Das klingt cool. Ich hatte den Effekt beim ausprobieren schon mit 
zwei Tönen gehabt. Das war so mittelmäßig. Aber mit drei Tönen 
abwechseln klingt der richtig gut.

von controllergriller (Gast)


Lesenswert?

Holger schrieb:
> @Jürgen: Wenn man einfach nur "Stören" möchte, kauft man sich ne
> Vuvuzuela oder nen Megaphone. Das ist 10 mal lauter.

Nö, dann kauft man sich ein Bundeswehr-Notsignal. Kostet viel weniger 
als ein Megafon, ist kleiner als Vuvuzela und Megafon und quasi 
unkaputtbar.

Wird als Power-Fanfare verkauft - und das Ding heißt zurecht so.
Darf man nur eigentlich nicht zum Stören benutzen. fg

von J. S. (engineer) Benutzerseite


Lesenswert?


von Harald W. (wilhelms)


Lesenswert?

Holger schrieb:

> Ich kann somit nicht genau sagen, welche Frequenz gerade läuft.

Hier kannst Du nachsehen, welche Frequenz ich meinte. :-)
http://de.wikipedia.org/wiki/Licht#Licht_als_Sinnesreiz

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.