Schrillen Ton mit PWM erzeugen

Gast #4131044
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.
Persönliche Seite #4131056
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
Gast #4131082
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)
Gast #4131095
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...
Gast #4131107
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren