Ton auswerten mit ATmega

Gast #108926
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
Gast #108927
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.
Gast #108928
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...
Gast #108931
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.
Gast #108936
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

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 22 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.