Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Wyszukaj w ofercie 200 tys. produktów TME
Kategoria: Kamery IP / Alarmy / Automatyka Bram
Montersi
Proszę, dodaj wyjątek elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Automatyczny przełącznik audio

DJ Danielus 18 Maj 2014 17:54 11388 14
  • Automatyczny przełącznik audio

    Witam!
    Chciałbym przedstawić prosty projekt automatycznego przełącznika audio. Nie jest może tak okazały jak inne konstrukcje, ale warto mu poświęcić chwilę, tym bardziej, że pracując nad urządzeniem nie trafiłem na wiele tego typu konstrukcji.

    Ale od początku :)
    Układ został stworzony z myślą o rozwiązaniu uciążliwego problemu przełączania kabli pomiędzy urządzeniami multimedialnymi, np. MP3, tabletem czy telefonem a wzmacniaczem i głośnikami. Pozwala na automatyczny wybór jednego z 4 wejść w zależności od występowania sygnałów wejściowych.

    Regulacja głośności powinna odbywać się za pomocą wzmacniacza. Poziom sygnału z urządzeń multimedialnych powinien być ustawiony na średnią wartość.


    Opis
    Urządzenie sprawdza w pętli na którym wejściu występuje sygnał audio. Po stwierdzeniu istnienia sygnału układ zatrzaskuje się – zmiana wejścia możliwa jest jedynie po zaniku obecnego sygnału i odczekania ustalonego przez nas czasu. Aktywne wejście sygnalizowane jest przez świecącą diodę LED. Czas oczekiwania powinien wynosić minimum kilka sekund, ponieważ zapobiegnie to niepożądanej zmianie wejścia, np. podczas przejść pomiędzy utworami.


    Wykaz elementów
    rezystory:
    R1, R3, R6, R10…13 100k 0,25zł
    R2, R5 1k 0,25zł
    R4 2,2k 0,25zł
    R7, R8 4,7k 0,25zł
    R9 330 0,25zł

    kondensatory:
    C1 1u 0,70zł
    C2, C3, C4, C10, C11 10u 0,80zł
    C5…9 100n 0,80zł

    półprzewodniki:
    IC1 4052 1,00zł
    IC2 LM358 0,50zł
    IC3 ICL7660 3,00zł
    IC4 Attiny 2313 7,00zł
    LED1...4 0,80zł

    inne:
    listwa kątowa goldpin 1,00zł
    10x gniazdo cinch do druku 8,00zł
    podstawki pod układy scalone (20pin, 16pin, 2x 8pin) 0,59zł
    laminat 90x100mm 1,90zł

    suma: 27,34zł
    Pod uwagę nie wzięto kosztów wykonania płytki PCB oraz obudowy.

    Schemat

    Automatyczny przełącznik audio

    Układ składa się z kilku bloków, m. in.:

    Zasilanie
    Automatyczny przełącznik audio
    Całe urządzenie zasilane jest napięciem 5V. Wzmacniacz zasilamy napięciem niesymetrycznym, ponieważ interesuje nas jedynie dodatnia część sygnału. Kłopot może stanowić kostka 4052, która to wymaga zasilania symetrycznego. Z tego powodu w projekcie użyto układu ICL7660. Połączenie kondensatorów elektrolitycznych o pojemności 10uF pomiędzy nóżkami: 2 i 4 (oznaczenie CAP) oraz 5 i 3, czyli odpowiednio wyjściem i masą układu, pozwala na osiągnięcie napięcia wyjściowego równego wejściowemu ze znakiem minus.


    Multiplekser
    Automatyczny przełącznik audio
    Multiplekser zrealizowany jest na kostce 4052. Układ posiada 4 dwukanałowe wejścia, które mogą być sterowane sygnałem z mikrokontrolera (MUXA i MUXB).
    Automatyczny przełącznik audio
    Wejście INH zwieramy do masy, dzięki czemu układ zawsze jest aktywny. Detektor pobiera sygnał z wyjścia X, dlatego też na odpowiednich wejściach (X0…3) musimy dać rezystory (R10…13), dzięki czemu w przypadku braku sygnału lub podłączonego kabla, układ nie wzbudza się z powodu zakłóceń. Kondensatory C10 i C11 eliminują składową stałą.


    Detektor sygnału

    Automatyczny przełącznik audio
    Detektor sygnału powstał w oparciu o detektor amplitudy. Moduł składa się 2 wzmacniaczy operacyjnych (LM358), diody oraz kilku kondensatorów i rezystorów. Sygnał pobierany jest z wyjścia multipleksera. Kondensator C1 przepuszcza jedynie składową zmienną. Rezystor R1 zabezpiecza wzmacniacz przed wzbudzaniem w przypadku braku sygnału na wejściu. Powinien mieć stosunkowo dużą wartość, aby nie stanowić znacznego obciążenia. Układ LM358 wraz z rezystorami R2 i R3 stanowi wzmacniacz nieodwracający o sporym wzmocnieniu (około 100). Wzmocnieniu ulega tylko dodatnia część sygnału (ujemna część jest tracona, ze względu na niesymetryczne zasilanie). Na tym etapie, dzięki znacznemu wzmocnieniu, sygnał jest zbliżony do przebiegu prostokątnego.
    Automatyczny przełącznik audio
    Następnie w urządzeniu znajduje się detektor amplitudy, który podtrzymuje sygnał w stanie wysokim. Elementy C2 i R4 wyznaczają stałą czasową. Kolejny wzmacniacz LM358 wraz z rezystorami R6 i R5 filtruje zakłócenia, które występują przy braku sygnału, zabezpieczając w ten sposób urządzenie przed niekontrolowanymi zmianami wejść. Na wyjściu wzmacniacza dostaniemy stan wysoki w przypadku wystąpienia wzmocnionego sygnału audio lub stan niski, jeżeli napięcie na wejściu nieodwracającym jest niższe niż wynikające z dzielnika R5 i R6. W rezultacie jest to układ prostego komparatora napięcia.


    Płytka PCB

    Automatyczny przełącznik audio Automatyczny przełącznik audio

    Urządzenie zrealizowane jest na 6 PCB – 5 na wejścia oraz wyjście, 1 na układ wykonawczy. W projekcie użyto laminatu jednostronnego, a nadruki naniesiono metodą termotransferu. Z tego powodu w niektórych miejscach musimy wlutować zworki.

    Automatyczny przełącznik audio
    Automatyczny przełącznik audio
    Na płytkach odpowiadających za wejście znajdują się rezystory R10…13. Na płytce odpowiadającej za wyjście nie musimy wykonywać dodatkowych otworów pod rezystor.

    Automatyczny przełącznik audio
    Układ wykonawczy znajduje się na osobnej, największej płytce.
    Elementy SV1…5 to listwy kątowe typu goldpin. Należy wlutować je najpierw na płytkach z gniazdami cinch, a następnie dopasować na płycie głównej układu.

    Odstęp oraz grubość ścieżek jest stosunkowo duża, dodatkowo w projekcie użyto wyłącznie elementów przewlekanych. Z tego powodu wykonanie urządzenia nie powinno sprawić problemu nawet początkującym elektronikom.

    Kod programu
    Program został napisany w uproszczonym języku C – Arduino.
    Kod programu automatycznego przełącznika audio jest bardzo prosty. Składa się z kliku pętli i instrukcji warunkowych.

    Automatyczny przełącznik audio

    W pętli głównej programu - loop(), zmieniamy kolejno wejścia multipleksera oraz badamy sygnał wyjściowy. Zastosowanie opóźnienia - funkcja delay(50), jest konieczne. W przeciwnym wypadku układ nie działa prawidłowo i występują błędy podczas przełączania. Po każdej zmianie wejścia multipleksera, program wchodzi do funkcji fMUX(), która sprawdza stan logiczny na wyjściu.
    Funkcja fMUX() sprawdza stan sygnału wyjściowego po zmianie wejścia multipleksera.
    W przypadku pojawienia się stanu wysokiego zapala się dioda LED odpowiedzialna za dane wejście, a układ "zatrzaskuje się" do czasu pojawienia się stanu niskiego na wyjściu. Po zmianie stanu, procesor oczekuje krótką chwilę (określoną w funkcji delay()) na pojawienie się stanu wysokiego. Jeżeli nastąpi zmiana, układ ponownie zatrzaskuje się. Przez ten czas dane wejście cały czas jest aktywne. Utrzymujący się stan niski prowadzi do wyjścia z pętli, wygaszenie diody oraz przejście do dalszego sprawdzania sygnału z wejść multipleksera w głównej pętli układu.

    Podsumowanie
    Na sam koniec kilka słów ode mnie. Urządzenie spełnia powierzone mu zadanie choć ma kilka niedoróbek. Pierwszą z nich jest kwestia oprogramowania - całość powstała już jakiś czas temu. Niestety obce było mi wykorzystanie timerów i przerwań. Dlatego też w uproszczonej wersji czasami zdarza się, że układ przełącza się pomimo iż muzyka gra - trafia na chwilę ciszy, odczekuje kilka sekund i ponownie trafia na ciszę, czego efektem jest przełączanie. Rozwiązanie jest proste. W funkcji oczekującej można by wykorzystać timer, który w momencie braku sygnału co kilkanaście milisekund sprawdza stan na wejściu - jeśli sygnał występuje, to układ ponownie się zatrzaskuje, jeśli nie, to po zliczeniu zer (brak sygnału wejściowego) układ zmienia wejście. Innym problemem są zakłócenia przy przełączaniu, objawiające się cichymi trzaskami. Zjawisko to wyeliminować można poprzez wyłączanie głośników, kiedy ich nie używamy lub poprzez zastosowanie bufora sterowanego za pomocą mikrokontrolera, który przepuszczałby sygnał dopiero wtedy, kiedy pojawiłby się dźwięk na którymś z wejść.
    Mam nadzieję, że układ przypadnie Wam do gustu i znajdzie się osoba chcąca wykonać to urządzenie dla siebie :-)

    Pozdrawiam
    Daniel Turbasa
    gil-59.blogspot.com


    Fajne!
  • #2 18 Maj 2014 19:14
    paulo 443
    Poziom 12  

    Witam

    ok.
    Czyli twój układ szuka sygnału audio w polu X i na nim pozostaje jeśli będzie wystarczająca amplituda.
    Ale co z polem Y ? Zapewne chcesz przełączać parami (lewy z prawym), tylko jest mały problemik. Co jeśli w parze wystąpi sygnał w polu Y <mono> gdzie z kolei w polu x go nie będzie ? (układ będzie szukał sygnału siejąc śmieci w polu Y)

  • #3 18 Maj 2014 20:26
    DJ Danielus
    Poziom 11  

    Racja. Jest to rozwiązanie celowe z mojej strony, ponieważ nie chciałem zniekształcać sygnału, łącząc wyjścia multipleksera.
    Z tego co teraz widzę, można by dać jeszcze jeden wzmacniacz pracujący tak jak ten pierwszy i za diodą je połączyć.

    Przyznam też, że poszedłem trochę na łatwiznę i założyłem, że sygnał będzie stereo, co w moim przypadku się sprawdzało ;)

  • #4 18 Maj 2014 20:57
    paulo 443
    Poziom 12  

    No właśnie.
    Problem w tym że sygnał nie zawsze musi być stereo. (użytkownik może się wpiąć np. w pole Y pozostawiając pole X)

    Co do wzmacniaczy by mieć święty spokój możesz go połączyć przez diodę do tego pierwszego. Potencjały wzmacniaczy nie będą się żenić, a ten trzeci będzie wykrywał sumaryczne stany logiczne sygnału amplitudy.

  • #5 18 Maj 2014 23:36
    paluszasty
    Poziom 23  

    W tym okładzie warto by wg mnie dodać możliwość ręcznego wyboru źródła sygnału. W zasadzie wystarczył by do tego dodatkowy jeden przycisk.

    Ponadto zamiast kostki 4052 lepiej wg mnie sprawdziły by się poczciwe przekaźniki lub układy dedykowane do audio.

    Dostrzegam tutaj jeszcze dość poważny problem - podanie 2 sygnałów jednocześnie na dwa wejścia. Problem staje się jeszcze bardziej skomplikowany jeśli na jednym z wejść będzie dłuższa przerwa np miedzy utworami.

    Mimo wszystko uważam jednak projekt za ciekawy.

    Może się jeszcze czepiał będę ale nie wiem czemu kolega umieścił na płytce złącza do programowania ISP? Wtedy dla świętego spokoju trzeba by kostkę 4052 warto by podłączyć do innych wyjść uC.

    Ciekawy pomysł z tymi płytkami na złącza.

  • #6 19 Maj 2014 00:11
    DJ Danielus
    Poziom 11  

    paluszasty napisał:
    Dostrzegam tutaj jeszcze dość poważny problem - podanie 2 sygnałów jednocześnie na dwa wejścia. Problem staje się jeszcze bardziej skomplikowany jeśli na jednym z wejść będzie dłuższa przerwa np miedzy utworami.


    Problem rozwiązany jest w taki sposób, że układ sprawdza po kolei stany na wejściach. Jeżeli natrafi na sygnał to nie sprawdza dalej. Naszkicowany graf pokazuje, że pierwszeństwo uzyska sygnał pierwszy w kolejce: 1-2-3-4-1-2-3-4 itd. Zmieniając trochę pętlę można ustalić pewne priorytety, tak, że, np. po braku sygnału układ sprawdza wejścia zawsze począwszy od 1.

    paluszasty napisał:
    Może się jeszcze czepiał będę ale nie wiem czemu kolega umieścił na płytce złącza do programowania ISP? Wtedy dla świętego spokoju trzeba by kostkę 4052 warto by podłączyć do innych wyjść uC.


    Cenię konstruktywną krytykę, dlatego już odpowiadam ;) Układ przed wykonaniem płytki był testowany na płytce stykowej na tyle, na ile pozwoliły na to warunki. To też umożliwiło mi wyeliminować pewne problemy i udoskonalić układ zgodnie z moją ówczesną wiedzą. Ponadto obudowa została posklejana klejem, na szczęście wieko polimerowym, co pozwala na ewentualne korekty. Aczkolwiek, póki co układ działa zgodnie z założeniami i na chwilę obecną nie zamierzam wprowadzić większych zmian.

    paluszasty napisał:
    Ciekawy pomysł z tymi płytkami na złącza.


    Przyznam, że pomysł pojawił się spontanicznie. Początkowo nieco złącza miały być umieszczone płasko na laminacie, ale okazało się, że moja wersja Eagle ma znacznie ograniczoną powierzchnię, ponadto sklep, w którym się zaopatrywałem nie miał odpowiednich złączy na stanie.

  • #7 20 Maj 2014 16:52
    Pokrentz
    Poziom 21  

    Na dobrą sprawę wystarczyłby prosty mikser - wzmacniacz sumujący. Słuchać będziemy kilku wejść na raz, ale z reguły włączony będziemy mieli tylko jeden sprzęt, bo tak zamierzamy. Reszta będzie "mute", co wynika z założeń projektu. Tak zresztą działa Windows - możemy jednocześnie słuchać kilku "wejść" - mp3-jek z winampa, teledysku z youtube'a i reklamy, która otworzyła się gdzieś w zwiniętej na pasku przeglądarce. Do użytkownika należy, czego chce słuchać (resztę musi wyłączyć / wyciszyć).
    Oczywiście, wartość projektu jako edukacyjnego jest nie do przecenienia.

  • #8 21 Maj 2014 22:05
    tytka
    Poziom 14  

    Co do 4052, to faktycznie są lepsze rozwiązania, ale chciałbym zauważyć, że owy 4052 był stosowany w wielu fabrycznych rozwiązaniach, różnych firm do przełączania sygnałów audio.

    Szczerze mówiąc to nie podoba mi się sposób wyboru wejścia.
    Załóżmy, tak jak autor zakłada, że w danej chwili sygnał jest na jednym z wejść, czas przerwy ustalony powiedzmy na około 10s, niby długi , ale znam utwory z znacznie dłuższymi przerwami i co wtedy? Układ więc dokonuje automatycznej selekcji mimo, że nie ma pewności że jest ona konieczna. Ale układ jest zbyt uproszczony i tak działa - zbyt długa przerwa , to automatyczna zmiana wejścia (choć może niekonieczna). Dlatego proponował bym rozbudować układ i sprawdzać obecność sygnału na każdym wejściu, a nie tylko na wyjściu selektora. Kontroler oprogramować natomiast tak by działał - zbyt długa przerwa, to najpierw sprawdzanie obecności sygnału na kolejnych wejściach, a później ewentualne przełączenie wejścia, po stwierdzeniu obecności sygnału na innym z wejść.

    Mam świadomość, że rozwiązanie które proponuję, też nie jest idealne (niestety przy pełnym automacie chyba nie ma złotego środka), ale wydaje mi się bardziej racjonalne. Chyba lepiej najpierw coś sprawdzić póżniej zadziałać, niż najpierw zadziałać i w międzyczasie sprawdzać czy słusznie się zadziałało.

  • #9 22 Maj 2014 00:47
    DJ Danielus
    Poziom 11  

    Przyznam, że były prowadzone ku temu prace, ale jedyne rozwiązanie jakie przyszło mi do głowy to wstawienie kolejnego układu 4052 i w ten sposób badanie sygnału. Płytkę zaprojektowałem, ale uważam to za nie wypał - do dyspozycji miałem laminat jednostronny, co powodowało użycie sporej ilości zwór. Projekt miał być z założenia prosty (a więc też nie idealny).

    Na chwilę obecną rozpocząłem zabawę z elementami SMD, więc może w przyszłości wprowadzę proponowane tu ulepszenia ;)

  • #10 27 Maj 2014 18:47
    ololukiXP
    Poziom 19  

    Cytat:
    Wejście INH zwieramy do masy, dzięki czemu układ zawsze jest aktywny. Detektor pobiera sygnał z wyjścia X, dlatego też na odpowiednich wejściach (X0…3) musimy dać rezystory (R10…13), dzięki czemu w przypadku braku sygnału lub podłączonego kabla, układ nie wzbudza się z powodu zakłóceń. Kondensatory C10 i C11 eliminują składową stałą.


    Dlaczego rezystory R10..R13 zastosowałeś tylko w jednym kanale? Mógłbyś w drugim kanale też dołożyć równolegle do wejść rezystory 100k, a nawet 47k by tu nie zaszkodziło, zmniejszając tym samym podatność na zakłócenia. W tym momencie niepodłączone lub podłączone do wyłączonych urządzeń wejścia urządzenia idące do kanału Y multipleksera mogą łapać różne zakłócenia, które przedostaną się do toru audio.

  • #11 28 Maj 2014 15:32
    DJ Danielus
    Poziom 11  

    Rezystory dałem tylko na kanał X, ponieważ to z niego podawany jest sygnał na detektor. Na kanale Y mogą pojawiać się zakłócenia, ale nie mają one wpływu na wybór kanału, ponadto multiplekser odizolowuje pozostałe wejścia od obecnie wybranego.

    Zakłócenia mogą mieć znaczenie, jeżeli na aktualnie wybranym kanale mamy sygnał mono, co zostało już wyżej poruszone.

  • #12 08 Wrz 2014 18:34
    11111olo
    Poziom 43  

    Projekt nieprzemyślany. Jak Koledzy napisali lepiej dać przekaźniki.
    Wybór źródła dźwięku powinien być automatyczny ale sprawdzanie w tym stanie to żenada.
    Zacznie dzwonić telefon, wyciszysz źródło dźwięku a po ponownym puszczeniu sygnału już go nie będzie bo się przełączy.
    Lepiej zrobić 4 aktywne układy sprawdzania i podać na wejścia mikrokontrolera. Zmiana miała by następować wtedy kiedy sygnał się pojawi a nie kiedy go nie ma.

  • #13 08 Wrz 2014 20:58
    DJ Danielus
    Poziom 11  

    Jeśli już to można by dodać drugi multiplekser, dzięki któremu na bieżąco można by sprawdzać sygnał na wejściach i ustalić pewne priorytety. Tak próbowałem rozwiązać opisywane przez Ciebie problem, ale znacznie komplikowałoby to płytkę jednowarstwową, a projekt z założenia miał być prosty.

  • #14 08 Wrz 2014 21:00
    Freddy
    Poziom 43  

    11111olo napisał:
    Projekt nieprzemyślany. Jak Koledzy napisali lepiej dać przekaźniki.
    Dlaczego, są przecież specjalizowane układy scalone przełączniki audio.
    Przekaźnik wcale nie jest najlepszym rozwiązaniem.
    Cytat:
    Wybór źródła dźwięku powinien być automatyczny ale sprawdzanie w tym stanie to żenada ...
    Uzasadnij proszę.

  • #15 08 Wrz 2014 22:04
    11111olo
    Poziom 43  

    11111olo napisał:

    Lepiej zrobić 4 aktywne układy sprawdzania i podać na wejścia mikrokontrolera. Zmiana miała by następować wtedy kiedy sygnał się pojawi a nie kiedy go nie ma.

 
Promocja -20%
Zamknij 
Wyszukaj w ofercie 200 tys. produktów TME
tme