www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Ton auswerten mit ATmega


Autor: Johannes Kohlmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe gehört, dass man mitm ATmega-µC auch Audio-Töne auswerten
kann, die man einschleust. Ich möchte mitm PC per Klinkenkabel zum
Mikrocontroller anhand von Tönen Informationen übertragen (Ton = feste
Frequenz feste Länge). Wie ich das an den µC anzuschließen habe, weiß
ich.

Kann jemand ein Code-beispiel posten (C oder Assembler), wie man die
Frequenz (in Hz) des Tones ermittelt. Hab gehört, dass man das anhand
bestimmter Pausenlängen irgendwie auswerten kann, ist mir aber nicht
ganz klar. Wie ich gesehen habe, haben es auch andere schon
hinbekommen, wär um jeden Tipp dankbar.
Gruß Johannes

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist es immer nur ein einzelner Ton, oder ist es ein Gemisch aus mehreren
Tönen ?
Einen einzelnen Ton wandelt man am besten mit Schmitttrigger usw. in
Rechteckimpulse um, und zählt die Impulse pro Zeiteinheit (z.B. 1s) Nun
hat man die Frequenz in Hz.

Ist es ein Gemisch, wird es schwer, da man FFT usw. benötigt.

Autor: Johannes Kohlmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein, es sind alles reine einzeltöne ohne gemischte sachen.
Hm ok - Schmittrigger wär ein Ansatz.
Aber ich hab schon gesehen, dass jemand einfach das ankommende
Audiosignal direkt mit einem Spannungshalbierer in den µC einschleust
ohne Schmitttrigger, also müsste es doch auch irgendwie so gehen?! Hab
ein Bild gesehen, aber leider nicht den Quellcode...

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn das Signal entsprechend Stark ist (>100mV), dann geht es. Ist zwar
nicht die feine Art, aber solange es geht interessiert es keinen...)

Autor: Johannes Kohlmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich weiß, ist nicht die feine Art, Signal dürfte auch >100mV sein. Aber
wie mach ich das in Assemler/C konkret?

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit einem Timer + zusätzlicher Variablen einen 1Hz Takt erzeugen
Mit einem anderen Timer (Takteingang=Extern) die Impulse des Signals
zählen.
Am Ende der einen Sekunde hast du das Ergebnis.

Autor: justus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Vielleicht bietet die Design Note 27 von AVR Freaks einen weiteren
Ansatz:
http://www.avrfreaks.net/Tools/showtools.php?ToolID=317

Gruss Justus

Autor: Fiffi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Johannes,

ich habe mal den LM567 verwendet um ZVEI-Tonfolgen zu dekodieren.
(Ein LM567 pro Ton)

Ich habe ihn verwendet wegen seiner guten Stör- und Rausch-
unterdrückung.


Gruß

Fiffi

Autor: boris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
hab mal ne 5-Tonauswertung programmiert. Signal über ein OP zum
Rechteck umwandeln und dann die Periodenzeiten messen und auswerten
Gruß Boris

Autor: manu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi boris,

ich weiß, ist ein alter Thread, aber evt. könntest du deinen Code für
das decodieren zur verfügung stellen? Hätte reges interesse daran!

big thx!

Autor: Marko (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
na du kannst doch einfach den komparator und die timer benutzen.
Audiosignal auf komparator, timer 16bit auf 1hz, poti auf die
gegenseite des komparators und fertig.
mit dem poti die schaltschwelle auf knapp unter die amplitude des
audiosignals einpegeln, der komparator löst nen interrupt aus, der ne
variable inkrementiert, alle 1 sekunde bei timerinterrupt die variable
auslesen und ausgeben ... fertig

Autor: Tim O. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
wie wärs in Hardware mit XR2211 ? ;)
Je nach Anwendung halt..

Gruss,
Tim

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.