Umschaltung von Audioquellen?

Hallo Leute,
an meinem Arduino hab ich ja noch ein paar Pins frei und jetzt überlege ich, ob ich nicht noch eine Umschaltung für Audioquellen dazupacke.
Hintergrund ist der, dass ich Lautsprecher im Helm habe, über die ich mein Navi betreibe. Allerdings könnte ich in der Zeit, in der das Navi sowieso still ist auch Musik laufen lassen (andere Quelle). Eventuell kommt später auch noch ein Funkgerät dran.

Jetzt müssten diese Quellen über Prioritäten gesteuert werden (Navi hat vorrang, dann Funk, dann das Gedudel).

Leider hab ich absolut gar keine Ahnung, wie ich das anstellen soll. Ich muss irgendwie messen, ob ein nennenswertes Signal anliegt. Dazu könnte ich die Eingangssignale direkt über die Analogpins auslesen. Soweit ist es klar. Jetzt muss ich Digitalpins schalten, die dann irgendwas dazu bewegen, dass es die Quelle wechselt.

Transistoren, die die ungewollten Signale auf Masse legen, fallen schonmal aus, da sonst alle Signale auf Masse liegen. Transistor direkt in den Signalweg wird auch nicht klappen, da dann keine Spannung anliegt.

Mit Relais schalten? Das ist doch auch Käse oder?

Also wie macht man sowas? Hat da jemand den entscheidenden Tip?

Frag mal Google nach "Analog Multiplexer".

Als Audioschalter werden gerne 4066er (also z.B. 74HC4066) eingesetzt, solange keine allzu hohen Ansprüche an die Signalqualität gestellt werden.

Der 74HC4066 sieht doch gar nicht mal schlecht aus. Qualität ist sowieso automatisch relativ mies im Helm (man hat ja massiv Störgeräusche und so) von dem her reicht es, wenn man eine brauchbare Qualität hat. Man sollte halt schon noch alles verstehen können.

Seh ich das richtig, ich kann an dem Baustein einfach die ganzen Signale an die Eingänge dranhängen und die Ausgänge führe ich einfach zusammen und hänge da den Kopfhörer dran. Ich brauche absolut nix zusätzlich außer ein paar Kabeln?

Einen kleinen Verstärker werde ich natürlich noch hintendranhängen (da muss ich mich auch mal noch schlau machen, was man da am besten nimmt), da ich 1. das Signal ja anzapfen muss und 2. die Lautstärke teilweise sowieso etwas gering ist.

Im Prinzip ja, schau z.B. hier:

Der TDA 1029 ( HTTP 301 This page has been moved ) ist besser für Audio-Anwendungen geeignet, und lässt sich auch direkt vom Arduino ansteuern ( mit 3 Digital-Ausgängen steuerst du 4 Eingänge - Der 4. Eingang ist aktiviert, wenn die anderen 3 aus sind ).
Ich glaube aber, dass er nicht mehr hergestellt wird. Vielleicht gibt es noch irgendwo Restposten.
Das Teil ist in meine Eigenbau-Stereo-Anlage eingebaut, und wird bei mir von Standard-TTL-Bausteinen angesteuert.

MfG

Ich klinke mich hier mal mit ein, weil ich vielleicht mal was ähnliches brauche.

Der 4066 sieht ja schon recht gut aus (reicht der für das was man "Car-Hifi" nennt?), ich hab aber noch eine Frage zur Beschaltung.

Ausgehend von diesem Datenblatt (Seite 1 - Connection Diagram): http://electroschematics.com/wp-content/uploads/2011/04/74VHC4066.pdf

VCC und Ground sind klar.
xCTL ist mein jeweiliger Eingang, oder?
Ist dann xI/O der Ausgang, wenn an xCTL ein Signal anliegt? Wofür ist xO/I dann?

Und, wahrscheinlich sehe ich das aus Unkenntnis nicht, aber ist da irgendwo eine Logik integriert, die verhindert, dass ich auf drei Eingänge gleichzeitig ein Signal gebe?

Es funktioniert anders, nehmen wir z.B. den ersten Switch:

1CTL ist der Steuereingang. Solange er auf H-Pegel liegt, schaltet der Switch von 1I/O nach 1O/I durch. Geht 1CTL auf L, so wird die Verbindung unterbrochen.

Die Switches sind bidirektional, d.h. es ist unerheblich, wo Ein- und Ausgang liegen. Wichtig ist, dass die geschalteten Signale nicht an die Betriebsspannungsgrenzen heranreichen oder sogar darüber hinausgehen. Ein ausreichender Abstand dazu ist auch erforderlich, um die Verzerrungen gering zu halten.

Bzgl. der Audioqualität empfehle ich jedem, sich selbst ein Bild zu machen und dann zu entscheiden. Der Baustein ist immerhin sehr günstig, man geht also kein großes Risiko ein.

Ah, ok. Aber es gibt in diesem Baustein keine Logik im Sinne von "Navi ist wichtiger als Funk, Funk ist wichtiger als Musik", die müsste ich mit Logikbausteinen noch selbst aufbauen?!

Genau das lässt du ja dann den Arduino machen.
Signale anzapfen und über analogPin auslesen. Und dann je nach priorität umschalten. Natürlich muss man das noch ein wenig glätten. Nicht dass man zufällig am Nulldurchgang misst und dann umschaltet, obwohl das Signal noch aktiv ist.

Ok, keine Fragen mehr Herr Doktor...