Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Wyszukaj w ofercie 200 tys. produktów TME
Europejski lider sprzedaży techniki i elektroniki.
Proszę, dodaj wyjątek elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

16 kanałowy analizator widma sygnału akustycznego

kroluk 19 Wrz 2010 14:10 17993 54
  • Witam.
    Pragnę podzielić się moją historią tworzenia tytułowego instrumentu. Cały projekt opisuje także na blogu, który specjalnie dla niego założyłem, a można go czytać tutaj: Blog projektu.
    Zapraszam.

    Początki

    Pewnego dnia siedziałem sobie w pracy przeglądając filmiki na youtube i natknąłem się na prezentację analizatora sygnały audio zrobionego przez jakiegoś hobbystę i pomyślałem że fajnie było by coś takiego sobie wykonać. Pogłówkowałem troszkę i wpadłem na dość ogólny zarys jak by to miało wyglądać.
    16 kanałowy analizator widma sygnału akustycznego
    No więc najpierw na wejściu jakiś prościutki regulowany wzmacniacz sygnału na jednym tranzystorze lub wzmacniaczu operacyjnym, potem rozdzielamy sygnał na tyle kanałów ile miało by być słupków prezentujących sygnał. Każdy z tych sygnałów przepuszczamy przez aktywny filtr o wąskim paśmie przepustowości i podajemy na sterownik linijki diodowej np. na popularnym scalaku LM3915.
    Koncepcja na pierwszy rzut oka może i dobra ale w chwili rozpoczęcia prac okazała się strasznie nie udana, a dlaczego?

    1. Po pierwsze jeśli miał by to być wskaźnik na tylko 16 słupkach to wymagało by aż 16 oddzielnych kanałów ze sterownikiem i filtrem pasmowym.
    2. Każdy klocuszek takiego filtra trzeba wykonać i zestroić z wykorzystaniem chociażby oscyloskopu żeby zobaczyć jak on się zachowuje przy przesyłanym sygnale, jakie ma parametry przepustowości i tłumienia.
    3. Koszty takiego rozwiązania są dość drogie ze względu na dużą ilość powielanych stałych klocków z których każdy musi zawierać układ filtrowania najlepiej na wzmacniaczach operacyjnych oraz sterowania.

    No więc zabrałem się do pracy :)
    Kilka dni później zrezygnowałem ponieważ nie dałem rady opanować filtrów. W tamtym czasie nie posiadałem jeszcze oscyloskopu co praktycznie uniemożliwiało mi stwierdzenie czy złożony przeze mnie filtr działa tak jak zamierzałem żeby działał.
    Jako ciekawostkę tutaj podam iż w dawniejszych czasach takie układy analizatorów były realizowane dokładnie w taki sposób, miały one dość spore rozmiary i były bardzo nie dokładne, ponieważ bardzo trudno było uzyskać dokładne powtarzalne filtry odseparowujące poszczególne pasma sygnału.
    Kilka miesięcy później tak się złożyło że miałem okazję kupić dość dobry oscyloskop po okazyjnej cenie, a skoro marzyłem sobie o tym instrumencie pomiarowym przez wiele wiele lat postanowiłem się w końcu skusić. Z nowym przyrządem powróciłem do zarzuconego wcześniej projektu.
    I znowu kilka dni później prace zaczęły się "sypać". Marzyło mi się stworzenie najmniej 16 kanałów i jak zacząłem prace to doszło do mnie jak duży nakład pracy mnie czeka i ile to będzie kosztować, bo każdy taki pojedynczy wskaźnik zawiera sporo elementów i jest ciężki do dokładnego zestrojenia.




    Tak więc ponownie zarzuciłem prace z myślą że kiedyś odkopię ten projekt jak znajdę lepszy i wydajniejszy sposób na jego realizację.

    Cyfrowa rewolucja

    Jakiś czas po zaprzestaniu prac nad moim spektrometrem, czy analizatorem widma jak kto woli, rozpocząłem swoją przygodę z mikro-kontrolerami. Jako że nigdy wcześniej cyfrówka mnie jakoś po prostu nie kręciła to długi czas wzbraniałem się przed tą wiedzą, lecz teraz dostrzegam jak proste i wygodne jest ich stosowanie, a możliwości zastosowań praktycznie nieograniczone. Cena przeciętnego prostego kontrolerka to od 20 do 30 zł co w niektórych rozwiązaniach jest drobnym ułamkiem ceny jaką trzeba by wydać. na układy realizujące potrzebne operacje. Ale dość tych zachwytów.
    Przy okazji zabawy z popularnym kontrolerem Atmega16 powróciłem do rozważań nad moim niedokończonym projektem analizatora widma. Poszperałem po necie i natrafiłem na algorytm transformaty Fouriera FFT. Jest to algorytm potrafiący w stosunkowo szybkim czasie na podstawie zadanej próbki przebiegu wejściowego wydzielić z jakich sygnałów dana próbka się składa z podziałem na odpowiadające im częstotliwości. Z wyszukanych informacji wynika że dla kontrolera o szybkości 16Mhz w ciągu kilkunastu milisekund możemy wydzielić aż 512 takich składowych. Jest to szybkość która umożliwia wyświetlenie wyników w postaci przyjemnej dla oka animacji.
    Czas więc odgrzebać stary projekt i określić nowe założenia.
    Na internecie widziałem wiele rozwiązań takich gadżetów rozwiązanych właśnie na kontrolerach Atmega, lecz wszystkie je łączyła jedna wspólna cecha. Wyniki w formie już gotowego wykresu były przedstawiane na małych wyświetlaczach LCD dostępnych w sklepach elektronicznych za kilkanaście złotych. Oczywiście całkowicie rozumiem takie postępowanie, jest to tanie i wygodne przedstawienie obrazu bo takie wyświetlacze się bardzo prosto steruje wyżej wymienionymi mikro-kontrolerami. Lecz mi chodzi o coś innego. Mi chodzi o taki klasyczny styl retro, wyświetlany na prostokątnych diodach LED w formie słupków. Rozwiązania takie były stosowane w sprzętach Hi-fi z dawniejszych czasów kiedy to nie było jeszcze wyświetlaczy LCD a mrugające w takt muzyki diody LED dawały ten hipnotyzujący efekt. Najczęściej można było spotkać zwykłe dwa słupki pokazujące siłę sygnału w obu kanałach stereo, lecz zdarzały się także bardzo proste kilkunastu diodowe analizatorki. Co prawda można na youtube znaleźć filmiki prezentujące takie matryce lecz zawsze są one rozwiązane na bardziej nowoczesnych okrągłych i super jasnych diodach, co też jak dla mnie nie daje tego klasycznego wyglądu, który to właśnie mnie tak kręci.
    Czas opracować plan działania :)

    Pierwsza cyfrowa idea

    Myślałem, myślałem, aż wymyśliłem. A co wymyśliłem, a to:
    16 kanałowy analizator widma sygnału akustycznego
    A co to? A to jest ideowy schemacik, tego co chcę uzyskać. A więc, kontroler Atmega 16 ma 4 porty wejścia/wyjścia nazwane A, B, C i D więc wymyśliłem, że mógł bym sterować matrycą diod 16 wysokości i 8 szerokości w ten sposób że ustawiając odpowiednie stany na wyprowadzeniach portu B wybierały by który z tranzystorów by przechodził w stan nasycenia (czyli przewodzenia) co by zwierało odpowiednie kolumny diod do masy, teraz wystarczy tylko na wybrane rzędy diod podać napięcie dodatnie i to by zamykało obieg i zapalało wybrane diody. Idea tworzenia na takiej matrycy jest taka że przełączamy po kolei kolumny od 1 do 8, każda kolumna jest aktywna tylko przez kilka milisekund podświetlając wybrane diody w kolumnie poprzez ustawianie wyjść portów C i D, potem zmiana na kolejną kolumnę. Robiąc to wystarczająco szybko oko ludzkie nie dostrzega migotania tylko stały obraz.
    Port A jest portem, który umożliwia konwersję sygnału analogowego, jaki płynie w kablu od wzmacniacza do głośnika na sygnał cyfrowy, zrozumiały dla mikro-kontrolera i tam też właśnie jest podpięte wejście sygnału na moim pobieżnym schemaciku.
    A więc do dzieła, tak? Otóż nie. Zawsze najpierw staram się wypróbować możliwie dużo z danego rozwiązania bez żmudnego lutowania i niszczenia części, więc potestowałem na płytce stykowej i okazało się że gdy zapalam jedną diodę w rządku na raz to świeci ładnie jasno, lecz przy kilku na raz wszystkie palą się tak ledwo ledwo. A to dlatego, że cały prąd potrzebny na zasilanie tych diod pochodzi z wyjść portów B i C Atmegi, a każde takie wyjście ma wydajność tylko około 40mA czyli zasilania dwóch diod.
    Trzeba by ten sygnał dać także przez tranzystor, tak jak wejścia na porcie D. Tylko że każdy tranzystor podwyższa koszty całego układu, a ja staram się zbudować to możliwie małym kosztem. Dochodzi do tego także walor estetyczny. Takie pole tranzystorów sterujących matrycą zaledwie 16x8 diod nie wygląda zbyt profesjonalnie. No i ostatni problem, a zarazem najbardziej znaczący to to, że przy takim rozwiązaniu możemy zasilić jedynie 8 kolumn, bo tyle mamy wyjść na porcie D. Docelowo chciałbym, aby była możliwość w miarę prostego rozszerzania całego układu o kolejne kolumny do pokazywania dokładniejszego wyniku analizy widma.
    Tak więc jak widać z powyższego opisu, projekt musi zostać jednak przebudowany.

    Druga postać cyfrowa

    Poszperałem, pomyślałem i nawet coś wymyśliłem.
    W poprzednim rozwiązaniu nie podobał mi się nadmiar tranzystorów jaki się klarował w tym projekcie, więc poszukałem czegoś bardziej scalonego. Znalazłem układ ULN2803, który zawiera w sobie 8 par typu Darlington z wyjściami typu otwarty kolektor. Co to oznacza? A no to, że każdy taki pojedynczy układ scalony zastąpi mi 8 tranzystorów. Na wejście wystarczy podać jakiś maluteńki prąd żeby na wyjściu umożliwić przepływ dużego, odciążając wyjścia układu Atmega co w poprzednim rozwiązaniu powodowało przygasanie diod przy zbyt dużym obciążeniu.
    Drugim problemem do rozwiązania było zwiększenie ilości kolumn z diodami, bo w poprzednim rozwiązaniu mogło ich być jedynie 8. Teraz postanowiłem użyć 4 bitowego demultipleksera zwanego też dekoderem 4 do 16. Zamienia on 4 bitowy sygnał wejściowy w kodzie BCD na dziesiętny kod wybierając jedno wyjście spośród 16. Do tego celu wybrałem układ 74HC154. Oto schematyczny rysunek poprawionego rozwiązania.
    16 kanałowy analizator widma sygnału akustycznego
    A więc po zakupieniu wszystkich potrzebnych układów jak zwykle wpierw przystąpiłem do symulacji mojego rozwiązania na uniwersalnej płytce. I znowu zonk i kilka kolejnych błędów i problemów.
    Po pierwsze. Przy wyborze układu dekodera nie dopatrzyłem się, iż wybrany przeze mnie układ 74HC154 ma zanegowane wyjścia. Co to oznacza, a no to, że zamiast wybierać 1 spośród 16 wyjść poprzez ustawienie na nim stanu wysokiego (czyli +5V, a reszta 0V), on ma wszystkie wyjścia w stanie wysokim a jedynie to jedno wybrane w stanie niskim. Totalna porażka. Co prawa mógł bym na wyjściu dekodera zastosować negatory np. z układu 7404, z tym że w każdym takim układzie jest tylko 6 negatorów co oznacza, że musiał bym dołączać kolejne 3 układy tylko dlatego że wybrałem zły scalak na początku.
    A więc poszukałem innego układu i kupiłem tym razem układ CD4514, który realizuje tą samą operację co poprzedni tylko już bez negacji wyjść.
    Drugi problem jaki się trafił w tym schemacie to fakt, że układy ULN2803 mają wyjścia typu otwarty kolektor więc nie nadają się po obu stronach matrycy, tylko po jednej. Spróbuje to wyjaśnić na przykładowym rysunku.
    16 kanałowy analizator widma sygnału akustycznego
    Na rysunku a) pokazana jest bardzo ogólna zasada działania tranzystora NPN z dołączoną diodą. Jak na wejściu B (baza) nie ma żadnego napięcia i nie płynie prąd to tranzystor jest zatkany czyli nie ma przewodzenia z kolektora C do emitera E. Jeśli na bazie pojawi się choćby malutki prąd, tranzystor zaczyna przewodzić w stronę od kolektora do emitera co spowoduje zapalenie się diody dołączonej do kolektora. Musimy pamiętać iż prąd zawsze płynie z miejsca o wyższym potencjale do punktu i potencjale niższym (potocznie z plusa do minusa). Teraz na rysunku b) przedstawiłem wycinek uproszczonego układu ULN2803 żeby pokazać co oznacza że ma wyjścia typu otwarty kolektor i w czym jest problem. Jest to rysunek poglądowy więc proszę się nie czepiać o szczegóły :). Końcówka kolektora tranzystora jest wystawiona jako wyjście układu. Stąd jeśli na wejście damy stan wysoki to na wyjściu NIE pojawi się wzmocniony stan wysoki, tylko tak naprawdę wyjście to umożliwi spływ prądu do układu tyle że ze zwiększonym potencjałem niż prąd na wejściu. Problemu nie ma dopóki nie zastosujemy w naszym układzie takich scalaków po obu stronach diody którą chcemy zapalić, bo prąd nie ma skąd spłynąć a tylko dokąd. I to jest właśnie ten problem o którym mówiłem.
    Układy ULN2803 upraszczają budowę całego układu z tym że nie można ich zastosować po obu stronach matrycy jak to sobie wymyśliłem na początku. Zastosuje tutaj więc jednak zwykłe tranzystory na wyjściu z dekodera.
    16 kanałowy analizator widma sygnału akustycznego
    Teraz pokrótce jak działa sam dekoder. A więc bierze on kod BCD czyli kod zero jedynkowy na wejściach i zamienia go na kod dziesiętny. Czyli przykładowo ustawienie na wejściach stanu 0001 ustawi wyjście nr 1, kod 0010 wyjście 2, kod 0011 wyjście 3, kod 0100 wyjście 4. Te 4 wejścia umożliwiają 16 różnych kombinacji stanów wyjść bo kod 0000 ustawia wyjście nr 0 (wyjścia numerowane są od 0 do 15, w sumie razem 16).
    Ogólna idea wyświetlania obrazu na takiej matrycy jest taka, iż:

    * ustawiamy poprzez port D na dekoderze wybranie pierwszej linii
    * portami B i C ustawiamy które diody w danej kolumnie mają się zaświecić.
    * czekamy jakiś krótki czas np 1 ms aby diody zdążył sobie chwilkę poświecić
    * gasimy wszystkie diody na porcie B i C i zmieniamy kolumnę na następną
    * operacje te powtarzamy aż dojdziemy do końca wyświetlacza
    * na koniec zaczynamy wszystko od nowa

    Robiąc to bardzo szybko oko ludzkie nie dostrzega migotania tylko ładny stały obraz.

    W końcu po wszystkich pomyślnych testach mogę przejść do projektowania samego obwodu i płytki drukowanej.

    Projekt płytek

    Czas przejść od ogólnego planowania do projektowania.
    Do wykonania są 2 części.
    Pierwsza to duża płytka z wlutowanymi diodami tworzące matrycę 16 diod wysokości i 16 kolumn szerokości.
    Do tego celu postanowiłem wykorzystać płytkę uniwersalną UM-61 firmy cyfronika. Zaleta wykorzystania takiej uniwersalnej płytki jest taka, iż ma ona już wszystkie potrzebne nam nawiercone otwory równiutko w rządkach i kolumnach. Filozofii więc wielkiej nie ma, trzeba się tylko narobić. Bo jest do wlutowania 16x16=256 diod i to możliwie jak najstaranniej (najrówniej), bo tutaj będzie cały efekt naszej pracy widoczny. Diody muszą łączyć się ze sobą w kolumny jak i w rzędy ale połączenia nie mogą się krzyżować, musiałem więc kolumny połączyć trochę tak w powietrzu zostawiając troszkę dłuższą końcówkę nóżki a potem łącząc wszystkie nóżki w danej kolumnie prostym odcinkiem druta. Tak na marginesie to diody udało mi się kupić w hurcie po 7 groszy sztuka więc nie wyszło z kosztami tak źle.
    Z drugą płytką już trochę gorzej. Trzeba tam upchać sporo elementów, a niestety do wykorzystania została mi jedynie płytka UM-61 także cyfroniki. Jest ona analogiczna budową do poprzedniej lecz ma zaledwie 30% jej powierzchni. Nie chciałem tak od razu rzucać się do sklepu i kupować dużej drogiej płytki więc postawiłem sobie wyzwanie zmieścić się na tej płytce. Ma ona dokładnie 22x31 otworów montażowych. Przypominam że sam kontroler ma wielkość po 20 nóżek z każdej strony. Mordęgą okazała się próba jakiegoś sensownego umieszczenia układu CD4514 bo ma on totalny chaos jeśli chodzi o rozmieszczenie wyprowadzeń. Część wejść po jednej część po drugiej stronie, a wyjścia pomieszane i nie po kolei. Z tego względu musiałem zarzucić pomysł aby kompletnie wszystko umieścić na tej płytce i postanowiłem przenieść 16 tranzystorów sterowanych dekoderem CD4514 na oddzielną małą płytkę. Tutaj ciekawa historia, bo nie mogłem się sam wybrać po jakąś płytkę uniwersalną do sklepu więc poprosiłem aby żona mi kupiła bo była w okolicy wolumenu akurat tego dnia. Miała być nieduża płytka bez połączeń jedynie cała nadziurkowana i kupiła mi płytkę PDU-23 firmy Wojart. Tutaj jej wzór:
    16 kanałowy analizator widma sygnału akustycznego
    Było by ok, gdyby nie te 2 pola, które niemiłosiernie przeszkadzają w umiejscowieniu elementów. Zapewne mają one jakiś większy cel, ale mnie tylko przeszkadzają. No nic, pomierzyłem i wyszło mi że mój moduł stetrujący zmieści się na niewielkim jej wycinku.
    A więc stworzyłem wzory potrzebnych płytek z połączeniami korzystając z darmowego ExpressPCB. Płytka kontrolera wygląda tak:
    16 kanałowy analizator widma sygnału akustycznego
    Cud techniki to to może nie jest ale zważając że jest to na płytce uniwersalnej to myślę, że wyszło całkiem przyzwoicie. Każda biała kropeczka na schemacie odpowiada otworowi na płytce. Jak można zauważyć zrezygnowałem z wyprowadzenia poukładanych po kolei wyjść z dekodera u góry schematu a tylko podłączyłem jego wyjścia do 2 listw po 8 pinów które będą połączone taśmą przewodów z modułem sterującym na drugiej płytce. Wyjścia wole poukładać poprzez odpowiednie podłączanie kabelków do złącz.
    Co do samego modułu sterującego to jest on banalnie prosty. Po prostu 16 tranzystorów i trochę rezystorków.
    16 kanałowy analizator widma sygnału akustycznego

    Projekt już jest, wziąłem się więc za realizację.
    Obecnie jestem na etapie kończenia lutowania matrycy z diodami. Zajmuje to dużo czasu bo staram się, aby wszystkie diody były możliwie jak najrówniej poukładane bo tutaj będzie spoczywał cały wizualny efekt konstrukcji.
    Jak skończę lutować zamieszczę kolejne zdjęcia.
    Zapraszam do odwiedzin.


    Fajne!
  • #2 19 Wrz 2010 15:26
    Mariuszek15
    Poziom 24  

    kroluk Jakie będą funkcje wyświetlania? Projekt bardzo ciekawie się zapowiada. Też w planach miałem wykonać taki analizator widma, ale widzę, że mnie wyprzedziłeś :) Docelowo miała być ATMEGA16, podając na wejścia przetwornika A/C filtry pasmowe uzyskamy analizator 8 punktowy. Podłączając do tego odpowiednie sterowanie matrycą ( słupkami LED ) uzyskamy analizator widma. W Twoim projekcie służę pomocą ;)

    Tutaj podsyłam pomysł na efekty wyświetlania:

    http://www.youtube.com/watch?v=9M5OOPE06x4

    W projekcie brakuje jeszcze filtru dolnoprzepustowego i górnoprzepustowego.

  • #3 19 Wrz 2010 16:03
    kroluk
    Poziom 9  

    Nad funkcjami wyświetlania jeszcze nie myślałem, ale mi wystarczą tylko słupki i punkty do wyboru, zresztą i tak zależy mi jedynie na słupkach.
    Dziękuję za propozycję, jeśli natrafię na jakieś większe problemy to się zwrócę o pomoc.
    Co do filtrów górno i dolno przepustowych to myślę że przy korzystaniu z algorytmu transformaty fouriera (FFT) do wyliczenia słupków wykresu, filtry te są zbędne.
    Dziękuję także za linka bo szczerze mówiąc to sporo czasu spędziłem na youtubie szukając takiego analizatora, który by nie był na wyświetlaczu LCD i nie wiem dlaczego nie trafiłem ten filmik. Bardzo ładne rozwiązanie. Także myślałem czy nie skorzystać z gotowych modułów słupków 10 led ale jakoś tak mnie ciągnie w ten retro styl o którym pisałem wcześniej.
    Tak na marginesie to właśnie skończyłem lutować płytkę.
    16 kanałowy analizator widma sygnału akustycznego

  • #4 19 Wrz 2010 18:13
    Mariuszek15
    Poziom 24  

    Warto dodać inne efekty, bo słupki to już jest standard ;) W jakim języku będziesz pisał program do analizatora widma akustycznego ?

  • #5 19 Wrz 2010 19:42
    kiziu13
    Poziom 16  

    Zamiast używać DEMUXa 16bitowego możesz użyć dwóch 8-bitowych rejestrów przesuwnych SIPO, np. 74HCT164 połączonych kaskadowo. Do sterowania wystarczą 2 linie, zegarowa i wejście szeregowe, ewentualnie czyszczenie, ale nie jest niezbędne. Zawsze to 2 piny więcej na coś innego :)

  • #6 19 Wrz 2010 22:03
    kroluk
    Poziom 9  

    Co do tych rejestrów to myślałem nad tym, albo jakiś licznik dziesiętny, ale nie chciałem ponownie zmieniać całej koncepcji i płytki itd. Więc zdecydowałem, że puki co zostanę przy tym rozwiązaniu a może jeśli będę potrzebował więcej wejść to wtedy przerobię układ.
    Pisał będę w C. Co prawda mam już gotowa bibliotekę liczącą FFT w asemblerze lecz w testach nie mogłem jakoś jej uruchomić więc nie wiem czy sam czegoś nie spróbuje spłodzić. Na efektach specjalnych mi bardzo nie zależy, a słupki lubię z sentymentu. Zresztą efekty to jest temat już na sam koniec projektu kiedy już wszystko działa i wtedy można bawić się bajerami.

  • #7 21 Wrz 2010 11:24
    kroluk
    Poziom 9  

    Aktualizacja postępów.

    W końcu udało mi się zlutować 2 główne części (moduły) projektu.
    Pierwszą jest matryca 16x16 prostokątnych led.
    16 kanałowy analizator widma sygnału akustycznego
    Zdjęcie wyszło trochę bańkowato bo zbyt blisko trzymałem aparat. W rzeczywistości jest całkiem równo. Ogólnie muszę powiedzieć, że jestem zadowolony z rezultatu. Lutowanie wszystkich tych świecidełek to istna mordęga jeśli oczywiście się chce żeby wszystko było w jednej linii. Z tyłu już nie wygląda to tak pięknie, ale to wina tego iż trzeba łączyć ścieżki w pionie i poziomie zarazem ale żeby się nie stykały. Kolumny są połączone trochę w powietrzu, nad warstwą ścieżek.
    16 kanałowy analizator widma sygnału akustycznego

    Drugim wykonanym modułem jest sterownik całego tego ustrojstwa. Także na płytce uniwersalnej.
    16 kanałowy analizator widma sygnału akustycznego
    Wyszło całkiem schludnie, nie było tutaj jakiś większych problemów. Jedynym mankamentem którego nie przewidziałem wcześniej jest zbyt mała przestrzeń dla 4 pinów programowania widocznych na zdjęciu po prawej stronie kontrolera Atmega. Kontroler jest osadzony na podstawce i w chwili rozmieszczania i lutowania, gdy na płytce była tylko podstawka bez kontrolera, miejsca było tam całkiem sporo, lecz po włożeniu układu okazało się, że jest on szerszy niż podstawka i ledwo się wcisnął przez te piny. Ale wyjściem na to jest zastosowanie tutaj pinów kątowych skierowanych w prawo od układu, więc wielkiego problemu nie ma.
    Dość myślę wymyślnym rozwiązaniem popisałem się po drugiej stronie tej płytki. Chodzi mi dokładnie o ścieżki "drukowane". Normalnie są one wytrawiane na płytce, a dokładnie przerwy między nimi. W płytce uniwersalnej takiej jak ta nie ma żadnych ścieżek, więc trzeba je jakoś stworzyć. Zrobiłem je z poobcinanych końcówek elementów elektronicznych, głównie diod z matrycy, bo było tego multum.
    16 kanałowy analizator widma sygnału akustycznego
    I znowu uważam, że zważywszy na metodę nie było najgorzej. Nigdy wcześniej nie korzystałem z płytek uniwersalnych, zwykle wytrawiałem płytki po uprzednim odpowiednim ich pomalowaniu, lecz tym razem chciałem po prostu spróbować tej metody, bo z tego co zauważyłem to jest ona chyba coraz bardziej popularna, bo coraz częściej widuje takie konstrukcje przeglądając bezkresne zasoby internetu.

    Tyle co już jest. A czego nie ma? Brakuje jeszcze modułu wykonawczego czyli tej malutkiej płytki z 16 tranzystorami załączającymi poszczególne kolumny matrycy i przewody połączeniowe, a dokładniej taśmy z odpowiednimi końcówkami, przy których tez będzie sporo pracy z racji po pierwsze ich ilości a po drugie także i nieznacznego skomplikowania.

    Przypominam iż projekt opisany jest również na blogu http://krolu-projekty.blogspot.com

    Pozdrawiam i zapraszam



    -------------



    Kolejna aktualizacja.
    Tym razem udało mi się skończyć płytkę sterownika rzędami matrycy i połączyć to z matrycą w jedną całość.

    16 kanałowy analizator widma sygnału akustycznego

    16 kanałowy analizator widma sygnału akustycznego

    16 kanałowy analizator widma sygnału akustycznego

    16 kanałowy analizator widma sygnału akustycznego

    Zostało okablowanie łączące moduł kontrolera z matrycą i można zacząć testować i pisać program.

  • #8 22 Wrz 2010 22:56
    kroluk
    Poziom 9  

    Układ gotowy.

    Sporo roboty z jakimś ładniejszym wykończeniem kabli, ale lepiej raz a dobrze niż potem poprawiać zwarchole.

    16 kanałowy analizator widma sygnału akustycznego

    16 kanałowy analizator widma sygnału akustycznego

    I na koniec wszystko połączone razem.

    16 kanałowy analizator widma sygnału akustycznego

    16 kanałowy analizator widma sygnału akustycznego

    Teraz czas na oprogramowanie.

  • #9 26 Wrz 2010 16:54
    kroluk
    Poziom 9  

    Problemy, problemy, problemy

    Jak to często bywa najwięcej problemów z amatorskimi konstrukcjami wychodzi na samym końcu. Układ potrzebował kilku pseudo kosmetycznych przeróbek, oraz kilku poważniejszych.
    Okazało się, że pomyliło mi wszystko przy produkcji okablowania i modułu sterującego na tranzystorach. Został on włączony jako sterownik rzędów co było błędem, bo wtedy bazy tranzystorów sterowane były wejściami OC układów ULN2803. Oczywiście nie miało prawa to działać, tranzystory te powinny sterować kolumnami zaraz za układem de-multipleksera. Oprócz tego po włączeniu całej matrycy wyszło kilka wad typowo konstrukcyjnych takich jak odwrotnie wlutowana dioda, czy też brak przejścia przy jakiejś ścieżce. Tutaj wyszła też pewna ciekawostka. Otóż nie działała ani jedna dioda czerwona z ostatniego wiersza na matrycy. Po długim sprawdzaniu w czym tkwi problem, od źródła sygnału po samą diodę okazało się, że czerwone diody mają odwrotną polaryzację niż wszystkie inne. Każda taka dioda LED jak się spojrzy na nią z boku ma w swojej szklanej bańce dwie elektrody. Jedną dużą (masę) i drugą znacznie mniejszą (dodatnią), a w przypadku diod czerwonych, przynajmniej tych które zakupiłem sytuacja jest odwrotna ta mała elektroda jest ujemną, a duża dodatnią. Kompletnie mnie to zaskoczyło i stąd też cały wiersz 16 odwrotnie wlutowanych diod.
    Lecz to wszystko to pikuś w porównaniu do problemu który miałem dopiero co napotkać.
    Podczas testowania zapalania się poszczególnych diod, na różne kombinacje diody zachowywały się bardzo ładnie. Z poziomu programu udało mi się wyświetlać proste kształty. Problem zaczął się w przypadku zapalania większej ilości diod na raz, dokładnie jak zacząłem pracować na całej szerokości wyświetlacza. Diody świecą tak słabym światłem, że jest to prawie że niezauważalne. Dopiero wieczorem przy zgaszonym świetle widać różnicę czy się świecą czy nie. I ten właśnie problem praktycznie zabił mój projekt. Długo analizowałem przyczynę i potencjalne rozwiązanie takiego słabego świecenia i udało mi się jedynie dociec do przyczyn, lecz bez rezultatu. Przyczyną jest fakt iż diody z pojedynczej kolumna zapalają się na 1 ms, a potem czekają zgaszone przez kolejne 15 ms na powtórną możliwość zaświecenia się. Jest swego rodzaju PWM czyli regulacja mocy poprzez sterowanie długością dodatniej części impulsu z generatora. Odpowiedzią na zwiększenie mocy jest tutaj zmniejszenie wartości rezystorów ograniczających prąd, lecz nawet w przypadku podłączenia diod z kompletnym ich pominięciem, diody nadal nie osiągają zadowalającej jasności (ledwo się ćmią). Efekt jest trochę lepszy w przypadku diod żółtych, które przy tym prądzie palą się lekko pomarańczowym odcieniem, one świecą ładnie, pewnie z racji ich lepszej jakości. Lecz nie mam nawet tylu tych diod żeby przelutować teraz resztę 208 diod na żółte, zresztą był by to mało ciekawy efekt. Rozwiązaniem, które widziałem w innych tego typu konstrukcjach jest sterowanie kawałkami wyświetlacza przez oddzielne kontrolery lecz podniosło by to znacznie koszty tej konstrukcji, lub tez użycie znacznie jaśniejszych okrągłych diod zamiast prostokątnych lecz nie taki efekt chciałem uzyskać zaczynając ten projekt.
    Tak więc podsumowując tymczasowo konstrukcja "padła" z przyczyn niedostatecznego światła otrzymywanego z tej metody generowania obrazu na tego typu matrycy. Na razie rozwiązanie idzie na półkę, a szkoda.

  • #10 26 Wrz 2010 18:16
    Mariuszek15
    Poziom 24  

    A próbowałeś programowo zwiększyć czas świecenia jednej kolumny ? Na pewno da się to zrobić, aby diody LED odpowiednio świeciły.

  • #11 26 Wrz 2010 20:17
    kroluk
    Poziom 9  

    Oczywiście że próbowałem, ale zwiększanie czasu świecenia jednej kolumny powoduje oczywiście wydłużenie cyklu odświeżania całego ekranu. Przy 3ms na diodę pojawia się już migotanie czyli już nie jest płynny obraz, a diody nadal świecą bardzo słabiutko. Gdyby to były jakieś lepszej jakości super jasne diody lub coś takiego to by nie było problemu ale te są "tanie". Tak jak pisałem żółte są już całkiem niezłe, ale zielone nie dają rady. Zresztą ogólnie z tego co wiem prostokątne diody są znacznie mniej wydajne od tych okrągłych.
    Niestety programowo już nie da się z tym nic zrobić, co do tego jestem pewien. Jedynie przebudowa elektroniczna może już tutaj pomóc.
    Poniżej jak wygląda już podkręcona matryca: po lewej wyłączona, po prawej włączona.
    16 kanałowy analizator widma sygnału akustycznego
    Proszę zwrócić uwagę że zdjęcia są wykonane przy słabym oświetleniu żeby było łatwiej dostrzec świecenie diod.

  • #12 26 Wrz 2010 20:46
    MARCIN.SLASK
    Specjalista AGD

    Jeżeli diody świecą przez krótki okres, to proponowałbym zwiększyć napięcie zasilania diod, tak by prąd płynący przez diodę wynosił około około 100mA. Typowy prąd 20mA jest zbyt mały przy takim sterowaniu - dobry dla diody zasilanej w ciągły sposób.

  • #13 26 Wrz 2010 21:17
    chudyks
    Poziom 7  

    witam
    jestem poczatkujacy. wyglada to swietnie jak i dzila przegladajac filmiki na youtube. mam paytanko? ile taki cacko kosztuje???? jest ktos ko by zrobil to na zamowienie ???

  • #14 26 Wrz 2010 21:38
    kroluk
    Poziom 9  

    Hmm...
    Zastanawiam się jak zmierzyć prąd jaki podczas takiej pracy pobiera dioda?
    W tym momencie po drodze diody nie mają teoretycznie żadnego rezystora i są kluczowane poprzez tranzystory z jednej strony i układy ULN2803 z drugiej.
    Na oscyloskopie sprawdziłem, że na diodzie mam ładne piki na 2V więc napięcie jest ok. Ale jak zmierzyć prąd?
    Może wylutować jedną, zamiast niej dać rezystor i zmierzyć oscyloskopem jakie chwilowe napięcie będzie na tym oporniku, a potem z prawa Ohma?
    Czy to dobry sposób?
    Miernikiem niestety nic tu nie zdziałam bo te impulsy są bardzo krótkie i miernik po uśrednieniu ich daje nic nie mówiące odczyty.

    Odp dla chudyks.
    Koszta są bardzo różne zależnie od typu konstrukcji. Zwykle najdrożej wychodzą matryce,bo to mnóstwo diod i kontrolery. Ja jak na razie myślę że wyniosło mnie około 80 zeta. CO do tego czy ktoś to zrobi na zamówienie to zawsze się ktoś znajdzie kwestia poszukania.

  • #15 26 Wrz 2010 22:44
    kiziu13
    Poziom 16  

    Wygląda na to, że musisz zmienić sterowanie z 1 kolumny w kwancie czasu na np. 4 kolumny w kwancie czasu. Przykładowo, zamienić DEMUX 16-bitowy na DEMUX 4-bitowy, który będzie wysterowywał 4 kolumny za jednym razem (np. 1, 5, 9, i 13), a następnie korzystając np. ze wspomnianych wcześniej przeze mnie 8-bitowych rejestrów przesuwnych połączonych kaskadowo ułożyć sterowanie wierszami. DEMUX zabierze 2 piny, a rejestry 6. Wymagać to będzie przeróbki płytki z diodami, nieziemska ilość kabli będzie musiała być użyta, ale powinieneś osiągnąć cel. Możesz nawet podzielić to na 8 sekcji, ilość pinów nieznacznie wzrośnie, ale ilości kabli wzrośnie już bardziej znacznie :]

  • #16 27 Wrz 2010 08:22
    MARCIN.SLASK
    Specjalista AGD

    kiziu13 napisał:
    Wygląda na to, że musisz zmienić sterowanie z 1 kolumny w kwancie czasu na np. 4 kolumny w kwancie czasu. Przykładowo, zamienić DEMUX 16-bitowy na DEMUX 4-bitowy, który będzie wysterowywał 4 kolumny za jednym razem (np. 1, 5, 9, i 13), a następnie korzystając np. ze wspomnianych wcześniej przeze mnie 8-bitowych rejestrów przesuwnych połączonych kaskadowo ułożyć sterowanie wierszami. DEMUX zabierze 2 piny, a rejestry 6. Wymagać to będzie przeróbki płytki z diodami, nieziemska ilość kabli będzie musiała być użyta, ale powinieneś osiągnąć cel. Możesz nawet podzielić to na 8 sekcji, ilość pinów nieznacznie wzrośnie, ale ilości kabli wzrośnie już bardziej znacznie :]


    Jakby przenieść demuxy 4 lub 8 kanałowy (4051, 4052, 4053) na płytkę z diodami ew. dodatkową dołączoną jak ta od wierszy, to kłopot z dużą ilością przewodów znikłby.
    Ciekawe czy można by 4 kanałowe demuxy zastosować do sterowania wierszami (w jednej chwili świecą max 4 wiersze)?

  • #17 27 Wrz 2010 09:08
    kroluk
    Poziom 9  

    Co do sterowania wierszami to nie ma problemu stosować tutaj de-multiplekserów bo każdy wiersz sterowany jest własnym kanałem z Atmegi co pozwala mi na dowolną kombinację zapalonych diod w jednostce czasu na wyświetlenie jednej kolumny.

    Ale jest jeszcze jedna kwestia, którą odkryłem wczoraj wieczorem. Podczas badania całego układu wyszło mi że na daną kolumnę idzie impuls prądu o wartości około 45mA, nie wiem czemu taki mały bo jest on puszczany tylko przez tranzystor otwierany impulsem na bazę przez 1K rezystor i potem do układów ULN2803. Po drodze nie ma żadnego innego opornika więc skąd tak mała wydajność. Muszę to teraz rozgryźć i myślę że to może wskrzesić projekt.

    A tak z innej beczki to jestem bardzo miło zaskoczony, że ktoś w ogóle się tym interesuje i cokolwiek radzi. Wszystkie porady są bardzo miło widziane :)

  • #18 27 Wrz 2010 16:59
    joy_pl
    VIP Zasłużony dla elektroda

    kroluk napisał:
    Na oscyloskopie sprawdziłem, że na diodzie mam ładne piki na 2V więc napięcie jest ok.
    Więc nie jest ok, napięcie przewodzenia diody zielonej to ok 2,5V diody żółtej ok 2V, dlatego żółte świecą lepiej...
    Jakich tranzystorów użyłeś na tej „płytce sterującej”? Ze schematów wnioskuje że są to NPN, ale konkretnie jakie, może maja bardzo małe wzmocnienie? Choć i tak lepiej byłoby użyć tranzystorów PNP i zmienić sposób sterowania.

  • #19 27 Wrz 2010 18:00
    kroluk
    Poziom 9  

    Tranzystory myślę, że nie są złe. BD137-16 wszystkie nówki, specjalnie zakupione do tego celu. Ale faktycznie coś jest nie tak z kolumnami bo jak zapalam tylko 2 rzędy na raz we wszystkich 16 kolumnach to świeca przyzwoicie. Im więcej rzędów tym gorzej. Wydajność całej kolumny wynosi tylko 45mA, nie wiem za bardzo dlaczego. Może by podnieść napięcie na kolektorach tych tranzystorów? Albo zmniejszyć im rezystory na bazach, lecz tam są tylko 1K więc i tak nie za wielkie.

    Sprawdziłem przed chwilką jeszcze łącząc kolektory do wyższego napięcie +9V i diody świecą silniej, chociaż nadal słabo, ale spadek napięcia na nich nawet nie drgnął więc myślę że nie z napięciem jest problem tylko z prądem.

  • #20 27 Wrz 2010 20:50
    joy_pl
    VIP Zasłużony dla elektroda

    A spróbuj wymienić chociaż jeden z tych tranzystorów na PNP...

    Ps. I nie musisz takich „potężnych” tranzystorów stosować wystarczą jakieś w obudowie TO-92

  • #21 27 Wrz 2010 21:05
    kroluk
    Poziom 9  

    joy_pl napisał:
    A spróbuj wymienić chociaż jeden z tych tranzystorów na PNP...

    Nie do koca rozumiem co by miało to dać. Taki tranzystor trzeba by zasilać na bazie odwrotnym napięciem co wiąże się z przebudową całego kontrolera bo układ CD4514 który steruje tranzystorami wyzwala je za pomocą impulsów dodatnich.
    Ale tak w ogóle to chyba wiem gdzie mam tutaj problem. Porobiłem mnóstwo pomiarów i zdjęć :) (żeby pomierzyć jak się zachowuje jasność diod przy różnych przeróbkach) i wyszło mi kilka rzeczy:
    1. Przy układach ULN mam podłączone nóżki nr 10 do dodatniego bieguna co jest zabiegiem prawidłowym tylko w przypadku obciążeń o charakterze indukcyjnym. Po odłączeniu tych nóżek diody od razu zaczęły świecić mocniej. Potem zwiększyłem napięcie na tranzystorach z 5V do 9V i znowu jasność w górę. Tak dla porównania zamieszczam fotkę sklejoną z wielu zdjęć różnych stanów pracy.
    16 kanałowy analizator widma sygnału akustycznego
    Jest to wiele zdjęć jednego słupka z całej matrycy. U góry jest najpierw ile kolumn jest zapalonych, niżej ile diod w kolumnie a pod tym napięcie zasilające tranzystory. Pomarańczowa linia oddziela dwa ostatnie pomiary, które były zrobione po odłączeniu nóżek nr 10 z układów ULN2803.
    Tak w ogóle to chyba zrezygnuje z tych układów bo cały czas mam przeczucie, że tutaj jest problem z moim ograniczeniem prądowym. Zamiast nich użył bym tranzystorów jak w przypadku kolumn.

  • #22 27 Wrz 2010 21:18
    joy_pl
    VIP Zasłużony dla elektroda

    kroluk napisał:
    joy_pl napisał:
    A spróbuj wymienić chociaż jeden z tych tranzystorów na PNP...
    Nie do koca rozumiem co by miało to dać.
    To, że element kluczowany (diody) powinny być podłączone do kolektora a nie do emitera.
    kroluk napisał:
    Taki tranzystor trzeba by zasilać na bazie odwrotnym napięciem co wiąże się z przebudową całego kontrolera bo układ CD4514 który steruje tranzystorami wyzwala je za pomocą impulsów dodatnich.
    Całego układu? Raczej tylko programu... zresztą tym byś się martwił jakby zamiana tranzystorów pomogła.

  • #23 27 Wrz 2010 21:19
    MARCIN.SLASK
    Specjalista AGD

    Coś tu nie pasuje. Nie powinno być zmiany jasności w zależności ile diod się świeci w danej kolumnie. Czy się świeci jedna czy osiem, to jasność powinna być jednakowa.

  • #24 27 Wrz 2010 21:25
    kroluk
    Poziom 9  

    MARCIN.SLASK napisał:
    Coś tu nie pasuje. Nie powinno być zmiany jasności w zależności ile diod się świeci w danej kolumnie. Czy się świeci jedna czy osiem, to jasność powinna być jednakowa.


    No właśnie. Coś tu nie jest tak i to nie zależy od tranzystorów tylko raczej od strony tych ULN-ów.

    Co do przeróbki tylko programu to nie masz racji joy_pl. Nie da się programem zmienić sposobu działania układu CD4514. On daje sygnał dodatni na jednym z 16 wybranych wyjść na podstawie kody podanego na jego wejścia. Programowo mogę jedynie sterować które wyjście zostanie wybrane, ale nie jak się zachowa.

  • #25 27 Wrz 2010 21:36
    joy_pl
    VIP Zasłużony dla elektroda

    MARCIN.SLASK napisał:
    Coś tu nie pasuje. Nie powinno być zmiany jasności w zależności ile diod się świeci w danej kolumnie. Czy się świeci jedna czy osiem, to jasność powinna być jednakowa.
    Licząc najgorszy przypadek tj. spadek nap. tranzystorze Vbe = 1V, spadek na diodzie 2,5V, spadek w układzie ULN... Vce=0,5V i zakładając że na wyjściu CD4514 jest 5V, daje to nam prąd bazy tranzystorów BD139 (5-(1+2,5+0,5))/1kom = 1mA, przy wzmocnieniu 100 daje nam 100mA na kolektorze Bd139 i ani trochę więcej niezależnie od ilości diod...


    kroluk napisał:
    Co do przeróbki tylko programu to nie masz racji joy_pl. Nie da się programem zmienić sposobu działania układu CD4514. On daje sygnał dodatni na jednym z 16 wybranych wyjść na podstawie kody podanego na jego wejścia. Programowo mogę jedynie sterować które wyjście zostanie wybrane, ale nie jak się zachowa.
    Racja mój błąd, ale do prób to nie ma znaczenia, a potem można by układ podmienić na CD4515.

  • #26 27 Wrz 2010 21:59
    kroluk
    Poziom 9  

    joy_pl napisał:
    kroluk napisał:
    Co do przeróbki tylko programu to nie masz racji joy_pl. Nie da się programem zmienić sposobu działania układu CD4514. On daje sygnał dodatni na jednym z 16 wybranych wyjść na podstawie kody podanego na jego wejścia. Programowo mogę jedynie sterować które wyjście zostanie wybrane, ale nie jak się zachowa.
    Racja mój błąd, ale do prób to nie ma znaczenia, a potem można by układ podmienić na CD4515.


    To oczywiście jest pewna możliwość, z tymi tranzystorami to też jest pewne wyjście, tyle że nawet ciężko taką próbę teraz przeprowadzić, bo nie mam na stanie układu 4515 więc jak podmienię tranzystor to się nie wysteruje.
    Zresztą ja mam jakieś takie przeczucie że naprawdę problem nie leży po tej stronie matrycy tylko po drugiej, z całym szacunkiem do twojej wiedzy joy_pl oczywiście. Po prostu coś mi tam się nie bardzo podoba i muszę się tym zająć, posprawdzać układ ze strony tych układów ULN bo po prostu nie da mi to spokoju :)

  • #27 27 Wrz 2010 22:11
    joy_pl
    VIP Zasłużony dla elektroda

    Dobra to może inaczej wywal w ogóle te tranzystory i podłącz diody tylko przez rezystory do plusa zasilania, a uln’y zostaw i wtedy będziesz miał jasność czy to ich wina.

  • #28 27 Wrz 2010 22:36
    kroluk
    Poziom 9  

    joy_pl napisał:
    Dobra to może inaczej wywal w ogóle te tranzystory i podłącz diody tylko przez rezystory do plusa zasilania, a uln’y zostaw i wtedy będziesz miał jasność czy to ich wina.


    A to akurat jest ekstra pomysł :). Faktycznie będzie od razu wiadomo. Ale zrobię to dopiero jutro bo dzisiaj już tylko dokończę przelutowywanie czerwonych diod, bo wszystkie są odwrotnie spolaryzowane i idę po tym spać.

    Jeszcze tylko taka ciekawostka jaka mi się przytrafiła przy okazji tego projektu. Czemu przelutowywuje wszystkie czerwone diody? Na poniższym zdjęciu są 3 diody, które kupiłem i użyłem w projekcie.
    16 kanałowy analizator widma sygnału akustycznego
    Zaznaczyłem też na zdjęciu polaryzację jaką trzeba podać aby diody świeciły. Zwróćcie uwagę na budowę wewnętrzną.Dioda czerwona jest odwrotnie zrobiona niż pozostałe. Ciekawe.
    Nie ma tutaj na pewno żadnej mojej pomyłki,bo przez to muszę teraz 16 diod wylutować i wlutować nowe,bo tamte już obciąłem końcówki i się nie bardzo nadają.

  • #29 27 Wrz 2010 22:47
    joy_pl
    VIP Zasłużony dla elektroda

    Niema tu nic dziwnego, nie wszystkie diody LED mają strukturę ułożoną na (-) katodzie, choć w większości tak właśnie jest.
    Ale wszystkie nowe (w sensie kupione i nie używane) diody mają inne oznaczenie, anoda (+) jest zawsze dłuższa od katody(-).

  • #30 27 Wrz 2010 22:50
    kroluk
    Poziom 9  

    joy_pl napisał:
    Niema tu nic dziwnego, nie wszystkie diody LED mają strukturę ułożoną na (-) katodzie, choć w większości tak właśnie jest.
    Ale wszystkie nowe (w sensie kupione i nie używane) diody mają inne oznaczenie, anoda (+) jest zawsze dłuższa od katody(-).


    Dzięki za podpowiedź, to się na pewno przyda na przyszłość,bo teraz sobie narobiłem tylko niepotrzebnej roboty.

 Szukaj w ofercie
Zamknij 
Wyszukaj w ofercie 200 tys. produktów TME