(3 głosujących) Opisywane urządzenie znakomicie nadaje się jako wzmacniacz multimedialny. Zaletą układu jest możliwość sterowania z komputera lub za pomocą pilota pracującego w standardzie Rc5. Główną częścią urządzenia jest sterownik zbudowany w oparciu o mikrokontroler ATMega162. Jego zadaniem jest między innymi komunikacja z komputerem PC przez port RS-232, sterowanie przedwzmacniaczem cyfrowym TDA8425, pomiar temperatury końcówki mocy, sterowanie chłodzeniem oraz zapis ustawień do pamięci EEPROM. Jako końcówkę mocy zastosowano dwa układy TDA2030 dostarczające moc ok. 2x15W. Aplikacja sterująca została napisana w programie LabVIEW firmy National Instruments (http://www.ni.com/) w ramach zajęć z przedmiotu Komputeryzacja Pomiarów jako projekt zaliczeniowy.
Działanie:Schemat ideowy sterownika przedstawiony jest na rysunku poniżej: Sercem układu jest mikrokontroler U1 (ATMega162) wraz z rezonatorem kwarcowym X1 (16MHz) i dwoma kondensatorami C1 (22pF) i C2 (22pF). Potencjometr P1 (10k) służy do regulacji kontrastu wyświatlacza LCD W1 (20x4). Tranzystory T3 (BC547B) oraz T4 (BD140) wraz z rezystorami R12 - R14 (3,3k) stanowią obwód wykonawczy do sterowania pracą wentylatora (z pomiarem obrotów, trójprzewodowy) podłączonego do złącza Went. Przyciski S1 - S8 (uSwitch) służą do ustawiania parametrów pracy wzmacniacza (poziom głosu, tony niskie i wysokie, wyciszenie oraz zmiana wejść). Złącze SW_Goldpin umożliwia podłączenie Odbiornika Rc5 a przez to sterowanie wzmacniaczem za pomocą pilota. Tranzystory T1 (BC557B) i T2 (BC547B) oraz rezystory R1 - R3 (10k) tworzą prosty interfejs RR-232. Rezystory R16 (3,3k) oraz R17 (3,3k) podciągają linie magistrali I2C do plusa zasilania. Złącze GP zapewnia kontakt sterownika z płytką wzmacniacza oraz jest jednocześnie złączem zasilania sterownika. Kondensator C4 (100uF) filtruje napięcie zasilające. Prog1 jest złączem programującym a rezystory R4 - R7 (330R) zabezpieczają port LPT komputera przed ewentualnym uszkodzeniem. Diody LED D1 - D4, wraz z rezystorami R8 - R11 (330R) ograniczającymi ich prąd, informują o stanach pracy układu (wyciszenie, wejścia, autozapis ustawień). Do pomiaru temperatury służy czujnik DS18B20 podłączony do złącza ds. Rezystor R15 (4,7k) umożliwia poprawną pracę magistrali 1-Wire. Schemat ideowy wzmacniacza przedstawia poniższy rysunek: Kondensatory C19 - C22 (470nF) odcinają składową stałą od wejśc procesora dźwięku U2 (TDA8425) natomiast kondensatory C9 (2,2uF) i C10 (2,2uF) robią to samo z wyjściami układu U2. Elementy C13 - C14 (33nF), C15 - C16 (15nF) oraz C17 - C18 (5,6nF) i C23 (100uF) zostały zastosowane zgodnie z zaleceniami producenta układu TDA8425 a ich wartości pochodzą wprost z karty katalogowej. Są one konieczne do poprawnej pracy procesora dźwięku. Zasilacz zbudowany jest w oparciu o stabilizatory U3 (7812) i U4 (7805) dostarcza napięć zarówno dla przedwzmacniacza jak i płytki sterownika (dzięki złączu GP). Kondensatory C11 (4700uF), C12 (47uF) oraz C24 (47uF) filtrują napięcie zasilania i są konieczne do poprawnej pracy stabilizatorów. Złącza IN1 oraz IN2 stanowią dwa stereofoniczne niezależne wejścia, które mogą współpracować z źródłem dźwięku takim jak: komputer, odtwarzacz mp3 czy radio. Złącze AN podłączone do wyjścia procesora dźwięku ma zostać podłączone do wejścia liniowego w komputerze w celu umożliwienia analizy sygnału. Rezystory R1a (100k), R2a (100k) i R3a (100k) służą do polaryzacji stopni wstępnych wzmacniacza, kondensator C2a (22uF) filtruje to napięcie polaryzacyjne. Kondensator C1a (1uF) zapobiega przedostawaniu się napięć stałych do wzmacniacza oraz na zewnątrz urządzenia. Elementy R4a (4.7k), R5a (150k) oraz C3a (2.2uF) pracują w pętli ujemnego sprzężenia zwrotnego i mają za zadanie kształtoanie charakterystyki widmowej wzmacniacza. Rezystor R6a (1R) wraz z kondensatorem C5a (100nF) pracują w układzie, który kształtuje charakterystyke na wyjściu. Kondensator C6a (1000uF) zapobiega przepływowi stałego prądu przez głośnik. Diody D1a (1N4007) oraz D2a (1N4007) zapobiegają pojawieniu się groźnych napięć, które mogą powstać w cewce głośnika. Kondensatory C7a (100uF) i C8a (100nF) filtrują dodatkowo napięcie zasilające obie końcówki mocy. Drugi kanał końcówki mocy ma identyczną budowę i zasadę działania a jego elementy oznaczone są literą "b". Budowa:Sterownik można zbudować w oparciu o płytkę dostępną tutaj. Rysunek w odbiciu lustrzanym dostępny jest tutaj. Montaż należy rozpocząć od wlutowania dwóch najkrótszych zworek. Pozostałe dwie należy wykonać kawałkami izolowanych przwodów dopiero po przylutowaniu podstawki pod mikrokontroler U1. Potencjometr P1, znajdujący się pod wyświetlaczem można zamontować w pozycji leżącej, tak aby umożliwić wygodniejszą regulację kontrastu wyświetlacza. Montaż pozostałych elementów jest typowy i nie stwarza problemów. Specjalne rozmieszczenie elementów na płytce stwarza możliwość rozcięcia jej na dwie części w poziomie. Umożliwi to zamontowanie obu części w ewentualnej przyszłej obudowie. Złącze DB9F należy w takim wypadku podłączyć przewodami i umieścić na tylnej ścianie obudowy. Sposób podłączenia wentelatora na tym samym stabilizatorze co procesor dźwięku powoduje generowanie niewielkich zniekształceń w torze audio, związanych z impulsową pracą wentylatora. Zniekształcenia słyszalne są tylko gdy wzmacniacz pracuje bez sygnału wejściowego. Gdyby było to problemem można zastosować osobny stabilizator dla wentylatora. Pomocą przy konstrukcji może okazać się dostępny tutaj schemat montażowy. Wzmacniacz można zbudować w oparciu o płytkę dostępną tutaj. Rysunek w odbiciu lustrzanym dostępny jest tutaj. Montaż należy rozpocząć od wlutowania wszystkich zwór. Kolejność pozostałych elementów jest dowolna. Pod układ U2 dobrze jest zastosować podstawkę. Końcówki mocy muszą być koniecznie wyposażone w radiator, podobnie jak stabilizatory U3 i U4. Na płyce przewidziane są miejsca na złącza JACK do druku. Podyktowane jest to faktem iż opisywany projekt miał służyć jako wzmacniacz pokazowy. Bez żadnego problemu można umieścić gniazda w tylnej ścianie obudowy i połączyć je z płytką za pomocą skrętek przewodów. Do zasilania wzmacniacza należy zastosować transformator sieciowy o mocy ok. 50W i napięciu ok 17-20V. Uzwojenie wtórne transformatora należy podłączyć do złącza śrubowego Zas. Pomocą przy konstrukcji może okazać się dostępny tutaj schemat montażowy. Wykaz Elementów:Sterownik:2x Listwa Gold Pin 1x3 1x Listwa Gold Pin 1x7 1x Listwa Gold Pin 1x10 1x Złącze szufladkowe na goldpiny 1x8 1x Złącze szufladkowe na goldpiny 1x16 8x uSwitch 12x12mm 1x Złącze DB9F do druku 8x 330R 2x 22pF 1x Rezonator Kwarcowy 16MHz Wzmacniacz3x Złącze ARK2 3x Złącze Jack 3,5mm do druku 1x Listwa Gold Pin 1x7 2x 1R 2x 5,6nF MKT 2x 1uF Elektrolit 4x 1N4007 Programowanie:Fragmenty programu napisanego w języku BASCOM AVR firmy MCS Electronics (http://www.mcselec.com/) przedstawione są poniżej: Ten fragment pętli głównej programu odpowiedzialny jest za realizacją odczytu jednego bajtu danych przychodzących z portu RS-232 oraz jego odpowiednią interpretację: Rs_wartosc = Inkey() Rs_adres = Rs_wartosc Shift Rs_adres , Right , 5 Rs_wartosc = Rs_wartosc And &B00011111 If Rs_adres = 1 Then 'glos l i r Glos_l = 224 + Rs_wartosc 'wartosc 0-31 Gosub Wyslij_tda8425 Gosub Wyswietl End If If Rs_adres = 3 Then 'bass Bass = 242 + Rs_wartosc 'wartosc 0-9 (0->-12dB,4->0dB, 8->12dB, 9->15dB) Gosub Wyslij_tda8425 Gosub Wyswietl End If If Rs_adres = 4 Then 'treble Treble = 242 + Rs_wartosc 'wartosc 0-8 (0->-12dB,4->0dB, 8->12dB) Gosub Wyslij_tda8425 Gosub Wyswietl End If If Rs_adres = 5 Then 'funkcje Funkcje.0 = Rs_wartosc.0 '[1][mu][efl][stl][we1=0 we2 =1] Funkcje.3 = Rs_wartosc.1 Funkcje.4 = Rs_wartosc.2 Funkcje.5 = Rs_wartosc.3 Gosub Wyslij_tda8425 Gosub Wyswietl End If If Rs_adres = 6 Then 'pwm If Rs_wartosc = 31 Then 'wartosc 0-25 ->ustawia pwm i reczny tryb Went_auto = 1 'wartosc 31 -. ustawia automatyczny tryb Else Went_auto = 0 Went_pwm = Rs_wartosc End If End If If Rs_adres = 2 Then 'zgloszenie potrzeby wyslania danych Rs_wyslij1 = 1 Rs_wyslij2 = 1 End If Poniższy fragment kodu wykonywany jest co 4ms. Jego zadaniem jest obsługa klawiatury oraz wysyłanie dwóch pięciobajtowych paczek danych do komputera PC: If Flaga_4ms = 1 Then 'co 4ms Reset Flaga_4ms '*************** If Sw_port <> 255 And Stan_portu = Sw_port Then Incr Licznik_sw If Licznik_sw = 50 Then Licznik_sw = 0 Select Case Stan_portu Case 127: If Glos_l < 255 Then Incr Glos_l Case 247: If Glos_l > 224 Then Decr Glos_l Case 239: Funkcje.5 = Not Funkcje.5 'mute Case 254: Funkcje.0 = Not Funkcje.0 'wejscia Case 223: If Treble < 250 Then Incr Treble Case 253: If Treble > 242 Then Decr Treble Case 191: If Bass < 251 Then Incr Bass Case 251: If Bass > 242 Then Decr Bass Case 246: ' reset Glos_l = 224 Bass = 246 Treble = 246 Funkcje = 238 Went_auto = 1 Rs_wyslij1 = 1 Rs_wyslij2 = 1 End Select Gosub Wyslij_tda8425 Gosub Wyswietl Rs_wyslij1 = 1 'flaga powodujaca wyslanie rs End If Else Stan_portu = Sw_port Licznik_sw = 45 End If Rs_kolejnosc = Not Rs_kolejnosc If Rs_kolejnosc = 1 Then If Rs_wyslij1 = 1 Then Rs_wyslij1 = 0 'jednorazowo wysyla parametry dzwieku Printbin 255 ' powoduje rozpoznanie bajtu jako ust dzwięku Printbin Glos_l '224-255 Printbin Bass 'min=242 0=246 max = 251 Printbin Treble 'min=242 0=246 max = 250 Printbin Funkcje '[1][1][mu][efl][stl][1][1][we1=0 we2 =1] End If Else If Rs_wyslij2 = 1 Then Rs_wyslij2 = 0 'jednorazowo wysyla temp, pwm i rpm If Went_auto = 1 Then Went_pwm_send = 31 Else Went_pwm_send = Went_pwm End If Printbin Went_pwm_send Printbin Tempa Printbin Went_rpm End If End If '*************** End If Głównym zadaniem tej części programu jest odczyt temperatury i obliczanie obrotów wentylatora a także realizacja automatycznego regulatora obrotów w zależności od temperatury. Ten fragment programu wykonywany jest co 1s. If Flaga_1s = 1 Then 'co 1s Reset Flaga_1s '*************** Pomiar_odczyt = Not Pomiar_odczyt Disable Interrupts 1wreset If Pomiar_odczyt = 1 Then 1wwrite &HCC 1wwrite &H44 Else 1wwrite &HCC 1wwrite &HBE Lsb = 1wread(): Msb = 1wread(): Tempa = Msb * 256 Tempa = Tempa + Lsb Tempa = Tempa * 10 'temperatura *10 Tempa = Tempa / 16 End If Enable Interrupts Locate 4 , 2 Tempa_10 = Tempa / 10 Tempa_help = Tempa_10 * 10 Tempa_1 = Tempa - Tempa_help Lcd Tempa_10 ; "." ; Tempa_1 ; Chr(2) ; "C " If Went_auto = 1 Then 'sterowanie automatyczne went od temp Went_pwm = Tempa_10 / 5 If Went_pwm > 25 Then Went_pwm = 25 End If Went_rpm_help(1) = Went_rpm_help(1) * 10 'mnożnik = (60/czaspomiaru)*(1/imp na obrot)*(1/3wartosci do sredniej) If Went_rpm_help(1) < 10000 Then Went_rpm = Went_rpm_help(1) Went_rpm = Went_rpm + Went_rpm_help(2) Went_rpm = Went_rpm + Went_rpm_help(3) Went_rpm_help(3) = Went_rpm_help(2) Went_rpm_help(2) = Went_rpm_help(1) End If Went_rpm_help(1) = 0 Rs_wyslij2 = 1 'flaga powodujaca wyslanie rs Locate 4 , 12 If Went_rpm < 1000 Then Lcd " " If Went_rpm < 100 Then Lcd " " If Went_rpm < 10 Then Lcd " " Lcd Went_rpm If Save_en = 1 Then 'zapisywanie do eeprom gdy cos zmieniono w tda i nie zmieniano przez 5 sec Incr Save_count If Save_count = 5 Then Save_count = 0 Save_en = 0 Led_save = 0 Writeeeprom Glos_l , Dane Writeeeprom Bass Writeeeprom Treble Writeeeprom Funkcje End If Else Save_count = 0 Led_save = 1 End If '*************** End If Widoczna poniżej obsługa przerwania timera 0 zajmuje się obliczaniem opoznień 4ms i 1s oraz ustawianiem flag potrzebnych do pracy głównej pętli programu. Zawarta jest tutaj także prosta realizacja zmiany obrotów przez regulację wypełnienia przebiegu prostokątnego podawanego na wentylator: Prztimer0: 'co 4ms Timer0 = 5 Incr Went_licz If Went_licz = 25 Then Went_licz = 0 If Went_licz < Went_pwm Then Set Went Else Reset Went Set Flaga_4ms Incr Dzielnik If Dzielnik = 250 Then Dzielnik = 0 Set Flaga_1s End If Return Poniższy fragment kodu zawiera dwie procedury umożliwiające sterowanie pracą procesora dźwięku: Wyslij_i2c: I2cstart I2cwbyte 130 I2cwbyte Adres I2cwbyte Wartosc I2cstop Waitms 1 Return Wyslij_tda8425: If Led_save = 1 Then Save_en = 1 Save_count = 0 End If Adres = 0 Wartosc = Glos_l Gosub Wyslij_i2c Adres = 1 Wartosc = Glos_l Gosub Wyslij_i2c Adres = 2 Wartosc = Bass Gosub Wyslij_i2c Adres = 3 Wartosc = Treble Gosub Wyslij_i2c Adres = 8 Wartosc = Funkcje Gosub Wyslij_i2c Return Aplikacja Sterująca:Do obsługi wzmacniacza wykorzystano aplikację napisaną w LabVIEW. Niestety wersja programu dostępna na uczelni nie pozwoliła stworzyć odrębnie działającej aplikacji i do jej działania wymagane jest LabVIEW 7.1 oraz sterowniki sprzętowe dostępne na stronie firmy National Instruments (http://www.ni.com/). Wzmacniacz podłączony jest do komputera PC za pomocą interfejsu RS-232 a mierzony sygnał audio podawany jest na wejście liniowe karty dźwiękowej komputera. Wygląd panelu przedniego aplikacji sterującej wzmacniaczem przedstawiony jest na rysunkach poniżej: Aplikacja umożliwia między innymi: Program w formacie *.vi można pobrać tutaj. Jedyny problem jaki może pojawić się podczas jego używania to obciążenie procesora jakie stwarza podczas wyświetlania grafiki analizatora widma. Po zminimalizowaniu aplikacji wszystko jest ok. Mimo, iż program ma dużą objętość, jego działanie nie jest bardzo skomplikowane. Budowę programu (użyte klocki) można zobaczyć tutaj natomiast poniżej zostanie omówione działanie najważniejszych części. Pętla przedstawiona na rysunku poniżej zajmuje się obsługą karty dźwiękowej i odczytem sygnału: Głównym składnikiem jest wewnętrzna pętla While, wewnątrz której znajduje się moduł Si READ odczytujący zawartość bufora, do którego zapisywane są kolejne wartości próbkowanego sygnału. Moduł ten dodatkowo działa jako opóźnienie pętli, zatrzymując jej wykonywanie do czasu zapełnienia bufora. Dzięki temu zwiększenie ilości iteracji, zapisywane do zmiennej nowe dane, jednoznacznie identyfikuje odczytanie bufora, którego zawartość jest zapisywana do tablicy sygnał. Dla danych ustawień początkowych (próbkowanie z częstotliwością 44,1 kHz przy 16-bitowej rozdzielczości) bufor o rozmiarze 1764 bajtów jest zapełniany w czasie 10ms. Zmieniając odpowiednio (przez zmienną Czas Próbkowania) rozmiar bufora można uzyskać różne czasy odczytu jego zawartości, a przez to szybkość działania analizatora. Zmiana wartości czasu próbkowania przez użytkownika wymaga ponownego zainicjowania procedury odczytu, co jest sygnalizowane przez wartość True zmiennej Reinicjacja. Wystąpienie błędu przepełnienia bufora, wynikające np. z zajęcia procesora przez inną aplikację, powoduje wpisanie wartości True do zmiennej Próbkowanie. Kombinacja logiczna zmiennych Reinicjacja i Próbkowanie powoduje przerwanie wykonywania wewnętrznej pętli While i wykonanie kolejnej iteracji zewnętrznej pętli, gdzie poprzez Strukturę Case następuje ponowne uruchomienie procedury odczytu sygnału. Kolejnym ważnym elementem programu jest obsługa portu RS-232 i komunikacja ze wzmacniaczem. Poniżej przedstawiona jest pętla obsługi portu szeregowego bez jego konfiguracji, którą możemy zobaczyć na rysunku przedstawiającym cały schemat: Na początku programu następuje konfiguracja portu szeregowego po czym program wpada do nieskończonej pętli while. Głównym elementem pętli jest Rejestr Przesuwny inicjowany wartością 255. Po pierwszym przejściu pętli do rejestru wpisywana jest wartość zmiennej Wysyłany_Bajt. W każdej iteracji pętli wartość z rejestru porównywana jest z tą zmienną. W razie niezgodności danych rejestr przyjmuje nową wartość i jednocześnie zmienna Wysyłany_Bajt zostaje podana na port RS-232 (zapewnia to niewielka Struktura Case). Dzięki Strukturze Sekwencyjnej generowane jest opóźnienie między ewentualnym wysyłaniem a odbieraniem danych z portu szeregowego. Po określeniu liczby bajtów znajdujących się w buforze portu szeregowego następuje ich odczyt. Interpretacja odebranych danych występuje tylko wtedy gdy odebrano 5 bajtów danych (taką ilość bajtów wysyła wzmacniacz, w dwóch niezależnych paczkach). Po spełnieniu warunku na długość danych wykonuje się struktura Wczytywanie bajtów z RS. Dane w postaci łańcucha znaków zamieniane są na Tablicę Bajtów a następnie dzielone są na 5 wartości liczbowych. Procesor wzmacniacza wysyła dwie paczki danych przez co konieczna jest identyfikacja które dane zostały odebrane. Dokonuje się to po pierwszym bajcie którego wartość równa 255 identyfikuje pozostałe bajty jako Dane do obsługi wzmacniacza, natomiast inna wartość pierwszego bajtu sprawia że paczka rozpoznawana jest jako Dane do obsługi temp. i went.. Gdy wewnętrzna Struktura Case dostaje na wejście stan True zajmuje się ustawianiem parametrów wzmacniacza (rysunek powyżej). Pierwszy bajt jest ignorowany ponieważ w tym przypadku zawsze ma wartość 255. Kolejne trzy bajty danych po przejściu przez elementarne operacje arytmetyczne (zdeterminowane przez oprogramowanie w mikrokontrolerze wzmacniacza) ustawiają pokrętła na panelu przednim w odpowiednich pozycjach. Ostatni bajt ze względu na fakt że jest zbiorem flag bitowych (każdy jego bit ustwiany jest niezależnie i oznacza np. wyciszenie włączone lub wyłączone itp.) dzielony jest na pojedyńcze bity, które ustawiają wejścia, wyciszenie oraz tryb pracy wzmacniacza (wartości bitów zależą od oprogramowania w mikrokontrolerze). Gdy natomiast wewnętrzna Struktura Case dostaje na wejście stan False zajmuje się ustawianiem pracy wentylatora oraz wyświetlaniem temperatury radiatora, co możemy zobaczyć na rysunku poniżej: Pierwszy bajt interpretowany jest jako ustawienia wentylatora. Jego wartość równa 31 ustawia tryb pracy na Automatyczny, a wartości z przedziału 0-25 powodują ustawienie pokrętła Obroty oraz aktywowanie Ręcznego trybu pracy wentylatora. Kolejne dwa bajty to starszy i młodszy bajt temperatury, która wysyłana jest w postaci liczby pomnożonej przez 10. Wartość temperatury po przedzieleniu przez 10 ustawiana jest za pomocą Property Node ze względu na konieczność sygnalizowania zdarzenia po zmianie wartości. Dwa ostatnie bajty zawierają informację o prędkości obrotowej wentylatora. Ważnym elementem w programie jest obsługa zdarzeń. Rysunek poniżej przedstawia fragment pętli, dotyczący pokrętła Poziom Głosu: Zdarzenie wywoływane jest po przekręceniu pokrętła głośności na panelu przednim programu. Wartość głośności przeliczana jest do postaci akceptowanej przez wzmacniacz oraz sumowana logicznie z wartością 32, która odpowiada wartości 1 w mikrokontrolerze (po podzieleniu przez 32). Zdarzenia dla regulacji tonów wyglądają podobnie, różnią się jedynie adresem który jest sumowany logicznie z wartością regulacji tonów. Obliczona wartość wraz z adresem wpisywana jest do zmiennej Wysyłany_Bajt co powoduje jej wysłanie na port RS-232. Dzieje się to dzięki pętli obsługi portu szeregowego skanującej wartość zmiennej Wysyłany_Bajt. Zdarzenia obsługi czterech przycisków zmieniających tryby pracy wzmacniacza są analogiczne, różnią się jedynie wartościami stałych wynikających z oprogramowania w mikrokontrolerze wzmacniacza. Na rysunku poniżej przedstawiony jest fragment pętli, dotyczący przycisku Liniowe Stereo: Po wywołaniu zdarzenia dzięki Property Node blokowana jest możliwość ponownego kliknięcia przycisku Liniowe Stereo. Pozostałe przyciski tym samym sposobem stają się możliwe do kliknięcia. Jednocześnie do wszystkich pozostałych przycisków wpisywana jest wartość False. Tworzony jest bajt zawierający zespół flag bitowych niosących informację o funkcjach wzmacniacza (wartości w bajcie są określone przez oprogramowanie mikrokontrolera) a następnie jego wartość wpisywana jest do zmiennej Wysyłany_Bajt. Za resztę odpowiada pętla obsługi portu szeregowego. Ostatnim zdarzeniem zasługującym na opis może być obsługa komponentu Zmiana Skórki. Odpowiedni rysunek zdarzenia przedstawiony jest poniżej: Po wywołaniu zdarzenia odczytywana jest ścieżka do aktualnie uruchomionego projektu. Po odcięciu nazwy pliku *.vi do pozostałej części dodawana jest nazwa rysunku o numerze równym wartości komponentu Zmiana Skórki. Całość tworzy ścieżkę do aktualnej skórki. następnie obrazek jest wczytywany i wyświetlany na panelu przednim jako tło pod komponentami. Obsługa pozostałych zdarzeń jest analogiczna do opisanych. Wszyskie komponenty ustawiające parametry w części sprzetowej ustawiają jedynie odpowiednią wartość zmiennej Wysyłany_Bajt według zasad określonych w programie mikrokontrolera. Za resztę odpowiada pętla obsługi portu szeregowego. Największą część aplikacji stanowi pętla analizy sygnału. Jej fragment widoczny jest na rysunku poniżej: Podobnie jak w pętli sterującej portem RS-232 działa tutaj Rejest Przesuwny wykrywający zmiany zmiennej nowe dane. Po przyjściu nowej tablicy danych sygnał rozpoczyna się jej analiza. Napierw zostaje podzielona na dwa niezależne kanały (lewy i prawy). Następnie w każdym z kanałów mierzona jest maksymalna amplituda, poprzez sumowanie najmniejszej i największej wartości z tablicy. Podział przez 655,36 zapewnia reprezentację w postaci stosunku wartości zmierzonej do maksymalnej wyrażonego w procentach. Amplituda jest porównywana z zadanym przez użytkownika poziomem szumów, co powoduje przemożenie całej tablicy przez 0, gdy poziom sygnału jest mniejszy od założonego, lub przez 1 (przepuszczenie sygnału w niezmienionej postaci), gdy amplituda wykroczy ponad zakładany poziom szumów. Struktura Case umożliwia wybór skali (V/V lub dB), przeliczając w drugim przypadku poziom sygnału na skalę logarytmiczną. Wartości amplitudy sygnału w prawym i lewym kanale trafiają dalej do komponentów (pasków) znajdujących się w lewej części panelu przedniego. Na potrzeby analizatora sygnał z obu kanałów jest sumowany i normalizowany do maksymalnej amplitudy mierzonej w całym paśmie częstotliwości. Ma to na celu uniezależnić wskazania analizatora od aktualnie ustawionego wzmocnienia przedwzmacniacza. Dodatkowy selektor True/False wyłącza normalizację podczas odcięcia sygnału przez bramkę szumów. Następnie sygnał trafia do zestawu 30 filtrów pasmowo przepustowych o częstotliwościach granicznych dobranych tak, by różniły się od siebie o czynnik [tex]\sqrt[3]{2}[/tex] (filtry tercjowe). Następnie w każdym paśmie dokonywany jest pomiar maksymalnej amplitudy (jak wyżej). Z otrzymanych wartości budowana jest 30-elementowa tablica: Pomiar maksymalnej wartości umożliwia znormalizowanie wszystkich amplitud do największej z nich, dzięki czemu otrzymuje się znacznie większą dynamikę wskazań analizatora. Wyboru skali dokonuje się poprzez Strukturę Case (jak wyżej). Tablica jest następnie rozdzielana na 30 sygnałów i przesyłana do odpowiednich komponentów. Ze względu na zastosowanie pasków podbicia każdy z komponentów przyjmuje dane w postaci klastra zawierającego dwa elementy: aktualny poziom i poziom paska, obliczany za pomocą pętli While przedstawionej niżej: Do pętli przesyłana jest aktualna tablica poziomów sygnału oraz dwie 30-elementowe tablice z rejestrów przesuwnych, tablica zapamiętanych poziomów i tablica opóźnień. Pętla ta wykonuje 30 iteracji odczytując w każdej z nich kolejne elementy tablic (dzięki funkcji Indexing). Aktualna i zapisana wartość poziomu sygnału zostają porównane. W przypadku, gdy aktualny poziom jest większy od zapamiętanego (True dla zewnętrznej Struktury Case) jest on przepisywany do rejestru przesuwnego, zaś licznik opóźnienia jest ustawiany na zero. W przeciwnym przypadku wewnątrz Struktury wartość licznika jest zwiększana i porównywana z zadanym opóźnieniem. Gdy wartość licznika jest równa ustawionemu opóźnieniu (True dla wewnętrznej Struktury Case), do rejestru poziomu wpisywana jest aktualna wartość, zaś licznik jest resetowany. Jeśli opóźnienie jest mniejsze od zadanego, wartości obu rejestrów są przekazywane dalej. Po wyjściu z pętli While tablica rejestru przesuwnego zawierającego poziomy syganłu jest rozdzielana i przekazywana do odpowiednich komponentów (pasków). Zdjęcia Projektu:
|
|||||||||||||||||||||||||||||||||
USB/RS232
Szanowny kolego mirley!
Na początku napiszę, iż ta strona to kawał świetnej roboty - zaglądam tutaj od dawna, ale nigdy się nie udzielałem na forum.
Mam do Ciebie pytanie, mianowicie czy prezentowany wyżej wzmacniacz, do którego napisałeś oprogramowanie w LabView, może współpracować z przejściówką USB/RS-232 prezentowaną również przez Ciebie w innym projekcie? Chodzi mi o wersję normalną tej przejściówki, czyli tę z układem MAX232.
Pozdrawiam serdecznie
Re: USB/RS
Powinno działać bez problemu, bo w projekcie wykorzystywane są tylko linie sygnałowe RS232. Nie testowałem tego jednak i nie wiem jak Labview poradzi sobie z wirtualnym COM'em
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Dzięki
Dzięki za odpowiedź. Mam trochę na głowie, dlatego dawno nie odwiedzałem Twojej strony.
Pozdrawiam i życzę dalszych, równie udanych projektów :)
o by trzeba bylo zmnienic aby
o by trzeba bylo zmnienic aby ten uklad pasowal do TDA 7294??? i obslugiwal 4 kanaly tzn 4xTDA7294
Re: Wzmacniacz
Co to znaczy wysterować 4x TDA7294? Mają być 4 niezależne kanały czy stereo po dwa TDA na kanał? Jeśli chcesz zrobić stereo to wystarczy podmienić na schemacie TDA2030 i jego elementy współpracujące na wzmacniacz zbudowany w oparciu o TDA7294
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
maja byc 4 niezalezne kanaly
maja byc 4 niezalezne kanaly a podmienic hmmm nie znam sie za tak bardzo ;/;/
Re: Wzmacniacz
Nie da się zrobić 4 kanałów na tym schemacie. Wymaga to poważnych przeróbek sprzętowych i programowych bo będą potrzebne dwa układy TDA8425
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Pytanie o LabVIEW 7.1
Witam projekt bardzo dobry, mam pytanie odnośnie programu sterującego na PC, czy ten LabVIEW 7.1 jest darmowy jeśli tak to skąd go mogę go pobrać? A jeśli nie jest darmowy to ile kosztuje i gdzie można go kupić?
labview
google nie gryzie:
http://pl.wikipedia.org/wiki/LabVIEW
trial: http://www.ni.com/trylabview/
Cena wersji podstawowej: $1249 ;)
Fotografia, Linux, programowanie, python.. czyli strona domowa || Galeria fotografii http://galeria.firlej.org
Re: LABView
Ta wersja na której ja pracowałem na uczelni była pełna wraz z dodatkami, jednak z tego co pamiętam używaliśmy tylko podstawowych funkcji. Teraz już nie mam dostępu do tego programu. W sumie jeśli chodzi o ścisłość to nigdy nie wybrał bym tego programu do czegokolwiek gdyby nie było takiego wymogu na zajęcia :) Napisał bym to samo w C++ Buildier 6 lub pod Qt4, oczywiście w prostszej wersji bo funkcje które posiada aktualnie dostępny program są nikomu do nic nie potrzebne podczas normalnej pracy :)
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Sterownik
Witam, czy jest możliwość zrobienia na zamówienie samego sterownika, ponieważ jeszcze nie mam takiego doświadczenia oraz teorii na wykonanie tego projektu ?? A tak odbiegając od tematu, strona jest świetna, jest w niej wiele ciekawych oraz naprawdę przydatnych projektów a do tego wszystko przejrzyście opisane...super :) Pozdrawiam, Kuba.
Re: Sterownik
Proszę o kontakt na email, przycisk kontakt u góry strony
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
wzmacniacz z TDA7294
Witam.
Jak przerobić ten układ wzmacniacza (wraz z przedwzmacniaczem ) żeby pasował wzmacniacz
Twojego projektu (TDA 7294 ) opisywany w artykule .
wzmacniacz z TDA7294
Ok już znalazłem .
Wyściami na lewy i prawy kanał są kondesatory C1a i C1b.
Mam następne pytanie czy je usunąć czy zostawić ?
Re; Wzmacniacz
Jak wzmacniacz który dołączysz w to miejsce ma już swoje kondensatory wejściowe to możesz wyrzucić C1a i C1b
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Przedwzmaciacz
Nie jestem pewny ale czy ten przedwzmacniacz można obsługiwać bez komputera i jakie ma funcje ?
Re: Wzmacniacz
Może działać sam, regulacja tonów, głośności i zmiana wejść. Poza tym nie pamiętam dokładnie bo to już dawno temu powstało
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Analizator widma
Czy można doprogramować odpowiednią komęde żeby podczas słuchania muzyki na wyświetlaczu lcd działał analizator widma ?
W internecie są gotowe programy napisane dla analizatora .
Re: Analizator
Nie ma szans żeby procesor policzył analizator widma
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Re: Nie ma szans
zależy który procesor nie policzy. chyba nie pogniewasz się jak dam link?
oto -> ANALIZATOR WIDMA <- na atmega8, ale ta atmega tylko do tegoż widma służy.
Moja strona w powijakach
Sterownik
A czy ten sterownik można wykożystać do innego przedwzmacniacza np. do radioodtwarzacza samochodowego , który jest sterowany cyfrowo (nie ma potencjometrów tylko przyciski).
Pytam się dlatego bo mam radioodtwarzacz w którym się końcówka mocy spaliła i chciałbym go wykorzystać jako przedwzmacniacz (ze sterowaniem )bo zamierzam zbudować wzmacniacz .
Re: Wzmacniacz
Analizator:
No faktycznie sam anlizator może i da się zrealizować ale jak popatrzysz na mój sterownik to ma jeszcze 20 innych rzeczy do zrobienia w programie i dodatkowo tego nie policzy. Dzięki za linka.. muszę popatrzeć jakie sztuczki w programie zostały tam zrobione aby fft policzyć bardzo szybko
piolek3:
Nie rozumiem po co sterownik do przedwzmacniacza który ma już przyciski, przecież ten sterownik włśnie steruje głośnością itp. za pomocą przycisków, chyba że chciałbyś łącznośc z komputerem uzyskać, to wtedy trzeba by zrobić coś innego
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
o analizatorze raz jeszcze
w ogóle obejrzyj sobie Mirku stronkę kolegi manekinen. -> OTO LINK <- akurat do wykonywania płytek.
jest tu świetny artykuł na temat wykonywania obwodów drukowanych. doświadczenie wyżej wymienionego kolegi strasznie mi pomogło i pokazało drogę jaką trzeba robić obwody, choć wcześniej wykonywałem płytki metodą żelazkową to jego opis ulepszył mi niesamowicie moje konstrukcje.
dzięki jego opisowi moje płytki wyglądają teraz tak:
sory za mały OT, ale myślę że przydatny.
Moja strona w powijakach
Sterownik.
Właśnie chodzi mi oto żeby wzmacniacz miał łączność z komputerem.
A nie wystarczy znaleść przedwzmacniacza w radioodtwarzaczu , poszukać który do czego w nocie katologowej i podpiąć ?
Re: Przedwzmacniacz
1. Możesz poszukać w katalogu części z tego przedwzmacniacza.... ale po co miałby tam być układ który umożliwa połączenie z komputerem, będzie raczej taki przedwzmacniacz bez żadnego interfejsu komunikacyjnego.
2. Dobrym rozwiązaniem jest zrobienie prostego sterownika mikrokontroler + FT232RL (usb->rs) i sterowanie przyciskami w twoim przedwzmacniaczu
----------------------
Na temat płytek-> mam na stronie artykuł o płytkach pod którym należy umieszczać takie rzeczy, albo na forum
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
"2. Dobrym rozwiązaniem jest
"2. Dobrym rozwiązaniem jest zrobienie prostego sterownika mikrokontroler + FT232RL (usb->rs) i sterowanie przyciskami w twoim przedwzmacniaczu "
Jak to wykonać ?
Trzeba pisać pewnie program ?
Re: Sterownik
Tak, trzeba napisać program ale nie skomplikowany. Mogę trochę pomóc ale załóż sobie temat na forum to pogadamy o tym projekcie. Tu nie ma miejsca na takie ekstra rozważania
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Witam, juz od dłuzszego czasu
Witam, juz od dłuzszego czasu szukam tych sterowników sprzętowych, czy kotś mógłby mi podac link do nich ? Bez nich nie mogę sie połączyć z komputerem.
Re: FT232RL
Wpisz na allego "FT232RL"
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Mirek jak trzeba by
Mirek jak trzeba by zmodyfikować drugą płytkę aby umożliwić podłączenie zewnętrznej końcówki mocy np na parze tranzystorów bipolarnych 2SC5200 i 2SA1943, zamiast tej w projekcie?. Mam zamiar zbudować wzmacniacz i szukam preampa sterowanego pilotem. Twój projekt jak na razie najbardziej mi przypadł do gustu.
Re: wzmacniacz na pilota
Rozumiem że chcesz wywalić w ogóle tda2030 i wstawić swój wzmacniacz.... nic prostszego. wystarczy podłączyć wejście tego wzmacniacza zaraz za kondensatorami C9 i C10. Część schematu na prawo od tych kondensatorów można wyrzucić
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Mała prośba czy mógłbyś
Mała prośba czy mógłbyś wrzucić skompilowany program i podać ustawienia fusebitów?
i druga czy np. taki LCD by się nadał "LCD 4x20 BIG LCD-AC-2004H-DIW W/KK-E6 C PBF BLACKLINE"
RE: Wyświetlacz
Wyświetlacz wygląda OK. Program przekompiluję wieczorem jak nie zapomnę
----
program wrzucony
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Czy po ustawieniu tych
Czy po ustawieniu tych wszystkich opcji (w programie LabViev) to po wyłaczeniu zasilania
i właczeniu dalej te opcje będą ustawione czy trzeba ustawiać na nowo ?
Re: Wzmacniacz
Wydaje mi się że robiłem zapis do eeprom..... dokładnie nie pamiętam bo to było dawno temu
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
I takie jeszcze jedno pytanko
I takie jeszcze jedno pytanko .
Jeśli chciałbym ten wzmacniacz robić na 4 końcówki , to wystarczy układ przedwzmacniacza zrobić podwójnie i podłaczyć pod mikrokontroler .
Re: Wzmacniacz RS
Nie, tak się w prosty sposób nie da zrobić. Trzeba by podłączyć na innych pinach procka drugi układ i w programie rekonfigurować magistralę i2c i wysyłać to samo na inne piny. Układ TDA nie ma zmiany adresu bazowego więc nie mogą pracować dwa na jednych liniach.
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Czy ten program sterujący
Czy ten program sterujący przez komputer można napisać w języku np.C++ .
Czy było by go trudno napisać .
Re: Program sterujący
Nie było by trudno napisać.... przecież to standardowa obsługa portu szeregowego. Mój program RsTester jest napisany w C++. Można próbować wzorować się na nim.
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Problem z klawiaturą
Cześć.
Mam dziwny problem z prezentowanym tutaj wzmacniaczem...
Płytka sterownika zrobiona i sprawdzona pod kątem uszkodzeń ścieżek (jest ok), wsad udało mi się załadować bez problemów (po podłączeniu zasilania, na wyświetlaczu pojawiają się informacje typu: kto jest autorem projektu, co to jest za urządzenie, numer wersji. potem "wskakują" parametry: poziom głosu, tony niskie i wysokie) i na tym koniec... wcikanie klawiszy klawiatury nie daje żadnego rezultatu. Już pokończyły mi się pomysły co to może powodować. Dodam, że przez zaprogramowaniem atmegi wyłączyłem jtag'a a napięcie na pinach procka połączonych z klawiaturą wynosi +5V. Prośba do Was o pomoc. Z góry dzięki.
Re: Wzmacniacz
Sprawdź czy po wciśnięciu przycisku odpowiednia linia opada na masę. Każdy przycisk ma być podłączony od pinu do masy
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Sprawdziłem to. Linie od
Sprawdziłem to. Linie od przycisków w ciskanych w danej chwili są faktycznie zwierane z masą. Atmega jest ustawiona do pracy z kwarcem podpiętym pod xtal1 i 2 (w/g Twojego artykułu o ustawianiu fusebitów), płytka jest wykonana w wersji 1:1 (zero przeróbek). Ciekawi mnie jeszcze jedna rzecz... Czasem (trudno stwierdzić w którym momencie) zapalają się ledy: albo 1 i 2 albo 1 i 3 od góry.
Re: Wzmacniacz sterowany
Spróbuj przeprogramować procka jeszcze raz... przecież na stronie jest ten sam kod co ja miałem
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Problem z klawiaturą
Witam.
Mam podobny problem jak kolega Janek. Układ nie reaguje na wciskanie przycisków. Świecą się pierwsza i trzecia dioda. Sprawdziłem, poszczególne piny są zwierane do masy. Czy powodem takiego działania może być brak czujnika ds18b20 ?
Problem z klawiaturą, rozwiązany
Przyczyną było włączenie JTAG, więc port C był zablokowany.
Wyświetlacz
Jaki wyświetlacz zastosować aby działał poprawnie ?
LCD
Dowolny LCD 4x20 znaków. Kontroler zgodny z HD44780
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Witam mam takie pytanko jak
Witam mam takie pytanko jak ustawić fusebity ?
Re: fusy
Nie mam niestety zrzutu ale trzeba ustawić taktowanie na kwarc, i wyłączyć dzielnik częstotliwości CKDIV=1
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
To jakie zakładki są ta w
To jakie zakładki są ta w programie burn o mat ?