Forum: Mikrocontroller und Digitale Elektronik Feuerlarm Sirene


von Tobias (Gast)


Lesenswert?

Hallo zusammen,

momentan baue ich aus analogen Rauchmeldern eine kleine Brandmeldeanlage 
für private Zwecke.

Die eigentliche Zentrale läuft auch soweit. Bisher habe ich den Alarmton 
durch einen Piezo-Summer ausgegeben. Dieser befindet sich noch auf der 
Platine der Zentrale.

Nun möchte aber in den Räumen aber einen separaten Alarmgeber haben.
Als Ton hatte ich mir sowas vorgestellt. 
http://www.salamisound.de/5564068-alarmsirene-14-mal-heulen . Meine 
Frage ist nun, wie kann ich so eine Tonfolge durch einen µC abwickeln. 
Technisch hatte ich an einen kleinen Attiny gedacht. Dieser soll dann 
einen Lautsprecher oder einen Summer ansteuern. Wobei ich der Meinung 
bin, dass ein Lautsprecher hier wohl wesentlich besser geeignet ist 
oder?

Für die Hardware hatte ich an so etwas gedacht 
http://www.mikrocontroller.net/articles/Klangerzeugung (siehe Abschnitt 
PWM)

Leider ist mir bis jetzt völlig unverständlich wie ich die oben 
angegebene Tonfolge von oben in den µC übersetzten kann.

Gruß Tobias

von Danny P. (chief05)


Lesenswert?

@Tobias:
hast Du es denn bislang geschafft durch die verlinkte Methode einen Ton 
(bspw. 1kHz) zu erzeugen?

Eine auf-/abheulende Sirene erhälst du indem du eine Variable, die die 
aktuell auszugebene Frequenz enthält, hoch, bzw. runter zählst.
Das heisst es wird quasi für 1ms ein Ton von 1000Hz erzeugt, für die 
nächste ms 1005Hz.... und so weiter bis bspw. 1500Hz.
Ist der Wert erreicht, gehts wieder abwärts bis 1000Hz.

Mit den Taktsprüngen und Zeiten dazwischen kannst gut experimentieren, 
bis dir der "Sound" gefällt. Bei dem verlinkten Sound kannst du 
wahrscheinlich aber eher bei 400Hz anfangen als bei 1000Hz...

von Tobias (Gast)


Lesenswert?

Hallo,

ich hab's bis jetzt mit einem Piezo realisiert. Also ein einfaches 
unterbrochenes Signal.

Das mit der Schleife hat beim
piezo leider nicht geklappt. Hab es einfach mal probiert den pwm Wert 
von 10 bis 250 hochzählen zu lassen bei einem Prescaler von 64. Der Ton 
bleibt konstant.

Soll ich denn besser einen Lautsprecher nutzen? Es sollte ja schon gut 
hörbar sein.

Ich meine in Erinnerung zu haben, dass Alarmgeber aus der Industrie mit 
Lautsprechern laufen.

Gruß Tobias

von Felix S. (pepe)


Lesenswert?

Hi,
mit PWM wirst du da m.E. auch nicht viel. Die Frequenz bleibt ja 
konstant, du änderst ja nur das Tastverhältnis.

mfg
Felix

von Tobias (Gast)


Lesenswert?

Hallo,

ja stimmt, danke. Hab irgendwie gepennt.
Ich muss die Frequenz über CTC für die PWM ändern oder?

Das Tastverhältnis ist dann ja nur für die Lautstärke zuständig.

Wie realisere ich denn die Frequenzänderung in C?
Über eine Zuweisung zu OCR0? Also über einen Timer?

Gruß Tobias

von Felix S. (pepe)


Lesenswert?

Moin,
ja, so würde ich das auch machen.
Phasen richten PWM Modus mit OCR als maximalen Wert.
Und OCR dann über einen zweiten Timer hoch- oder eben runterzählen 
lässen.

mfg Felix

von Mr. Tom (Gast)


Lesenswert?

Wenn der Ton ein bisschen schöner sein soll, wäre eine DDS vielleicht 
die bessere Methode. Zur Tonhöhenänderung würde man entsprechen den zum 
Phasenakkumulator hinzuzuaddierenden Wert timergesteuert modulieren.

von Axel R. (Gast)


Lesenswert?

ich habe so etwas (etwas größer von der Bauform her) aufgebaut.
DDS geht aber auch.
http://elm-chan.org/works/sd8p/report.html

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.