logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Atmega32 - Jak zrealizować sterowanie częstotliwością stroboskopu za pomocą ADC?

andrzejlisek 22 Sie 2015 22:39 1629 7
  • #1 14940393
    andrzejlisek
    Poziom 31  
    Posiadam stroboskop taki sam, jak na zdjęciu: https://pl.wikipedia.org/wiki/Efekt_stroboskopowy#/media/File:Stroboskop_b%C5%82yskowy.jpg

    Stwierdziłem uszkodzenie potencjometru sprzężonego ze skalą prędkości obrotowej (w rzeczywistości jest to regulacja częstotliwości błysków, a częstotliwość jest wyrażona w liczbie błysków na minutę).

    W związku z powyższym wymyśliłem, że zrobię generator cyfrowy oparty na Atmega32, tym bardziej, że ten stroboskop ma możliwość błyskania na podstawie sygnału z generatora zewnętrznego. W efekcie generator byłby cyfrowy, ale całe urządzenie obsługiwałoby się tak samo, jak do tej pory, nikt by cie nie zorientował, że jest przerobiony, poza faktem, że nie będzie działać regulacja obrotów potencjometrem, która i tak nie będzie potrzebna.

    Dość problematyczna wydaje się realizacja sterowania częstotliwością. Wyczytałem, że Atmega32 posiada 10-bitowy przetwornik ADC, stwierdziłem, że w tym przypadku jest to dokładność "tak akurat", ledwo wystarczająca i jednocześnie maksymalna możliwa. Wstępnie przeliczyłem, że na jedną działkę elementarną czarnej skali przypada 10-12 kolejnych wartości (w zależności od kąta obrotu pomiędzy końcami wykorzystanego potencjometru, ale muszę kupić taki, który pokryje całą skalę i jeszcze zostanie niewielki zapas).

    Po krótkim czasie z Googlem w ręku trafiłem na to:
    http://mikrokontrolery.blogspot.com/2011/03/adc-wstep-i-uruchomienie.html
    http://mikrokontrolery.blogspot.com/2011/03/avr-adc-podlaczenie.html

    Jak można wyczytać, uzyskiwanie wartości 10-bitowych wcale nie jest takie proste z powodów zakłóceń i tętnień zasilania, szalenie ważna jest stabilność napięcia na Aref.

    W praktyce cały regulator to będzie potencjometr, którego jedna końcówka będzie podłączona do masy, druga do napięcia zasilania, a ślizgacz do wejścia przetwornika, żeby otrzymać dzielnik napięcia. Na etapie tworzenia bym empirycznie ułożył tablicę zależności wartości napięcia od wartości na skali.

    Istotne jest uzyskiwanie stabilnej wartości przy danym ustawieniu potencjometru. Szumy na ostatnich bitach powodowałyby, że przetwornik w praktyce ma 8-bitową dokładność, co w tym przypadku jest nie do zaakceptowania.

    Załóżmy, że potencjometr jest ustawiony w połowie swojej długości. W tej sytuacji przy wartości ARef=5V przetwornik dostanie napięcia 2,5V, a przy wartości ARef=4,8V napięcie wyniesie 2,4V. Ponieważ jeden koniec potencjometru jest podłączony do AREF, a drugi do AGND, to czy w obu przypadkach mikrokontroler zarejestruje wartość 512 (połowa dostępnego zakresu), a zmiany napięcia na ARef i na wejściu ADC będą się znosić?

    Czy jakbym podłączył sygnał do wszystkich 8 wejść ADC (lub przynajmniej 4 wejść), a każdy pomiar polegałby na jednoczesnym wywołaniu pomiaru na wszystkich przetwornikach i uśrednieniu wartości z zaokrągleniem co całkowitej, to czy zakłócenia i szumy będą się wtedy znosić i uzyskam wymaganą dokładność?

    Kolejnym pomysłem jest wykonywanie kilku pomiarów i przetwarzanie wartości średniej z kilu ostatnich pomiarów.

    Celem zmniejszenia zakłóceń z zasilania, z użyciem komparatora bym dostarczał napięcie 6,3V, które też bym wykorzystał do zasilania całego układu (do dyspozycji mam 6,3V oraz drugi obwód napięcia o nieznanej wartości, który zasila cały stroboskop, na pewno powyżej 150V, bo na stabiliwolcie jest 150V), a cykl zmian wywoływałby przerwanie, w którym następowałby pomiar, wtedy każdy pomiar byłby w tej samej fazie cyklu zmian napięcia i nie byłby podatny na tętnienia z sieci. W celu zasilania wystarczyłby mostek prostowniczy, kondensator elektrolityczny i zwykły 7805.

    Czy w tym przypadku jest sens stosowania układów filtrujących, pomiar na kilku przetwornikach naraz, czy zakłócenia same będą się znosić z powodu sprzężenia masy analogowej i napięcia odniesienia z końcami potencjometru dającego wartość? Czy więcej zakłóceń wpływających na pracę ADC pochodzi z zasilania czy samego mikrokontrolera?
  • #2 14940470
    piotrva
    VIP Zasłużony dla elektroda
    1. Pomiar na kilku końcówkach to dokładnie to samo co pomiar kilkukrotnie na jednej końcówce - AVR'y Mega mają 1 ADC i "przełącznik wejść".
    2. Tak, pomiar kilku / kilkuasto krotny i uśrednianie to tzw. oversampling - powszechnie stosowana metoda do poprawy stosunku sygnał/szum a nawet czasem pozwala na uzyskanie rozdzielczości pomiaru wyższej niż rozdzielczość przetwornika.
    3. To napięcie 5V i 150V to są napięcia zmienne?
  • #3 14940498
    BlueDraco
    Specjalista - Mikrokontrolery
    7805 wymaga na wejciu napięcia o ok. 2 V wyższego niż wyjściowe. Użyj stabilizatora LDO, np LM1117.
  • #4 14940514
    andrzejlisek
    Poziom 31  
    piotrva napisał:
    2. Tak, pomiar kilku / kilkuasto krotny i uśrednianie to tzw. oversampling - powszechnie stosowana metoda do poprawy stosunku sygnał/szum a nawet czasem pozwala na uzyskanie rozdzielczości pomiaru wyższej niż rozdzielczość przetwornika.


    Czy to znaczy, że mogę otrzymać wartość z dokładnością przetwornika 12-bitowego? Na przykład, wykonam 16 pomiarów, zsumuje je, ale wartości nie przesunę o 4 bity, żeby podzielić przez 16, tylko przesunę o 2 bity, żeby podzielić przez 4 i uzyskam wartość od 0 do 1023*4=4092, co odpowiada wartości 12-bitowej. Jednak nie rozumiem zwiększenia rozdzielczości przetwornika. Czysto teoretycznie, jak na wejście podam jakieś napięcie, to układ 16 razy zarejestruje wartość powiedzmy 500, a po przeliczeniach dostanę 500*4=2000. Jak zwiększę napięcie o najmniejszą rozróżnialną wartość, to przetwornik będzie zwracać 501, a po przeliczeniach otrzymam 501*4=2004. W takim razie nadal mam wartość 10-bitową, tylko pomnożoną przez 4. Gdyby założyć, że szumy są na tyle małe, że zmieniają wartość o 1 bit na wejściu, to w powyższym przypadku otrzymam odpowiednio wartości gdzieś z zakresu (2000;2004) i (2004;2008), ponieważ za pierwszym razem przetwornik dawał 500 lub 501, a za drugim razem dawał 501 lub 502 przy każdym z 16 pomiarów. Wtedy dwa najmniej znaczące bity w wartości końcowej są przypadkowe, spowodowane szumem przetwornika.

    W rzeczywistym układzie szum byłby jeszcze większy. W takim razie, jak wygląda to zwiększenie dokładności pomiaru? Czy jest ono tylko pozorne i tak naprawdę nie zwiększa dokładności pomiaru, tylko rozciąga rejestrowany zakres wartości?

    piotrva napisał:
    3. To napięcie 5V i 150V to są napięcia zmienne?


    Fabryczny transformator dostarcza dwa napięcia przemienne. Jedno jest wykorzystywane do do żarzenia lamp elektronowych, na schemacie jest podane 6,3V, pomiar wskazuje 7V, a drugie nie jest podane na schemacie i nie mogłem zmierzyć z powodu braku dostępu do końcówek (musiałbym wymontować wnętrze, żeby się dostać i zmierzyć, ale i tak jest zdecydowanie za duże wykorzystam do zasilania AVR). Napięcie 150V to jest napięcie stałe mierzone na końcówkach stabiliwolta (specjalna lampa jarzeniowa), woltomierz pokazuje wartość gdzieś od 140V do 150V. Nie ma napięcia 5V, a chciałbym je uzyskać poprzez podłączenie do napięcia 6,3V mostka prostowniczego, kondensatora elektrolitycznego i stabilizatora 7805. Nie wiem, czy ten sam AVR może pracować na 5V i na 3,3V, wtedy wykorzystując stabilizator 7803 jest większy zapas, bo na wejściu musi być cały czas wyższe napięcie niż stabilizowane.
  • #5 14940578
    piotrva
    VIP Zasłużony dla elektroda
    Jak chcesz dokładny pomiar to przede wszystkim problemem będzie dobre zasilanie.
    Jeśli ma być zasilone z tych 6V AC to na pewno musisz zejść na 3,3V, bo 5V stabilnych z tego na pewno nie będzie łatwo uzyskać.

    Co do poprawy rozdzielczości metodą oversamplingu - nie będę tu robić wykładu z elementami rachunku prawdopodobieństwa, myślę, że takie wyjaśnienie powinno wystarczyć: https://en.wikipedia.org/wiki/Oversampling
  • #6 14940798
    andrzejlisek
    Poziom 31  
    piotrva napisał:
    Jak chcesz dokładny pomiar to przede wszystkim problemem będzie dobre zasilanie.
    Jeśli ma być zasilone z tych 6V AC to na pewno musisz zejść na 3,3V, bo 5V stabilnych z tego na pewno nie będzie łatwo uzyskać.


    Czy ten sam AVR może działać na 5V i na 3,3V, czy są osobne wersje na jedno i drugie napięcie, na co trzeba zwrócić uwagę przy zakupie? Do wstępnej filtracji wykorzystałbym kondensator elektrolityczny minimum 1000µ na 16V (klasyczny układ transformator->mostek->kondensator->stabilizator).

    Na pewnym portalu z aukcjami jest bardzo dużo miniaturowych zasilaczy impulsowych 5V z gniazdem USB, nawet w domu chyba posiadam jeden taki zasilacz. Pomyślałem, że taki zasilacz zmieści się w obudowie przerabianego stroboskopu. Czy na ogół dają one stabilne napięcie 5V nadające się do układów z dokładnym pomiarem na ADC?
  • #7 14940814
    piotrva
    VIP Zasłużony dla elektroda
    Zasadniczo to czy może działać na 3,3V czy niższe napięcie zależy od tego, co piszą o danym modelu w dokumentacji.
    Zwykle podane jest minimalne napięcie zasilania i wykres uzależniający max. prędkość taktowania od napięcia zasilania.
    Czasem pod tym względem są różne wersje (np. Atmega8, Atmega8L, Atmega8A)

    Co do zasilania z ładowarki usb - to zależy na jaką jakość trafisz - czasem te ładowarki tak sieją zakłóceniami, że ne da się nic zrobić, a czasem dają stabilne zasilania. (Ogólnie chińczyk robi taką ładowarkę tak, że bierze działający projekt i wywala części do momentu aż jeszcze działa :D )
  • #8 14943605
    dondu
    Moderator na urlopie...
    andrzejlisek napisał:
    Po krótkim czasie z Googlem w ręku trafiłem na to:
    http://mikrokontrolery.blogspot.com/2011/03/adc-wstep-i-uruchomienie.html
    http://mikrokontrolery.blogspot.com/2011/03/avr-adc-podlaczenie.html

    ...

    Istotne jest uzyskiwanie stabilnej wartości przy danym ustawieniu potencjometru. Szumy na ostatnich bitach powodowałyby, że przetwornik w praktyce ma 8-bitową dokładność, co w tym przypadku jest nie do zaakceptowania.

    ...

    Czy w tym przypadku jest sens stosowania układów filtrujących, pomiar na kilku przetwornikach naraz, czy zakłócenia same będą się znosić z powodu sprzężenia masy analogowej i napięcia odniesienia z końcami potencjometru dającego wartość? Czy więcej zakłóceń wpływających na pracę ADC pochodzi z zasilania czy samego mikrokontrolera?

    A trafiłeś na: http://mikrokontrolery.blogspot.com/2011/03/avr-adc-podlaczenie.html


    andrzejlisek napisał:
    Czy ten sam AVR może działać na 5V i na 3,3V, czy są osobne wersje na jedno i drugie napięcie, na co trzeba zwrócić uwagę przy zakupie?

    W Kursie AVR, z którego korzystasz jest artykuł: http://mikrokontrolery.blogspot.com/2011/03/ATmega8-ATmega8A-ATmega8L-wersje-roznice.html


    andrzejlisek napisał:
    Do wstępnej filtracji wykorzystałbym kondensator elektrolityczny minimum 1000µ na 16V (klasyczny układ transformator->mostek->kondensator->stabilizator).

    Nie deklaruj wartości z powietrza. Najpierw zaprojektuj schemat, a później go z nami skonsultuj.
REKLAMA