Analizator widma akustycznego – V2

analizator_animationWersja druga analizatora widma akustycznego. Poprzednia cieszyła się sporym zainteresowaniem i prosiliście o dodatkowe efekty, regulacje. Ta wersja umożliwia dołączenie 5 przyciskowej klawiaturki, z której można regulować jasność podświetlenia wyświetlacza, czułość układu, i zmieniać efekty (słupki, paski, kreski, owal, lub drabinki). Ponadto analizator zapisuje ustawienia w pamięci eeprom, można wybrać częstotliwość przetwornika zworką, program obsługuje też regulację jasności w wyświetlaczach VFD.

Regulacja podświetlenia została oparta o sprzętowy PWM na wyjściu OC2 i tranzystorze NPN. Została dodana też zworka do zmniejszenia prescalera dla nieszczęsnego przetwornika który w niektórych egzemplarzach nie radzi sobie z przetaktowanym zegarem (zewrzyj J1 aby zmniejszyć). Kolejną zworką wybieramy czy używamy wyświetlacza VFD (zewrzyj J2) – program wtedy nie będzie sterował kanałem PWM, ale wysyłał odpowiednie dane do wyświetlacza (jednak nie każdy VFD to obsługuje). Sama płytka niewiele się zmieniła, układ jest kompatybilny z starszą wersją i odwrotnie. Aby dostosować starą płytkę do nowych opcji, należy tylko dolutować jeden tranzystor i jeden rezystor, oraz przewody do klawiatury. I wgrać oczywiście nowy program. Dostępne są programy dla wyświetlaczy 16*2, 20*2, 24*2, oraz 20*4. Program mogę przystosować do praktycznie dowolnego wyświetlacza (ze sterownikiem HD44780), więc jeśli masz wyświetlacz którego analizator nie obsługuje, napisz, a chętnie dodam program. Ponadto są dostępne dwie wersje płytek, zarówno dla wyświetlaczy ze złączem na górze 16*1pin jak i dla wyświetlaczy ze złączem po boku 2*8pin. Szybkość odświerzania praktycznie zależy tylko od zastosowanego wyświetlacza, od tego jak szybko sterownik będzie odbierał dane i je wyświetlał – kupując wyświetlacz niestety nie jesteśmy w stanie tego sprawdzić, ale z reguły tanie 16*2 mają najwolniejsze sterowniki. W prawdzie procesor można z powodzeniem przetaktować na 20MHz lub więcej – ale jeśli mamy powolny wyświetlacz to naprawdę na niewiele się to zda. Najszybsze wyświetlacze z jakimi się spotkałem to VFD, odświerzanie jest tak szybkie że raczej nie zauważymy różnicy jeśli byłoby jeszcze szybsze :) W tym przypadku użyłem wyświetlacza noritake itron CU20029ECPB-W1J, niestety jak się okazało nie był on w 100% kompatybilny z HD44780 i jak widać na filmiku robi problemy podczas zmiany efektów.


8x2top 16x1top analizator2-1 analizator2-2

analizator2-3 analizator2-4 analizator2-5 analizator2-6

analizator2-7 analizator2-8 analizator2-9 analizator2-10

Video – Prezentacja na wyświetlaczu VFD.

Poniżej dokładnie opisze jak uruchomić analizator tak aby pracował poprawnie. (Sposób niczym się nie różni od pierwszej wersji ale tamten opis był nie zrozumiały, można go zobaczyć TUTAJ)

Istnieją trzy sposoby podłączenia sygnału audio:

  • a) Masa sygnału do punktu „Agnd” na płytce, wtedy masy analizatora i urządzenia nie mogą być połączone ze sobą.
  • b) Analizator można zasilić symetrycznie, +-2.5V, „Agnd” stanie się masą i można ją połączyć z masą urządzenia.
  • c) Jeśli masy analizatora i urządzenia muszą być połączone, i nie ma możliwości zasilenia analizatora symetrycznie, należy dodać składową stałą do sygnału aby podnieść go na wysokość 2.5V. Masy łączymy razem, sygnał podnosimy dzielnikiem R/R (rezystory rzędu 100K) łącząc go pomiędzy szyny zasilania. Sygnał na dzielnik podajemy poprzez kondensator (rzędu 1uF).
  • Kalibracja w urządzeniu docelowym
  • Poniżej opisze jak ustawić analizator do pracy z komputerem. Pamiętaj że jeśli chcesz zabudować go we wzmacniaczu lub innym urządzeniu, weź pod uwagę fakt że mogą tam występować inne poziomy sygnału. Jeśli masz możliwość podania sygnału z generatora (może być z komputera poprzez line-in urządzenia, lub nawet nagrany na cd itp) to dobrze, w przeciwnym wypadku będziesz musiał ustawić „oglądając” muzykę na oscyloskopie.

  • 1) Kalibracja szybka
  • Potrzebny będzie program „generator funkcji”, ja używam”FG Lite” (w dziale download). Podłącz i uruchom układ, dźwięk podłącz pod wyjscie karty dźwiękowej komputera, masę do Agnd. I tutaj uwaga, masy układu i komputera nie mogą być połączone! Generator funkcji ustaw na sinus, częstotliwość 400Hz, wzmocnienie ustaw na około 80%.
    gen

    Lewy potencjometr ustaw tak aby wychylony był tylko jeden słupek (ewentualnie dwa, zależnie od częstotliwości), jak najwyżej. Jeśli wzmocnienie będzie za duże, zobaczysz inne wychylające się słupki. Zmień częstotliwość generatora na 10KHz, prawy potencjometr ustaw w ten sam sposób.

  • 2) Kalibracja precyzyjna
  • Potrzebne będą dwa programy „generator funkcji” i „oscyloskop”. W tym przypadku użyłem „FG Lite” i „Oscilloscope 2.51 for windows 95” (w dziale download). Zapoznaj się z podstawową obsługą oscyloskopu, jak ustawić wejście karty dźwiękowej komputera, oraz jak ustawić wzmocnienie wejścia line-in i oscyloskopu tak aby nie było przesteru – nie będe tutaj tego opisywał. Jeśli nie masz pojęcia o co chodzi, wykonaj kalibrację szybką.

    Generator funkcji ustaw na sinus, częstotliwość 5KHz, wzmocnienie ustaw na około 80% (na zdjęciu jest 400Hz).
    gen

    Lewy potencjometr przekręć w prawo, przyłącz wejście karty dźwiękowej do punktu czerwonego.
    kalibracja

    Tak powinien wyglądać prawidłowy sygnał
    good

    A tak wygląda przesterowany z uciętymi wierzchołkami
    bad

    Jeśli potencjometr jest przekręcony do końca w prawo i mimo tego sygnał jest przesterowany, będziesz musiał zmniejszyć sygnał z komputera, lub jeśli analizator ma pracować w innym urządzeniu, będziesz musiał zastosować dodatkowy dzielnik R/R lub potencjometr aby zmniejszyć siłę sygnału. Jeśli sygnał jest czysty, spróbuj go wzmocnić kręcąc potencjometrem w lewo. To samo zrób z punktem zielonym i prawym potencjometrem. Teraz jeszcze przyłącz wejście do punktu niebieskiego a następnie żółtego aby sprawdzić czy sygnał wygląda ok. Na koniec sprawdź czy filtr dolnoprzepustowy działa dobrze, w tym celu wejście karty przyłącz do punktu żółtego, a w generatorze suwak częstotliwości przesuń powoli od lewej do prawej, sygnał powinien zaniknąć w okolicach 800Hz – 1KHz.

    W okolicach 700Hz-800Hz sygnał może lekko rosnąć, wynika to z budowy filtra dolnoprzepustowego, musiałem pójść na kompromis aby nie było potrzeby stosowania wartości typu 345pF czy 1.35Kohm. Jeśli filtr odcina zbyt wcześnie, objawi się to małą aktywnością ostatnich słupków dolnego zakresu. Jeśli odcina zbyt późno, objawi się to przebiciami dolnego zakresu do górnego. Elementy użyte do budowy filtra muszą być identyczne jak na schemacie, najlepiej nie używane aby zagwarantować odpowiednie wartości, przede wszystkim kondensatorów. Rezystory 470ohm tworzące sztuczną masę Agnd należy dobrać jak najbardziej identyczne – w przeciwnym wypadku masa nie będzie na wysokości 2.5V względem GND i zakres wejściowy się nieco skurczy.

    Jak wiadomo jeden AVR drugiemu nie równy, jeden będzie lepiej pracował przetaktowany a drugi gorzej. W tym przypadku przetwornik podczas pobierania próbek górnego zakresu jest mocno przetaktowany. Niektóre egzemplarze nie radzą sobie z takim stanem rzeczy i wymiękają – w takim przypadku górny zakres nie będzie reagował na sygnał. Aby to naprawić, wystarczy zwiększyć prescaler z 2 na 4. W poprzedniej wersji analizatora trzeba było wgrywać inny program, tutaj prescaler wybrać można za pomocą zworki (punktów lutowniczych). Jeśl inie widać górnego zakresu widma, to znaczy że przetwornik nie wyrabia i trzeba połączyć dwa punkty lutownicze pod atmegą – wtedy wybrany zostanie prescaler 4. Zauważyłem też że procesorki wyprodukowane do 2009 radziły sobie świetnie, a te wyprodukowane w 2009 gorzej – rzekłbym nawet że większość z nich nie daje rady, większość osób które zbudowały ostatnio układ miało z tym problem. Jakość schodzi na psy, co raczej mnie nie dziwi. Więc jeśli masz jakieś urządzenie oparte o Atmega8, to warto podmienić procesorek bo bardzo prawdopodobne że tamten będzie lepszy.

    Opis zworek:

    low_prescaler_vfd

    Autorem programu oczywiście jest użytkownik Hunterhouse, + kilka moich wypocin.

    UWAGA 09.02.2010 załącznik zaktualizowałem, programy z poprzedniego posiadały niewielki błąd.

    POBIERZ – pliki projektu eagle 5.4.0, schemat i płytka w PDF i PNG dla wyświetlacza 2*8 i 16*1, wsady BIN i HEX oraz źródła dla wyświetlaczy: 16*2, 20*2, 24*2, oraz 20*4.
    .
    .


    Aktualizacja 17.06.2011:
    MrShilov zaproponował zmiany na schemacie. Proste modyfikacje, a widmo będzie o wiele lepiej odwzorowane. Poniżej schemat, nie testowałem.

    5.00 avg. rating (98% score) - 3 votes

    264 komentarze

    1. Takie pytanie mam: Jak długo trwa jedna analiza dzwięku (az do wysłania danych do wyswietlacza)? Chodzi mi o tą całą procedure którą ciągle powtarza procek.

      • Nie wiem, nigdy nie mierzyłem. To zależy też od wyświetlacza na gotowość którego program musi czekać.

    2. AGAIN!!!!!!!!!!!!!!!!!
      —————————————————-
      Shahram says:
      11/08/2012 at 12:36

      Hi, it’s very nice! I am interest to your project and like to port your code to AVR-GCC code. my problem is this lines :

      Div = Dane(k)
      asr r17:ror r16:asr r17:ror r16:asr r17:ror r16:asr r17:ror r16
      asr r17:ror r16:asr r17:ror r16:asr r17:ror r16:asr r17:ror r16
      Dane(k) = Div

      can you describe me, what happened on this lines?!

      thanks a lot…
      —————————————————-

      • Sorry Shahram, i missed your previous comment.

        Those are assembler instructions, and i can’t help you with this, because i’m not the author of the „analyzer” part of code, and i don’t know whats happening there :(

    3. Witam,

      Bardzo spodobał mi się pana projekt analizatora widma akustycznego. Czy istnieje możliwość zakupu gotowej konstrukcji, albo chociaż przygotowanej płytki drukowanej do montażu elementów ? Bardzo proszę o odpowiedź.

      Z poważaniem,
      Wojtek W.

    4. Zrobiłem ten analizator; zmierzyłem (za pomoca attiny2313) czas wykonywania petli: sama analiza ok.40ms, wyświetlacz 16*2 lcd byle jaki najtańszy dodatkowe ok.90ms. (presc=0). Zabrałem się za próby przesyłania wyniku analizy sprzetowym UARTem do drugiego procka którego zadaniem byłaby obsługa wyświetlacza.

      • I czy naprawdę warto rozbijać ten program na dwa procesory? Przecież to tylko efekt do wzmacniacza, to dobrze wygląda w oryginale :)

        A czasów nie mierzyłem ale w symulatorze można by to zrobić dokładnie. Popędź szybciej tego procka i tyle :)

    5. Witam, czy mógł byś dodać obsługę wyświetlacza 4×16?

    6. Hi manekinen

      I just build your PCB thanks :)

      The design calls for a ATMEGA8-16PU could i use a 328P ?

      I don’t see any mention of the fuse settings ?

      Thanks for your hard work and help

      Koog

      • Hi.

        1 – yes but you have to recompile the code
        2 – its obvious that you need to set them to use the external crystal when device is working with external crystal :)

    7. Hi, thanks for your wonderful Project. I’m going to build it by a 2X16 LCD , is there defferance between 1X16 and 2X16 hardware? should i redesign the PCB for it?
      I run the code for 2×16 on breadboard but only ONE line is working.(only 1X16), Dose code hase a problem?? Couse i’m not familiar with bascom i cant find the problem. I will thankful if you help me with that.

      • Hardware does not differ for LCDs with different amount of lines/chars, there is a 1×16 and 2×8 PCB for various pin orientations. Just choose pcb depending on your lcd pins orientation and put proper code (2×16) into uC and it should work good. If not, maybe your LCD is not HD44780 compatible?

    8. so how could i use all of 2×16 display?
      what about the PCB?

    9. A ja chciałem rzec że kompilator bascom wywala komunikat o zdublowanej nazwie podprogramów.

      I wyświetlają mi się krzaki. Na razie zbudowałem to na płytce EVB AVR04 i bez filtrów, ale nie zmienia to faktu że nie śmiga.

      Chyba że to wina taktowania bo taktuję procek częstotliwością 8MHz.

      No i chciałem też dodać że inicjalizuje mi się tylko jedna (górna) linia wyświetlacza lcd 2×24

      Dobra, wymazać co napisałem. Zmieniłem atmegę w podstawce i ruszyło. Znaczy miałem uwaloną atmegę.
      Przepraszam, ale wcześniej działała ona bez zarzutu stąd nie przypuszczałem że może być walnięta.

      //komentarze scaliłem//

      • Błąd kompilacji spowodowany jest inną wersją bascoma, kompilacji należy dokonać na starej wersji (podanej w readme) lub zmienić zdublowane nazwy (takie same nazwy dla podprogramów i zmiennych).

    10. Już z wszystkim sobie poradziłem, ale…
      Chciałbym dodać jeszcze jeden efekt gdzie wyświetlana jest tylko jedna kreska. No tylko że tu znowu rodzi się małe ale…

      Jak kreska przejdzie na górną linię to wyświetla się na max pozycji w dolnej linii i w górnej odpowiednio do sygnału.
      Powiesz jak wymazać dolną linię?

      • Nie bardzo wiem co chcesz uzyskać, załącz jakieś zdjęcie pracującego wyświetlacza z tym niechcianym zachowaniem i fragment kodu który zmieniasz.

    11. To jest filmik, sorki za złą jakość, ale to tylko nokia500.

      A tu fragment kodu, po prostu dodaję select case w podprogramie Lcdchr:

      Case 5:
      Deflcdchar 0 , 32 , 32 , 32 , 32 , 32 , 32 , 32 , 31
      Deflcdchar 1 , 32 , 32 , 32 , 32 , 32 , 32 , 31 , 32
      Deflcdchar 2 , 32 , 32 , 32 , 32 , 32 , 31 , 32 , 32
      Deflcdchar 3 , 32 , 32 , 32 , 32 , 31 , 32 , 32 , 32
      Deflcdchar 4 , 32 , 32 , 32 , 31 , 32 , 32 , 32 , 32
      Deflcdchar 5 , 32 , 32 , 31 , 32 , 32 , 32 , 32 , 32
      Deflcdchar 6 , 32 , 31 , 32 , 32 , 32 , 32 , 32 , 32
      Deflcdchar 7 , 31 , 32 , 32 , 32 , 32 , 32 , 32 , 32

    12. Z tym że w tym kodzie wyżej dolna linia zatrzymywała się w połowie. Zmieniłem to na:

      Deflcdchar 0 , 32 , 32 , 32 , 32 , 32 , 32 , 32 , 31
      ‚Deflcdchar 1 , 32 , 32 , 32 , 32 , 32 , 32 , 31 , 32
      Deflcdchar 1 , 32 , 32 , 32 , 32 , 32 , 31 , 32 , 32
      ‚Deflcdchar 3 , 32 , 32 , 32 , 32 , 31 , 32 , 32 , 32
      Deflcdchar 2 , 32 , 32 , 32 , 31 , 32 , 32 , 32 , 32
      ‚Deflcdchar 5 , 32 , 32 , 31 , 32 , 32 , 32 , 32 , 32
      Deflcdchar 3 , 32 , 31 , 32 , 32 , 32 , 32 , 32 , 32
      ‚Deflcdchar 7 , 31 , 32 , 32 , 32 , 32 , 32 , 32 , 32

    13. Chyba nie został link.

      http://youtu.be/TROIfmV9i-0

    14. Nie wiem czemu ale nie dodał się link do filmiku

      http://youtu.be/TROIfmV9i-0

    15. Tanks you Sir! Very nice! But is this a mono (Single Channel) analyzer?

    16. czy mógłbym prosić o płytkę dla wyświetlacza 20*4 oraz schemat.

      • schemat ten sam i plytka… program sie zmienia… zapakuj odpowiedni do procka i podepnij wyswietlacz

    17. Witam wszystkich wariatów,czy jest możliwość aby ktoś wykonał taki analizator gotowy bo od dawna poszukuję czegoś fajnego do mojego wzmaka ,a ze zrobieniem takiej płytki sobie nie poradzę

    18. Witam wszystkich,
      Podpinam się pod ostatniego posta kolegi makler167. Jestem zainteresowany zakupem gotowego analizatora. Świetna sprawa ale ja również nie poradzę sobie z wykonaniem tego cuda. Jeśli ktoś z forumowiczów zechce wykonać proszę o kontakt.

      pozdrawiam

    19. początkuje z avr.. zaprogramowalem atemege 8, wlaczylem uklad.. dziala, ale tylko z lewej strony, probowalem zrobic zworki dla preskallera, nic to nie dalo, kiedy czułośc ustawie na 0, zamiast nie pokazywac nic, pokazuje caly dolny rząd, jak podkrece czulosc (wystarczy na 1 ) to lewa strona dziala, z prawej paski znikaja calkowicie, podejrzewam ze ten przetwornik nie wyrabia.. nie wiem czy to wina źle zaprogramowanego procka, pobawilbym sie z preskalerem jeszcze, ale nie umiem poprawinie skompilowac w bascomie kodu, i tez tak sie zastanawiam czy nie podeslalby mi ktos zmodyfikwoanej wersji?…wlasciwie tutaj pisze,ze atmegi po 2009 roku sa gorsze, a gdyby tak przerobic kod pod atmege 16? pomogloby?

    20. Witam.
      Właśnie zmontowałem Analizator Widma, jednak mam mały problem z podłączeniem zasilania. Rozumiem, że sygnał (analizowany) pochodzący z PC lub np. odtwarzacza MP3 nie powinien przekraczać 2.5V (podłączam pod IN i gnd). Natomiast jaka powinna być wartość napięcia zasilającego VCC? Może być 5V z USB czy też 2.5V?

      • Tylko i wyłącznie 5V, jeśli zamontowałeś układ 7805 to może być od 7,5 do 15 lub więcej ale będzie się grzał.

    21. Czesc:) Nie znam sie wogole na elektronice, ale potrzebne mi są takie dwa analizatory widma. Kto by mi je potrafił zrobić i za ile? Prosze o pilny kontakt.Pozdrawiam. Pisze z Białegostoku.

    22. Testowałem ten program na układzie atmega8 + wyświetlacz LCD 16*2. Jednak wyswietlacze VFD są strasznie drogie. Chciałbym zamiast tego skorzystać z 16 PWMów jakie można znaleźć w układach z serii Xmega. Z programem nie widzę problemów go dopasować, ale xmegi mają max 3,6V zasilanie. Jakie zmiany są konieczne w części analogowej aby to dopasować? (Poza tym układy xmega mają wieksze możliwości m.in. 12bit ADC, 32Mhz)

      • Hej, musisz znaleźć wzmacniacz operacyjny który będzie pracował przy tak niskim napięciu. Do tego oczywiście dopasować napięcia, sprawdzić czy to co dostaje się na ADC wygląda dobrze, i to wszystko. Z programem mogą być kłopoty, a dokładnie ze wstawkami ASM.

    23. Witam. Udało mi się zmontować układ. Jednak po podłączeniu zasilania podświetlenie mruga a w górnym wierszu wyświetlają się prostokątny (brak inicjalizacji ze strony procka?). Zmierzyłem napięcia i na nogach potencjometrów jest 2,5 V natomiast na nogę zasilania procka idzie pełne 5V. Nie wiem czy nie robię błędu przy programowaniu: w mkAVR w fusach uproszczonych wybieram zewnętrzny kwarc powyżej 8 MHz, a w okienku głównym wgrywam plik hex i eproma .bin?? Jakieś porady? :)

      • Udało mi się wyeliminować „mruganie” ekranu, oraz w końcu „coś” pokazało się na wyświetlaczu. Załączam obrazek. Martwi fakt, że pod kątem widoczna aktywna jest tylko jedna linia (górna) LCD…

      • Co ja mogę napisać, zepsuła mi się magiczna kula, a możliwych powodów jest multum. Złe zasilanie, źle wgrany program/fuski, błędnie zmontowana płytka, bardzo długie przewody do lcd/bardzo zaśmiecone zakłóceniami środowisko. Wątpie że ten lcd się w ogóle inicjuje, choć te paski wyglądają obiecująco. Sprawdź czy jest jakakolwiek reakcja na przyciski, weź jakiąś sondę logiczną sprawdź czy coś jest wysyłane do lcd, czy rezonator w ogóle pracuje – tak jak mówię to może być wszystko.

      • Mógłbyś wyjaśnić jak powinny być ustawione fuse bity?

    24. hello! this version has keyboard support, but why do you have 6 wires to connect? board has only 5.

    25. A można wszdzik z wyświetlaczem 40 * 4 czyli 4 paseczki/oktawę :-)
      Mam taki i nie wiem do czego wykorzystać :)
      Podpowiem że w tym wyświetlaczu występują dwie linie E i dwa układy HD44780 oraz użyć biblioteki lcd42e

    26. Скажите, а под atmega8a-pu можно код сделать? А то при прошивке ругается на кристал, а при компиляции выводио ошибку.
      Tell me, under atmega8a-pu code can do? And then when flashing swears on the crystal, and displays an error when compiling.

    27. Witaj :) Piękny analizator … Jest możliwość rozszerzenia programu pod wyświetlacz 2×40 ?
      Pozdrawiam Konrad :D

      • Myślę że bez problemu, ale ja się nie podejmuję, jest to dosyć stary projekt i ciężko będzie mi do niego teraz wracać, tym bardziej że nie mam kiedy.

    28. Witaj.
      Złożyłem to cudo i śmiga ale chciałem przerzucić na atmega88 (zmieniłem w bascomie na m88) i niestety już nie działa. Próbowałem znaleźć dlaczego ale nie ma w kodzie niby nic co by różniło się dla atmegi88. Kojarzysz co może być przyczyną?
      Pozdrawiam
      Piotr

      • Tam są instrukcje asm które niekoniecznie mogą robić to samo na mega88 i program może iść w krzaki. Może też różnice w obsłudze ADC. Musisz poczytać DS o „przesiadce”, gdzieś coś takiego jest na stronie atmela.

      • manekinen, te instrukcje w asm (wygląda to na dzielenie) wyglądają identycznie dla obu procków (rejestry od R16 w górę są takie same dla obu). ADC niby też bez znaczenia bo bierze napięcie ref = vcc.
        Spróbuję przenieść to na ‚C’ i rozwiać tajemnicę tych instrukcji asm. W C powinno to dużo lepiej się skompilować. W bascomie 3 linijki z funkcjami dodawania zmiennych zajęły mi więcej pamięci w procku po kompilacji niż definicja wszystkich znaków specjalnych – słupków ;)

      • sprawa instrukcji w asm jest prosta jak się okazuje.

        Dim Div As Iram Integer At 16
        Div = Poziom <dzięki powyższej deklaracji program zmienną 'poziom' umieszcza a pamięci ram – dokładnie w rejestrach R16 i R17 – zmienna 2bajtowa

        asr r17:ror r16:asr r17:ror r16:asr r17:ror r16:asr r17:ror r16 asr r17:ror r16 <ASR – przesuniecie arytmetyczne w prawo o jeden bit (bit 7 odpowiedzialny za znak +/- nie jest ruszany, ROR – rotacja w prawo o jeden bit z użyciem znacznika. Jest to uproszczone dzielenie dwubajtowej zmiennej przez 2.
        Poziom = Div przepisanie rejestrów do zmiennej.
        Prawdopodobnie w c wystarczy zrobić poziom = poziom /2
        Piotr

      • poprawka, poziom = poziom / X (instrukcja dzielenia w asm wykonana X razy)

      • Z jaką wersją kompilatora pracujesz? Pomiędzy tymi starszymi a 2.0 wzwyż jest sporo różnic.

      • Gmeram sobie w 2.9d.
        Ogarnąłem już to co chciałem ale zauważyłem, że słupki 7 i 8 ledwo się wychylają. Chyba coś nie tak z filtrem poskładałem…

      • Soft przerobiłem tak, żeby wystawiał trzy PWM’y do sterowania ledami w takt muzyki. Taki dodatkowy kolorofon do Twojego projektu.

      • Tak, coś namieszane z filtrem. Ewentualnie nanieś sobie poprawkę w programie, tam niektóre słupki były chyba wzmacniane lub osłabiane, nie pamiętam już. W czym leżał problem że układ nie chciał działać?

      • Problem z przerzuceniem na atmega88 był banalny, zmieniałem w opcjach projektu ale nie zwróciłem uwagi, że w kodzie na początku jest zdefiniowany procek :)
        W filtrze zmieniłem dwa kondziołki i już śmiga tak jak chciałem.

    29. Hi,

      How this analyzer should be connected in case of symmetric power (+2.5V, -2.5V )

      Thanks.

    30. Configurazione dei Fuses???? HI and LOW

      THX…

      ????

    31. A gdyby tak przenieść ten kod na XTmega? Większa rozdzielczość ADC nie ma tu znaczenia, ale mamy 2Ms na sekundę co likwiduje problem za małego pasma. Dodatkowo wykorzystując mechanizmy wspomagające, jak DMA czy Event routnig można by zrobić naprawdę real-time analyzer…

    32. Witam mam pytanie była by możliwość złożenia przez pana i kupno gotowego Analizera widma akustycznego ?? w miarę możliwośći proszę o kontakt e-mail Sewek1000@o2.pl lub gg – 11326741

    33. Witam
      Mam problem przy kompletowaniu elementów.
      Co oznacza np.:
      przy kondensatorze
      50n, 330n, 2n, 2n2
      czy to są nanofarafy ?

    34. I built this and it works OK. I use the same Noritake VFD as you. There is a good deal of noise present in the signal at the filter outputs. This is visible on the display as jitter in the lowest segments. My guess this is coming from the AVR and the data lines. I expect a 0.01 uf bypass cap between pins 4, 11 and GND on the LM324 will improve this.

      One other thing: VFD is clearly best for this project but it draws a lot of current. It might be good to skip the regulator and just use a regulated 5v supply, or redesign for a LDO regulator and use a 6v supply. LM7805 gets hot!

    35. where is source code?

    36. Meisterproppa

      Hi at all,
      this is really a nice project and i want to use that in my new diy pre amplifier, but i would
      really like to use a t6963 compatible 240×64 pixel graph LCD and so my question is, is someone who has already adopt this code to working on a graph LCD ?
      I think this is not so easy cause it must have good implementation of drawing the bars which could reduce the refresh rate of the analyzer.

      It someone has done this already in bascom it will really great if you can share the source code.

      Cheers

      sven

    37. Hello there!

      I was wondering if your spectrum analyzer project could be adapter to work with a mic microcontroller instead of an AVR. All I can buy locally is PIC microcontrollers and I already have a programmer for PICs but not for AVR.

      Can such a thing be done?

      Thank you and great website!

    38. M16SD08AJ с таким индикатором работать будет?

    39. Martin Mik

      Hello, pls can you send me english 20×4 code? Thank you very much in advance.

    40. Hi,, i would like to buy a spectrum analyzer – V2 please can you help..?

    41. Zadawałem wyżej pytanie ale odpowiedzi nie uzyskalem.

      Chciałbym dodać jeszcze jeden efekt gdzie wyświetlana jest tylko jedna kreska. Ale jak kreska przejdzie na górną linię to wyświetla się na max pozycji w dolnej linii i w górnej odpowiednio do sygnału.
      Powiesz jak wymazać dolną linię?

      A tu fragment kodu, po prostu dodaję select case w podprogramie Lcdchr:

      Case 5:
      Deflcdchar 0 , 32 , 32 , 32 , 32 , 32 , 32 , 32 , 31
      Deflcdchar 1 , 32 , 32 , 32 , 32 , 32 , 32 , 31 , 32
      Deflcdchar 2 , 32 , 32 , 32 , 32 , 32 , 31 , 32 , 32
      Deflcdchar 3 , 32 , 32 , 32 , 32 , 31 , 32 , 32 , 32
      Deflcdchar 4 , 32 , 32 , 32 , 31 , 32 , 32 , 32 , 32
      Deflcdchar 5 , 32 , 32 , 31 , 32 , 32 , 32 , 32 , 32
      Deflcdchar 6 , 32 , 31 , 32 , 32 , 32 , 32 , 32 , 32
      Deflcdchar 7 , 31 , 32 , 32 , 32 , 32 , 32 , 32 , 32

      To jest taki efekt

      http://youtu.be/TROIfmV9i-0

      • Przykro mi, nie jestem w stanie pomóc. To jest układ sprzed 6 lat więc trudno wymagać abym był z nim na bieżąco.

    42. Nie wymagam. Oczywiście zdaję sobie z tego sprawę, ale myślałem że choć trochę z tego układu jeszcze pamiętasz… No nic, będę kombinował.
      Dziękuję w każdym razie za ten przecudowny układ.

    43. Witam, czy mógł byś dodać obsługę wyświetlacza 4×16?

      • Kolego, patrz wyżej. Nie jestem w stanie wspierać tak starych projektów.

    44. Witam czy mógółbym dostac kod źródłowy lub czy jest możliwość otworzenia go z pliku hex

    45. wiem ale nie ma tam kodu źródłowego czy mogę prosić o instrukcjię otworzenia go

    46. Witam zmontowałem układ wszystko gra z wyjątkiem że cały czas widnieje w górnej linii napis Jasność tak jak byłby wciśnięty przycisk a nie jest zwarć na płytce nie ma pozatym wszystko ok

      • Jeśli mnie pamięć nie myli to kod w wersji C miał taki błąd, D powinien być poprawiony.

    47. Witam przez przypadek uszkodziłem atmegę i przyszła mi nowa ale z oznaczeniem 8a-pu i po zaprogramowaniu mam problem po wpięciu do płytki włączeniu zasilania wyświetlacz kilka razy pomiga i pisze jasność(pisze dlatego ponieważ na płytce przez przypadek lutowalem pin od jasności do masy pomyłkowo stąd ten napis)a wracając do tematu jak już pomiga i zgaśnie układ sie zawiesza na nic nie reaguje czy może jest to spowodowane tego modelu procesorem

    48. Dzięki za ten projekt! Wykonałem go z pewnymi modyfikacjami tj na LEDach RGB:
      http://www.elektroda.pl/rtvforum/topic3136084.html

    49. witam po złożeniu i zaprogramowaniu miga dioda od ekranu co jest nie tak nie ma żadnych zwarć

    Dodaj komentarz

    Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

    Proszę pozostawić te dwa pola tak jak są: