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
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.
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...
Wenn das Signal entsprechend Stark ist (>100mV), dann geht es. Ist zwar nicht die feine Art, aber solange es geht interessiert es keinen...)
Ich weiß, ist nicht die feine Art, Signal dürfte auch >100mV sein. Aber wie mach ich das in Assemler/C konkret?
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.
Hallo Vielleicht bietet die Design Note 27 von AVR Freaks einen weiteren Ansatz: http://www.avrfreaks.net/Tools/showtools.php?ToolID=317 Gruss Justus
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
Hallo, hab mal ne 5-Tonauswertung programmiert. Signal über ein OP zum Rechteck umwandeln und dann die Periodenzeiten messen und auswerten Gruß Boris
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!
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
Hi, wie wärs in Hardware mit XR2211 ? ;) Je nach Anwendung halt.. Gruss, Tim
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.