Hallo ich wusste nicht wo ich diesen beitrag schreiben soll is ja eigentlich auch ein funkthema. Okay Ich möchte gerne 5-Tonfolgen auswerten und dann an einen seriellen drucker schicken. Die 5 Tonfolge ist eine Art "Daten"telegramm. Der Standard ist ZVEI Es ist so aufgebaut, dass 5 töne nacheinander gesendet werden. mit einer länge von 70ms je Ton. Die frequenzen sind von 1060 bis 2800 HZ. Wie realisiere ich es dass mein AVR die unterschiedlichen Töne sauber erkennt? oder sollte man da mit Hardware Bandpässen arbeiten? aber die müssten ja dann wiederum sehr Steil und Schmalbandig sein.. kosten... Wäre für einen Denkanstoss danlbar!
Gleichrichten und mißt Du die Zeitabstände zwischen den Nulldurchgängen oder Maxima?
das kann man recht einfach mit dem internen komparator des mega8 machen. den timer in capture interrupt mode betreiben und fertig is es. dazu braucht man keine aufwändig schaltung aussen herum. ne diode nen widerstand und nen elko sollte genügen.
Das Thema hatten wir schon öfter: Beitrag "Mit 8051er 5-Tonfolge nach ZVEI dekodieren?" Beitrag "ZVEI 5-Tonfolge decodieren" Beitrag "Töne erfassen" Beitrag "Audio-Signale Auswerten" Beitrag "AVR und C-Bus" Für reine Software-Decodierung ist der Goertzel-Algorithmus zuständig, das geht auch auf einem AVR. http://de.wikipedia.org/wiki/Goertzel-Algorithmus
Maxima? Sagt mir leider nichts. Zeitabstände messen hört sich gut an. Kannst du mir da vielleicht auch noch nen anstoß zu geben. Wie sollte ich das realisieren dass der AVR auch dann anfängt zu messen wenn der erste ton kommt? Sprache ist übrigends auch auf der leitung, das könnte bei der Messmethode zu Fehlern führen. Oder Sollte ich beim Eingang einen hochpass setzen dessen grenze bei 1KHz liegt?
ohne aufwändige alogrithmen home.arcor.de/output/elektronik/5ton-AVR.pdf
wenn du die Signale mittels Vertsärker/Begrenzer auf CMOS-Pegel bringst, kannst du die an den ICP-Eingang hängen und damit die Periodendauer messen. Mach ein paar Messungen, die erste ist wahrscheinlich sowieso fehlerhaft. Hast du ein paar Messungen, kannst du dich richtig austoben, um Fehler auszusortieren :-). Ich hatte mal was ähnliches, 5 Messungen, grössten und kleinsten Wert wegschmeissen, Mittelwert aus den restlichen 3. Passte gut. Wenn die 70ms halbwegs konstant sind, kannst du auch das Tor für diese Zeit öffnen und die Anzahl der Pegelwechsel zählen. Oder mit min. 5kHz das Analogsignal abtasten und ne FFT drüberlaufen lassen (aber das dürfte einen kleinen 8Biter rechenmässig in die Knie zwingen, ich habs noch nicht probiert, einmal auf einem M16C und einmal auf einem DSP. Der M16 braucht für eine 4096-Punkte-Integer-FFT 2,5s)
Suche mal über google nach Martin Haun und ZVEI das hilft dir weiter habe es selbst aufgebaut... Jochen
Ich würde dir den Goertzel Algorhythmus empfehlen. Ich habe damit auch schon mal mit einem AVR die DTMF Töne dekodiert. Das hat gegen der Frequenzmessung mit Timer den Vorteil das Störungen durch die Digitalen Filter besser unterdrückt werden. Gruss Helmi
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.