Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 15 gru 2018, o 18:08


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 45 ]  Przejdź na stronę 1, 2  Następna strona
Autor Wiadomość
PostNapisane: 21 wrz 2018, o 11:24 
Offline
Użytkownik

Dołączył(a): 18 cze 2015
Posty: 239
Pomógł: 0

Witam wszystkich.
Zwracam się z prośbą o pomoc w pewnej kwestii. Temat nawiązuje niejako do innego bardzo ciekawego tematu z linku https://forum.atnel.pl/topic7026-30.html
Chciałem zapytać w tamtym wątku, ale już kiedyś zwrócono mi uwagę, a żeby zakładać nowe, a więc to czynię.
Mianowicie wykonałem sobie prosty wskaźnik stereo do mojego wzmacniacza audio. Mój wskaźnik bazuje na wyświetlaczu lcd, a nie na diodach, ponieważ tak sobie wymyśliłem (możliwość zobrazowania jakichś dodatków np...) Niestety zapomniałem się i zrobiłem pomiar całkowicie liniowy, co się nie nadaje w moim przypadku. I teraz tak. Ja mierzę wartości dużo większe i jak to się ma do decybeli i logarytmów pokazanych przez kol. Nefarious19. Do czego się odnieść i jak to ugryźć. Chętnie skorzystam z jakichś porad. Dziękuję za wszelką pomoc.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 wrz 2018, o 12:15 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 23766
Lokalizacja: Szczecin
Pomógł: 897

Robert_1967 napisał(a):
Do czego się odnieść i jak to ugryźć.

A przeczytałeś CAŁY ten wątek do którego link podałeś ? Bo coś mi się wydaje, że nie ... a przecież on się ładnie rozwija i na początku autor pokazał też taki liniowy wskaźnik - po to aby później przerabiać go na logarytmiczny - aż w końcu mu się udało i przecież poza dyskusją pokazał śliczny kod źródłowy z którego ładnie wszystko widać - więc polecam rzuć okiem na ten kod z filmikiem w dalszej części wątku a później odnieś się np czego nie rozumiesz z tego kodu - wtedy łatwiej będzie coś wyjaśnić, pomóc

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 wrz 2018, o 07:25 
Offline
Użytkownik

Dołączył(a): 18 cze 2015
Posty: 239
Pomógł: 0

Dziękuję Mirku
Czytałem wątek kilka razy kilka razy, co nie oznacza, że od razu wszystko zrozumiałem. Swoją droga bardzo fajnie autor to wykonał. Zasadniczo mam dwie rzeczy do wykonania. Najpierw chciałbym rozwiązać kwestię skali logarytmicznej. Autor użył wskaźnika na "wejściu" wzmacniacza, gdzie są małe sygnały na poziomie miliwoltów. Obliczenia są wykonane w stosunku jakiejś konkretnej wartości-w tym przypadku 0db, co odpowiada siedemset kilka mV, co jest chyba standardem.
Prawidłowo wysterowany wzmacniacz powinien przy pełnej mocy otrzymać na wejściu max poziom 0db. Większy jest chyba uważany za przesterowanie. Może gdzieś tu napisałem głupoty,a le chyba tak gdzieś czytałem. Przy tym konkretnym sygnale wskaźnik analogowy wychyli się około 70%, może trochę więcej. Tak naniesioną skalę zazwyczaj widziałem. Potem jest czerwone pole (lub diody, jeśli diodowy). Piszę to wszystko, a żeby powiedzieć, jak ja to rozumiem.
I tu zaczyna się mój wskaźnik. Ja chcę zobrazować sygnał na wyjściu, gdzie napięcia są na poziomie woltów. Tu jakoś nie mogę całej tej myśli z tematu autora przenieść. Jaki punkt odniesienia przyjąć i jak przeliczyć skalę, a żeby wyświetlanie było właściwe. Czy mi jest potrzebny w ogóle jakiś punkt odniesienia ?. No ale bez niego chyba nie da się wyliczyć czegokolwiek?. Proste wyjście jest takie, że mogę zastosować odpowiedni dzielnik rezystorowy i ograniczyć poziom sygnału na wejściu i tym samym dostosować układ do wyższego napięcia. Samo wyświetlanie wartości db jest mi zbędne, bo chcę tylko widzieć linijkę i niby temat załatwiony. Z tego jednak żadna nauka nie wyniknie, a ja chciałbym wiedzieć, co robię i dla czego. Tu kłania się nieznajomość logarytmów, ale czytam i analizuję wzory. Wzmacniacz oddaje 100 i więcej wat, a napięcia ponad 40 volt. Zapomniałem dodać, że ja chcę przy pełnej mocy zapalać max liczbę segmentów w danej linii. Segmenty są jeszcze podzielone na kreski, a żeby była lepsza rozdzielczość. Pozdrawiam. Robert.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 wrz 2018, o 14:56 
Offline
Użytkownik

Dołączył(a): 28 wrz 2016
Posty: 140
Pomógł: 12

Ja na początek, (by nie łapać 10 srok za ogon,bo nie złapie się żadnej) skupiłbym się na skali liniowej, a jak skala liniowa zacznie działać, to dopiero wtedy zacząłbym myśleć o skali logarytmicznej.

Potrzebujesz układu wejściowego dla przetwornika ADC. Zakładam, że AtMega będzie zasilana napięciem 5V, źródło odniesienia ma 2,56V, a sygnał do ADC będzie pobierany z wyjścia wzmacniacza o maksymalnym napięciu 40V. Najprostszy może wyglądać np tak:
Obrazek
Rezystor R2 nie powinien być większy niż 10k, R1 powinien byc tak dobrany, by napięcie na nim nie przekroczyło napięcia odniesienia ADC. Może być np R1 75k a R2 4k7. Dioda powinna być o małym spadku schottkiego np. BAT41. Od kondensatora C1 zależy jak szybko będzie reagował wskaźnik, proponuje 10u.

_________________
de gustibus non est disputandum



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 wrz 2018, o 18:55 
Offline
Użytkownik

Dołączył(a): 18 cze 2015
Posty: 239
Pomógł: 0

Dzięki Alef2
Dzięki za chęć pomocy.Sorki, ale chyba nie doczytałeś dokładnie. Na wstępie napisałem, że ja mam zrobiony wskaźnik (co prawda na razie na zestawie uruchomieniowym) i napisałem mały program, który go obsługuje. Wskazania są, wyświetlacz ładnie wyświetla na ekranie linijki. Niestety przy zabawie z atb i kręceniu peerkami nie pomyślałem (w zasadzie zapomniałem), że sygnał "generowany" przez mój wkrętak działa liniowo. Nie nada się do zobrazowania sygnału z końcówki mocy. Tu potrzebuję porad, jak z tego wybrnąć. W innym temacie (link podałem na początku) jest prawie gotowiec wyliczonych db i jak to robić, ale jakoś nie wiem, jak to przerobić na te 40 parę wolt. Od czego zacząć. Potem będę myślał, jak przerobić program do db. Już się obawiam, że sam nie podołam i będę potrzebował pomocy, ale to temat na potem. Dla skali liniowej jest to łatwe podzielić od 0 do np. 5 volt na równe działki wyświetlacza, a dla db będę musiał się z tym zmierzyć. Teraz chcę ruszyć z obliczeniami, może zrobić tablicę z wartościami....Ale jak by ktoś zaczął, kto chciałby wykonać coś podobnego, jak ja.
Pozdrawiam.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 wrz 2018, o 16:09 
Offline
Użytkownik

Dołączył(a): 28 wrz 2016
Posty: 140
Pomógł: 12

Mogę zaproponować takie rozwiązanie
Atmega ma 10 bitowy ADC, wiec największa wartość to 1023 (3FF Hex). Przyjmijmy sobie poziom 0dB na 1024. Nie zrobimy dużego błędu, jeżeli zamiast 1024 próg 0dB przyjmiemy np. 1020. I tak dla skali 6dB progi będą wynosić:
ponad 1020-> 0dB
512 -> -6dB
256 -> -12dB
128 -> -18dB
64 -> -24dB
32 -> -30dB
16 -> -36dB
8 -> -42dB
4 -> -48dB
2 -> -52dB
1 -> -60dB
Można przełączać progi używając if'ów, ale to mma sens tylko przy kilku if'ach. Przy większej ilości lepiej użyć tablicy.
Przykładowa funkcja może wyglądać np tak:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Autor postu otrzymał pochwałę

_________________
de gustibus non est disputandum



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 wrz 2018, o 17:07 
Offline
Użytkownik

Dołączył(a): 18 cze 2015
Posty: 239
Pomógł: 0

Dziękuję Alef2 za kawałek kodu i obliczenia.
Przeanalizuję wszystko, co mi podałeś i wg tego przeliczę i zobaczę, co mi wyjdzie. Musi coś zostać w głowie :) .
Ciekawy kawałek kodu. Dzięki. Jutro będę miał dostęp do zestawu uruchomieniowego, to pokombinuję. Ja mam zakres 0-1023 podzielony na kilkadziesiąt działek, a więc będę musiał to jakoś przerobić. Jutro zobaczę. Czy mogę poprosić o wyjaśnienie tej linijki:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 wrz 2018, o 13:28 
Offline
Użytkownik

Dołączył(a): 28 wrz 2016
Posty: 140
Pomógł: 12

Ależ oczywiście, ponieważ funkcja pobiera wartość całkowitą a ma zwracać wartość w dB, to numer przedziału w zmiennej i należy pomnożyć przez wielkość przedziału czyli 6 (bo mamy odstępy miedzy progami co 6dB). Właściwie to powinno być -6 zamiast 6, bo 0dB to 1024, a następne wartości są mniejsze wiec w dB będą ujemne. I wartość zwracana przez funkcję powinna być ze znakiem.
Polecam zapoznać się z nota LM3915 i LM3916, jest tam sporo ciekawej teori.

_________________
de gustibus non est disputandum



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 wrz 2018, o 08:05 
Offline
Użytkownik

Dołączył(a): 18 cze 2015
Posty: 239
Pomógł: 0

Dziękuję za wyjaśnienie
Piszę trochę z opóźnieniem, ponieważ nie zawsze jest czas na hobby. Przyznam się bez bicia, że jakoś nie mogę zastosować. Siedzę i myślę...Na tą chwilę zrobiłem tak, że podzieliłem 1023 na 20 kolumn-pełnych kolumn. Mam też zrobione wyświetlanie na 1023/100 słupków (dokładniej), ale na razie próbuję na prostszym kodzie. Napisałem bez if'ów, żeby było jak najkrócej:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Kręcąc peerkiem "zapalam" poszczególne kolumny od 0-19, ale liniowo, jak na razie. Jakby tu dalej ruszyć z tą tablicą w dB. Proszę o mała wskazówkę, jeśli można. Pozdrawiam.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 wrz 2018, o 09:52 
Offline
Nowy

Dołączył(a): 27 cze 2018
Posty: 12
Pomógł: 1

Wskazówka:
Skala jest logarytmiczna. Dla mierzenia napięcia wzór wygląda tak: 20log(x) gdzie x= U(zmierzone)/U(odniesienia)
Są dwie drogi:
1 obliczyć logarytmy dla każdej diody i zapisać w tablicy,
2 obliczać logarytm po wykonaniu pomiaru i zapalać tyle diod ile się wyliczy.

Dla z obrazowania wykres funkcji:

Obrazek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 wrz 2018, o 12:00 
Offline
Użytkownik

Dołączył(a): 18 cze 2015
Posty: 239
Pomógł: 0

Dziękuję za podpowiedź
Ja przestudiowałem temat wyliczania wartości dB na przykładzie forumowicza Alef2 i forumowicza, który zaprojektował wskaźnik diodowy. Zrozumiałem, jak to się liczy i przećwiczyłem.

Robiłem w exelu tak:

Obrazek

Przypominam, że ja nie używam diod led, tylko wyświetlacza alfanumerycznego.

Taras, a żeby to zobrazować, to wystarczy nawet na tych 11 i'fach łopatologicznie wykonać i byłoby w sumie po kłopocie, ale ja chciałem zastosować to, co podał Alef2 ze względu na chęć poznania
tej metody (kod dokładnie), tylko nie mogę ruszyć z miejsca. Mam jakiś mętlik w głowie i nie mogę zaskoczyć. Pozdrawiam.

W sumie, o ile się nie mylę, to są dedykowane do tego celu układy scalone, które same powiedzmy konwertują odpowiednio sygnał (jeśli się mylę, to sorki za ten wpis) i pewna część roboty odwalają za nas, ale ja chciałem zrobić to w C właśnie, dla tego się uparłem.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 wrz 2018, o 12:38 
Offline
Tech-support
Avatar użytkownika

Dołączył(a): 22 sty 2014
Posty: 1838
Lokalizacja: Łódź
Pomógł: 165

Robert_1967 napisał(a):
Taras, a żeby to zobrazować, to wystarczy nawet na tych 11 i'fach łopatologicznie wykonać i byłoby w sumie po kłopocie, ale ja chciałem zastosować to, co podał Alef2 ze względu na chęć poznania
tej metody (kod dokładnie), tylko nie mogę ruszyć z miejsca. Mam jakiś mętlik w głowie i nie mogę zaskoczyć. Pozdrawiam


Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


------------------------ [ Dodano po: 6 minutach ]

jest to fragment mojego kodu. Pętla leci po wartościach logarytmów z tablicy. ilość diod do zapalenia wynosi tyle ile indeks elementu od którego wartość pomierzona j jest najwyższa.


Autor postu otrzymał pochwałę

_________________
Zapraszam pasjonatów ARM, ESP, ZIGBEE na forum.sunduino.pl.
GITHUB



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 wrz 2018, o 13:04 
Offline
Użytkownik

Dołączył(a): 18 cze 2015
Posty: 239
Pomógł: 0

Dzięki Nefarious19
Przemyślę na spokojnie. Ja czuję, że to bardzo proste jest, tylko od dłuższego czasu nic nie pisałem (całe lato chyba) i jakoś się zastałem :cry: . Pomału dojdę. Napisze, jak coś zadziała. Pozdrawiam.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 wrz 2018, o 16:18 
Offline
Nowy

Dołączył(a): 27 cze 2018
Posty: 12
Pomógł: 1

Wzór na przeliczenie ADC dla 0 Db zakładając ze przy max ADC chcemy mieć więcej niż 0DB.
ADC = 1024/(10^(3/20))
Gdzie 1024 to rozdzielczość ADC a 3 to 3DB przy max wartości ADC. Zamiast 3 można wstawić inna wartość.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 wrz 2018, o 06:37 
Offline
Użytkownik

Dołączył(a): 18 cze 2015
Posty: 239
Pomógł: 0

Dzięki uksta1024
Dziękuję kolegom za pomoc. Wczoraj trochę mnie olśniło i załapałem. Zaczęły działać właściwe wskazania. Ponieważ mam jednoczesne wyświetlanie aktualnej wartości ADC tak dla sprawdzania, co się dzieje, to zauważyłem, że poszczególne cegiełki lcd zapalają się po przekraczaniu poszczególnych wartości z tablicy, czyli chyba jest ok. Jak uporządkuję kod, to wrzucę dla sprawdzenia, czy dobrze myślę. Mam jednak takie pytanie. Z tego, co na pierwszy rzut oka wywnioskowałem, to chyba nie mogę zobrazować sygnału z dużą rozdzielczością ???.
Chodzi mi o to, że w jednym z przykładów mam podział 1,2,4,8,16,32,64,128,256,1020. I teraz, jeśli zaprzęgnę do wyświetlania 10 kolumn wyświetlacza, to jest ok. A jeśli na ten przykład zechcę wykorzystać dodatkowe słupki każdej kolumny, czyli 10*5=50 punktów. I teraz nie mogę zrobić skali dla 50 punktów dla napięć od 0-1023. To znaczy tak mi się wydaje, że się nie da, ale może źle coś interpretuje???
Proszę o wyjaśnienie, jeśli ktoś może. Chciałbym ogarnąć temat do końca tak na przyszłość. Pozdrawiam.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 wrz 2018, o 06:53 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 23766
Lokalizacja: Szczecin
Pomógł: 897

przelicz że dla większej ilości kroków ;) tą tablicę decybeli

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 wrz 2018, o 08:48 
Offline
Użytkownik

Dołączył(a): 18 cze 2015
Posty: 239
Pomógł: 0

Dzięki Mirku. Spróbuję przeliczyć.

A wiec poprawiłem trochę kod. Gdzieś coś jeszcze naknociłem, ponieważ wyświetla max. 10 kwadratów, a powinno 11. Wygląda następująco:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Trochę już to męczę i nie widzę chyba prostych byków :oops:

Myślę, że temat wyliczania skali dB i sposób wyświetlania został przeze mnie opanowany. Dziękuję wszystkim za pomoc.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 wrz 2018, o 07:43 
Offline
Nowy

Dołączył(a): 27 cze 2018
Posty: 12
Pomógł: 1

Myślę, że jeszcze zostało do określenia jaka skala będzie w mierniku.
Trzeba określić min i max mierzone, oraz oznaczyć gdzie jest 0Db
Ja bym jednak policzył wartość ADC dla 0DB gdy max ADC to 3db oraz wartość ADC przy -20db. W ten sposób obliczona jest skala od -20db do +3 db. Taka jest w produkowanych miernikach VU. Wartość ADC poniżej -20 db to nic nie wyświetlane.
W tak określonym zakresie ADC to można ustalić czy w nim będzie 8 czy 20 czy 100 przedziałów (kwadratów). Dla każdego przedziału trzeba wyliczyć wartość ADC.

A w twoim przykładzie wystarczy że ADC będzie "skakać" o 2 jednostki to bez sygnału będą progi 1 i 2 mrygać.

Gdy już miernik będzie dzialal, trzeba go podłączyć do wzmacniacza przez dzielnik i prostownik, bo sygnał z wzmacniacza jest za duży i jest przemienny. Następnie wyskalować go, czyli przy maxymalnym wzmocnieniu gdy sygnał nie jest jeszcze zniekształcony na wskaźniku powinno być wskazanie 0DB.



Tak teraz pomyślałem, czy w mkavrkalkulator nie wzbogacić właśnie o obliczanie ADC dla VU metra i PPM metra.


Obliczenia:

Dla +3DB przy 1024 ADC 0DB wyniesie: 1024/(10^(3/20)) czyli 724,9.
Obliczenie wszystkich ADC: 20*log(ADC/724):
Składnia: [ Pobierz ] [ Ukryj ]
język actionscript
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 wrz 2018, o 09:46 
Offline
Tech-support
Avatar użytkownika

Dołączył(a): 22 sty 2014
Posty: 1838
Lokalizacja: Łódź
Pomógł: 165

uksta1024 napisał(a):
trzeba go podłączyć do wzmacniacza przez dzielnik i prostownik


Nie wiem jakie wartości napięcia ma na wyjściu ten wzmacniacz ale gdyby kolega chciał też mierzyć małe sygnały to polecam zastosowac na wejściu tzw prostownik precyzyjny. Jest do dosyć prosty układ. Wymaga dwóch diod dosyć szybkich np 1N4148, dwóch wzmacniaczy operacyjnych (zasilanych napięciem symetrycznym w tej wersji układu) oraz kilku rezystorów. Układ prostuje sygnał wejsciowy eliminując spadek napięcia na dwóch diodach taki jaki występuje w klasycznym mostku Graetza (a tak naprawdę Karola Pollaka). Poniżej schemat i porzebiegi:

Obrazek

_________________
Zapraszam pasjonatów ARM, ESP, ZIGBEE na forum.sunduino.pl.
GITHUB



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 wrz 2018, o 11:21 
Offline
Użytkownik

Dołączył(a): 18 cze 2015
Posty: 239
Pomógł: 0

Dziękuję kolegom za kolejne informacje.

Nefarious19. Na tą chwilę zależało mi na wykonaniu wskaźnika, który będzie mierzył wysokie sygnały na wyjściu mojego wzmacniacza. Moc 100 i więcej wat. Uparłem się na mikro kontroler, ponieważ oprócz samych wskazań mogę (w oparciu o sygnał mierzony) wykonać sobie różnego rodzaju zabezpieczenia (temperatura, odłączenie głośników, czy blokada napięć w zależności od przekroczenia pewnej nałożonej mocy w menu, ukrytym menu itd...). Pod moją nieobecność dziecko przekręci potka siły głosu na max i po cennych głośnikach :lol: . Wzmacniacz też jeszcze bez obudowy, nie dokończony, ale ciągle coś kombinuję. Nie zależy mi na mierniku mocy "serwisowym", tylko na "wskaźniku". Oczywiście, może kiedyś urodzi się potrzeba mierzenia małych napięć, ale puki co ma mierzyć kilkadziesiąt wolt. Ale dzięki za sugestie i schemacik. No i chcę to wykonać również w celach nauki C i z ciekawości, co wyjdzie.

uksta1024. Dzięki za obliczenia. Ja wyobrażałem sobie to w ten sposób, że chcę, a żeby linijka zaczynała działać od jak najmniejszych sygnałów i pełne wyświetlenie następowało przy pełnej NOMINALNEJ mocy bez zniekształceń i przesterowań. Chodzi o to, a żeby nie było przypadku, że słucham przekazu i muszę więcej dać mocy, a żeby wskaźnik zaczynał reagować. No i ma to się odbywać zgodnie z zasadami ucha, czyli systematyczne podgłaśnianie ma wyświetlać coraz to więcej cegiełek.

Ja jeszcze nie robiłem prób na żywym organizmie. Pewnie, jak podłączę się do wzmacniacza, to jeszcze nie raz będę coś przeliczał i zmieniał (wkrętak, to nie wzmacniacz), ale na początku chcę stworzyć w miarę poprawny kod (co ja tu pisze, nie ma czegoś takiego :lol: ), który logarytmicznie będzie wyświetlał i to w zasadzie prawie jest.

Jeszcze nie wiem, jak zrobić, a żeby rozpisać skalę nie na poszczególne klocki, tylko dodatkowo na słupki, czyli np. 20*5, czyli 100 przedziałów. Piszę np. ponieważ może będzie to 16*5, czyli 80 przedziałów. I czy aż taki podział jest faktycznie potrzebny ???. Może wystarczyłoby na pełne kwadraty ???. Ale to dopiero okaże się w praniu, dla tego chciałem sprawdzić i tak i tak.

Na tą chwilę przeliczyłem sobie dla 3dB i dzięki temu mam pełne "wychylenie na 20 kwadratów", ale nie na 100 słupków, ponieważ nie rozumiem, jak to zrobić Mirek pisał "to przelicz", ale nie mogę załapać, jak. Jeśli zaczynam liczyć, to za każdym razem z wzoru wychodzi jakaś wartość adc, zgadza się??? Ona się zmienia w postępie logarytmicznym i w pewnym momencie osiągam wartość bliską 0 adc i koniec. Wyszło ileś progów ile wynikło ze wzoru i aktualnego zamierzonego dB (patrz przykłady w tabelce). Ja rozumiem, że można to pewnie wyliczyć, tylko nie mogę załapać. No nie każdy jest tak bystrym matematykiem, a ja chyba nawet tego w szkole nie miałem, a więc są to dla mnie rzeczy nowe.

Co do pomiarów, to wiem, ze napięcie nie może przekroczyć dopuszczalnego na pinie adc i obwody wejściowe trzeba odpowiednio zastosować. Jestem dużo lepszym elektronikiem hobbystą, niż programistą :lol: . Ot uczę się pomału i tyle. Załączam tabelkę.


Obrazek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 wrz 2018, o 11:38 
Offline
Tech-support
Avatar użytkownika

Dołączył(a): 26 sty 2016
Posty: 749
Lokalizacja: Kraków
Pomógł: 63

Hmm, a może podziel sobie każdy przedział, który obliczyłeś, na dodatkowych 5 przedziałów (obliczając tak samo, jak dla "dużych" przedziałów)
Uwaga: to tylko sugestia, nie wiem, czy tak będzie dobrze.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 wrz 2018, o 12:33 
Offline
Tech-support
Avatar użytkownika

Dołączył(a): 22 sty 2014
Posty: 1838
Lokalizacja: Łódź
Pomógł: 165

Robert_1967 napisał(a):
Oczywiście, może kiedyś urodzi się potrzeba mierzenia małych napięć, ale puki co ma mierzyć kilkadziesiąt wolt


ok, w takim razie jeżeli Ci nie przeszkadza strata około 1V przy zastowaniu diod schotkiego to zwykły mostek styknie, za nim dzielnik i bedzie git. Można by się pokusić o jakiś filtr dolnoprzepustowy o f odcięcia na 20KHz

------------------------ [ Dodano po: 14 minutach ]

Ja na Twoim miejscu nie szedł bym w -60db... Zrób normaly VU meter ze skalą od -20dB do +3dB. Zobacz przy jakiej mocy Twój wzmacniacz ma niskie zniekształcenia i tam ustaw 0db. Wszytsko powyżej to będzie plus 3db. takie moje zdanie... ewentualnie możesz dać -40dB do +3db.

_________________
Zapraszam pasjonatów ARM, ESP, ZIGBEE na forum.sunduino.pl.
GITHUB



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 wrz 2018, o 13:17 
Offline
Użytkownik

Dołączył(a): 18 cze 2015
Posty: 239
Pomógł: 0

Dzięki Nefarious19

Myślę, że dobrze radzisz. Jeśli program będzie mierzył od 0 adc, czyli od około -50dB, to efekt może być różny na niekorzyść wskaźnika, ale tak, jak pisałem wcześniej, to trzeba podłączyć i przetestować. Inaczej, to tylko będę pisał i posty nabijał. Muszę na płytce stykowej zmontować jakiś układzik i podłączyć. Mam trochę mało czasu na zabawę i weekend już rozplanowany w domu na ważniejsze rzeczy, ale jak tylko będzie możliwość to zrobię.
Znalazłem ze 2, 3 obwody wejściowe w internecie do zastosowania. Można by nawet zastosować Twój układ z odpowiednim tłumieniem na wejściu, czy pominąć wzmacniacz operacyjny i wykorzystać dalszą część układu. na początek nawet dzielnik rezystorowy i prostownik wystarczy, a żeby zobaczyć, jak to się ma w praktyce. Możliwości jest kilka, ale TRZEBA TO ZROBIĆ, tak że puki co, wstrzymam się z pisaniem do czasu, aż będę mógł coś konkretnego zademonstrować. Dzięki i pozdrawiam.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 wrz 2018, o 16:38 
Offline
Użytkownik

Dołączył(a): 28 wrz 2016
Posty: 140
Pomógł: 12

Dorzucę jeszce parę uwag
1. Jeżeli wzmacniacz ma moc znamionową (a nie PPMO) 100W, to w krótkich momentach może oddać znacznie więcej mocy. Moc znamionowa limitowana jest zasilaczem, zdolnością radiatorów do oddawania ciepła i zniekształceniami. Dlatego ja dałbym poziom +3dB (a nawet poziomy +1dB, +2dB, +3dB), aby można było zaobserwować przesterowanie.
2. Przy mocy 100W napięcie na wyjściu wzmacniacza to około 40V (zależy ono od impedancji kolumn). Spadek napięcia na diodzie schottkiego to tylko 0,2V, czyli tracimy 0,2/40= 0,005 sygnału, co odpowiada -46dB. Inna sprawa, że na "imprezie" wzmacniacz może pracować "ile fabryka dała" a przy wieczornym słuchaniu to tylko ułamek W, czyli dynamika ponad 40dB. Żeby i przy pełnej mocy i przy cichym słuchaniu wskaźnik się poruszał potrzeba dynamiki co najmniej 60dB. A tu już zaczynają się schody, bo brakuje rozdzielczości ADC.
3. Nie wiem czy wyświetlacz LCD będzie wystarczająco szybki by efekt wyglądał "ładnie". Mi osobiście nie przypadł do gustu.
4. Prostownik aktywny to trochę za mało. Potrzebny jest detektor szczytowy (ang. peak detektor). A to dlatego, że nas interesuje wartość maksymalna (szczytowa) sygnału a nie wartość bieżąca. Można programowo wykrywać chwilowe maksimum ale wtedy należy często próbkować sygnał. No i oczywiście nici z oversamplingu. Natomiast z peak detektorem próbkowanie może być kilka razy na sekundę i można dodać rozdzielczości metodą oversamplingu.
5. Dla mnie decybele rozjaśniły się, gdy zrozumiałem, że jest to zamiana mnożenia dodawaniem. Wystarczy zapamiętać, że jeżeli wartość zwiększy się dwukrotnie to jest to +6dB, jak się zmniejszy to -6dB. Jak się zwiększy 10 razy, to jet to +20dB, a jak zmniejszy to -20dB. Dla 3dB jest to pierwiastek z 2 (1,4142..) dla 1dB to1,122.
I tak np +40dB to 100 krotne zwiększenie, bo +40dB=+20dB + +20dB czyli 10 razy 10 . +6dB to dwukrotne zwiększenie bo +6dB=+3dB + +3dB czyli pierwiastek z 2 razy pierwiastek z 2.
Teraz aby wyznaczyć np.+18dB wystarczy dodać 3 razy +6dB czyli pomnożyć 3 razy przez 2. Lub od +20dB odjąć 2 razy 1dB. W pierwszym przypadku mamy 2*2*2=8, a drugim (10/1,122)/1,122=7,94, czyli to samo (drobna różnica wynika z zaokrągleń).

_________________
de gustibus non est disputandum



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 wrz 2018, o 19:13 
Offline
Tech-support
Avatar użytkownika

Dołączył(a): 22 sty 2014
Posty: 1838
Lokalizacja: Łódź
Pomógł: 165

Z tą wartością szczytową się nie zgodze. Sygnał po sprostowaniu musi być zcalkowany i usredniony w jakimś przedziale czasu. Wyswietlanie co chwile wartości szczytowej mija się z celem biorąc pod uwage inercje między sprobkowaniem sygnalu a jego wyswietleniem. Dlatego moim zdaniem taki prostownik a za nim filtr dolnoprzepustowy bylby dobrym rozwiązaniem. Do tego "filtr cyfrowy" z poradnika Mirka i całość zabangla.

Wysłane z mojego SM-J510FN przy użyciu Tapatalka

_________________
Zapraszam pasjonatów ARM, ESP, ZIGBEE na forum.sunduino.pl.
GITHUB



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 wrz 2018, o 21:01 
Offline
Nowy

Dołączył(a): 27 cze 2018
Posty: 12
Pomógł: 1

Wskaźniki PPM które wskazują wartosc szczytowa istnieją i wyparły wskaźniki VU wskazujace wartość średnią. Istnieją nawet normy w jakim czasie pomiar jest o ile może się zmienić wskazanie w jednostce czasu dla takich wskaźników. Nie bez powodu kilkadziesiąt lat temu powstała skala -20 +3 db, opracowali to naukowcy dopasowując logarytmiczny charakter ludzkich zmysłów. Zauważcie że od -3 do +3 jest połowa wskaznika, usuwając 3db rozkalibrowuje się skale.
Dlaczego jest +3 bo dźwięk można przesterować, wzrosną zniekształcenie do kilku procent a to nic takiego. Dane wzmacniaczy podają moc przy określonych zniekształceniach.
Wskaźnik PPM powstał po to aby sygnał poddawany cyfryzacji przez przetwornik A/C był prawidłowy. Wskaźnik VU pokazuje średnia i wartości szczytowe ukrywa w średniej co eliminuje go systemów cyfrowych.

Jeśli 10 bitowy przetwornik to za mało choć na wskaznik VU starcza z lekkim zapasem , to istnieje taki maluch jak MCP3421 z którym można dużo większą skalę zrobić.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 wrz 2018, o 23:34 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 15 lut 2017
Posty: 231
Lokalizacja: Gliwice
Pomógł: 20

Wskaźniki wartość średniej i(lub) maksymalnej to standard od lat.
Zobaczcie sobie to:
https://youtu.be/2cZJBQOnVAw?list=PLjaf ... 1sT9&t=637

Pasuje jak ulał do polemiki w tym wątku:)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 wrz 2018, o 07:22 
Offline
Tech-support
Avatar użytkownika

Dołączył(a): 22 sty 2014
Posty: 1838
Lokalizacja: Łódź
Pomógł: 165

uksta1024 napisał(a):
Wskaźniki PPM które wskazują wartosc szczytowa istnieją i wyparły wskaźniki VU wskazujace wartość średnią.


Ok, nie jestem na bierząco więc pewnie masz racje. Ja mówie tylko na podstawie swoich doświadczeń które robiłem kilka lat temu i które poniekąd zainspirowały Autora wątku :) co do skali to się zgadzam :)

_________________
Zapraszam pasjonatów ARM, ESP, ZIGBEE na forum.sunduino.pl.
GITHUB



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 wrz 2018, o 08:26 
Offline
Nowy

Dołączył(a): 27 cze 2018
Posty: 12
Pomógł: 1

Zealota napisał(a):
Wskaźniki wartość średniej i(lub) maksymalnej to standard od lat.
Zobaczcie sobie to:
https://youtu.be/2cZJBQOnVAw?list=PLjaf ... 1sT9&t=637

Pasuje jak ulał do polemiki w tym wątku:)


Pierwszy raz też widze taki podwójny wskaźnik. Super w jednej obudowie dwie skale. Jak widać ta dla PPM jest inna niż dla VU. Wskazanie 0DB jest w obu tym samym miejscu a podanie stalego sygnału o tym samym poziomie oba wskaźniki pokażą tyle samo.
W magnetofonie wskaźnik PPM jak widać był kilkadziesiąt lat temu, no ale to produkt z wyższej półki. Szybko reagujący wskaźnik analogowy był napewno bardzo kosztowny.
Mnie jednak zastanawia skąd on wymyślił że 1,23 V na wskaźniku 0DB. Wcześniej powiedział że to moc 1mW na impedancji 600 ohm. Co jest sprzeczne.
To napięcie to 0,775V.



Ostatnio edytowano 28 wrz 2018, o 09:18 przez uksta1024, łącznie edytowano 2 razy

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 wrz 2018, o 08:51 
Offline
Użytkownik

Dołączył(a): 18 cze 2015
Posty: 239
Pomógł: 0

Dziękuję kolegom za bardzo konstruktywne podpowiedzi.
Wszystko wezmę pod uwagę podczas testów. Bardzo pouczające wideo !.

Do tej pory skupiałem się nad wyświetlaniem w skali logarytmiczne, ale dochodzi do tego uśrednianie. Myślę, że jest to powiązane, jeśli chodzi o temat wskaźnika, a więc zapytam tutaj.

Dopisałem sobie kod i przetestowałem (kiedyś już to robiłem, ale dawno) i jedna rzecz mnie irytuje. Uśrednianie działa bardzo dobrze, ale mam dziwny problem z samym wynikiem. Kod napisałem trochę rozwleczony w nazwach, ale chodzi mi o lepsze zrozumienie, kiedy spojrzę na niego.

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Oba wyniki na lcd nie są jednakowe. Różnią się o wartość "ilosc_pomiarow", czyli 10. Błąd ten maleje im mniejsze adc. Jak mam 512, to uśrednione jest około 508. Trochę to dziwne. Na kalkulatorze wychodzi dobrze, a na lcd źle. Morze w przypadku wskaźnika to nie istotne, ale w innych sytuacjach zonk. Nie wiem, co robię źle.

Wygląda to tak:

Obrazek

Może ktoś ma odpowiedź, gdzie jest pomyłka. Dziękuję.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 45 ]  Przejdź na stronę 1, 2  Następna strona

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO