Ein erster Versuch wäre das hier:
201 Hz Grundton
7 Hz Modulation
sägezahnförmige, linear abklingende Hüllkurve
und wie das klingt im Anhang:
Hallo,
Da ich eine meiner AVR Uhren etwas aufwerten möchte, will ich ihr einen Glockenschlag spendieren.
Wer nah an einer Kirche wohnt kennt es mit Sicherheit, z.B.
11.15 ein Schlag
11.30 zwei Schläge
11.45 drei Schläge
12.00 vier schläge + 12 mal etwas anderer Ton + sehr viel Krach, weil 12
Jetzt lassen wir den Krach weg sonst meckert die Frau, es würde ein einfacher Glockenschlag reichen
Nur wie macht man sowas
Einfache Töne kann ich produzieren, das ist ja kein Problem, einfach einen Ausgang in der gewünschten Frequenz "wackeln" lassen fertig ist der Ton,
aber so ein Glockenschlag dürfte wohl nicht so einfach zu machen sein, da kommt man mit einfachem Viereck wohl nicht hin
Leider hab ich von sowas keine Ahnung, vielleicht kann mir mal jemand unter die Arme greifen ?
Gruß Sebastian
Linus TorvaldSoftware is like s e x: its better when its free.
Ein erster Versuch wäre das hier:
201 Hz Grundton
7 Hz Modulation
sägezahnförmige, linear abklingende Hüllkurve
und wie das klingt im Anhang:
Hallo stochri,
danke für Deine Antwort.
Der Klang hört sich schonmal nicht schlecht an,
Frage,
Grundton,Modulation wir reden hier doch nicht von Viereck, ist das Sinus ?
Zum Thema Sinuserzeugung hab ich das hier
Also R/2R-Netzwerk, es ist wohl ein Widestandsgrab, ich wüßte aber sonst nicht wie man ohne DAC einen Sinus erzeugen könnte
Gruß Sebastian
Linus TorvaldSoftware is like s e x: its better when its free.
Soweit ich weiss, gibt es R2R Netzwerke auch als Modul. Die sehen so aus Widerstandsarrays.
Ansonsten kann man quasi-analog-Signale via PWM erzeugen. Beim Atmega 8 oder den Attiny's geht das mit 8 Bit bei 31Khz.
Bei 31Khz Ausgabefrequenz hat man ein wenig hochfrequente Rückstände. Die kann man aber ganz gut mit einem einachen RC-Tiefpass ( sagen wir mal 3 kHz Grenzfrequenz ) dämpfen.
Vielleicht kannst Du Dir hier etwas herausschneiden:
http://www.kprkpr.de/Dresden/Geschic...auenkirche.htm
http://www.kprkpr.de/Musik/Johannes.wav
Hallo Manf,
danke für die links
Ich hab mir schon ein paar wav's besorgt und in einem Bearbeitungsprogramm angeguckt...
Nur leider stehe ich da wie ein Ochse vorm Tor und verstehe nur Bahnhof...
Ich glaube, ich zerlege mir die Aufgabe in kleinere Häppchen, sonst komm ich
da nicht viel weiter...
Ich werde Morgen wenn ich dazu komme versuchen erstmal einen Sinus zu kriegen.
Ich glaube PWM ist da wirklich besser als R2R Netzwerk, schon wegen der vielen Pins, die ich da bräuchte.
Gerd Schmidt hat auf seiner Seite (der Link in meinem letztem Beitrag) eine schöne Sinustabelle gemacht, ich versuche den Timer2 im Phase Correct Mode mit den Werten zu füttern, mal schauen was dabei rauskommt...
Gruß Sebastian
Linus TorvaldSoftware is like s e x: its better when its free.
Warum nimmst du nicht eine richtige Glocke? Hört sich auf jeden Fall besser an als ne elektrische. Wackeln zB per (Stepper)-Motor. Ich mache es so mit nem Klangspiel an meiner Uhr. Solche Sphärenklänge macht mir keine Elektrik!
Disclaimer: none. Sue me.
Ob es Kirchenglocken in SMD-Bauweise gibt, bin ich jetzt nicht sicher. Die gängigen Vorbilder sind nicht für Wohnzimmer etc. gedacht... nicht eine richtige Glocke..
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
Es gibt doch diese Türglocken. Da hämmert ein starker Zugmagnet zwischen zwei Klangblechen hin und her. Die Dinger sind auh noch nicht sehr groß.
Habe ich auch schon mal eine gemacht, extra klein für den Attiny:Gerd Schmidt hat auf seiner Seite (der Link in meinem letztem Beitrag) eine schöne Sinustabelle gemacht.
Code:/********************************************************************** int8_t sinus( uint8_t x) Sinus Berechnung y=127*sin(2*pi/256*x) x:0..255 y:-127..+127 23.5.2006 stochri **********************************************************************/ int8_t sinwerte[17]={0, 12, 25, 37, 49, 60, 71, 81, 90, 98, 106, 112, 117, 122, 125, 126, 127 }; int8_t sinus( uint8_t x) { int8_t wert; x=x>>2; if(x>48) { x=64-x; wert=-sinwerte[x]; } else if(x>32) { x=x-32; wert=-sinwerte[x]; } else if(x>16) { x=32-x; wert=sinwerte[x]; } else { wert=sinwerte[x]; } return wert; }
Lesezeichen