Elektroda.pl
Elektroda.pl
X
Elektroda.pl
Multimetr FlukeMultimetr Fluke
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[atmega16][c] ADC - odczyt zmiany napięcia w zakresie 200mV

07 Wrz 2011 21:58 4149 14
  • Poziom 10  
    Witam,
    tak jak w temacie napięcie z czujnika którym odczytuje przemieszczenie (Half-bridge LVDT) zmienia sie o 200 mV - tj. 6.345 V-6.545 V - zmiana napięcia jest liniowa.

    Mam już działający kod programu ale po testach wydaje mi się za mało precyzyjny do mojego urządzenia i nie wiem niestety jak zrobić bardziej precyzyjny odczyt. Kombinowałem na różne strony metodą prób i błędów i utkwiłem w martwym punkcie (zmiana preskalera, trybu 8/10 bit, napięcia odniesienia, odczyt z ADCW, zmina F_CPU)

    W ogóle to wszystko sprowadza się do pytania czy to co chce zrobić jest możliwe za pomocą przetwornika ADC Atmegi? dla mnie idealnym rozwiązaniem byłoby gdybym mógł badać zmianę napięcia co 0.1mV << czy to jest możliwe?


    Mój kod z pominiętą obsługą wyświetlacza:

    Kod: C
    Zaloguj się, aby zobaczyć kod
  • Multimetr FlukeMultimetr Fluke
  • Moderator Mikrokontrolery Projektowanie
    Co znaczy mało precyzyjny odczyt? Postaraj się chociaż ty byc precyzyjny, jeśli oczekujesz sensownych rad.
    200mV spokojnie ADC ATMegi można mierzyć, normalnie rozdzielczość pomiaru wynosi ok. 2mV, przy stosowaniu wzmocnienia nieznacznie się polepsza, lecz bezpośrednio 0,1mV nie ma szans uzyskać. W tym celu trzebaby zastosować zewnętrzny, bardzo dobry wzmacniacz operacyjny.
    Swoją drogą pochwal się jak zapodajesz te ponad 6V na pin ADC? Chyba nie bezpośrednio?
  • Specjalista - Mikrokontrolery
    Jeśli masz zakres zmian 200mV to najlepszą dokładność jaką możesz uzyskać w sposób jaki znam wynosi ok 0.4 mV.
    Sposób prosty.
    Wykorzystać możesz pomiar różnicowy.
    Max rozdzielczość to 10 bit.
    Korzystając z trybu różnicowego musisz skorzystać z trybu pomiaru ze znakiem a więc tracisz jeden bit więc masz 9 bitów rozdzielczości + bit znaku który akurat tutaj Ci się nie przyda.
    A więc 200mV/512≈0.4mV
    Twoje max napięcie to 6.545V.
    Dobierz tak dzielnik napięcia, aby przy napięciu 6.545 na wejściu napięcie na wyjściu dzielnika wynosiło <= napięciu referencyjnemu ADC.
    Podłącz twój czujnik przez ten właśnie dzielnik do wejścia + ADC w trybie różnicowym.
    Do wejścia - podłącz potencjometr(między VCC a GND) ustawiając na wyjściu napięcie minimalne jakie możesz uzyskać z twojego czujnika czyli < 6.345 V.
    W ten sposób uzyskujesz niemalże 9 bitową rozdzielczość pomiaru napięcia między 6.345V a 6.545V.
  • Poziom 10  
    Na razie podłączam woltomierz rownolegle do ADCn i GND oraz potencjometrem reguluje napięcie na ADCn i parze jak dokładny odczyt mogę uzyskać. Otrzymuje 4 cyfrową liczbę której ostatnia cyfra w ogóle się nie zmienia a ja potrzebuje miec wynik w zakresie (00,00 - 25,00mm) więc zmieniać się muszą co najmniej 4 cyfry żeby miało to sens.

    Widzę ze ten temat nie jest Ci obcy stąd moje pytanie czy pomógłbyś mi rozwiązać mój projekt? To już ostatni etap mojej pracy przejściowej a muszę ją niedługo oddać (nie mialem nigdy zajeć z AVR'ow na studiach więc nawet nie mam do kogo się z tym zgłosić).

    Jak powinienem mierzyć to napięcie? W sumie docelowo to napięcie będzie troche niższe niż 6v. Puki co jest to AC więc muszę jeszcze wyprostować na DC zatem uwzględniając spadek na diodach to wyjdzie (6-1,4V Tak?) 4.6V więc mniej od mojego AVCC = 5.05V, czyli w zakresie pomiarowym, dobrze myślę?

    Czy mógłbyś mi coś więcej opowiedzieć o tym zewnętrznym wzmacniaczu operacyjnym. Przede wszystkim interesują mnie koszty tej dodatkowej rzeczy.
  • Multimetr FlukeMultimetr Fluke
  • Poziom 38  
    Jak masz 200mV AC to po co Ci składowa stała?
    Dajesz wzmacniacz z kondensatorem na wejściu i z odpowiednią polaryzacją wstępną, potem prostownik "idealny" na wzmacniaczu operacyjnym- albo nie- to zależy od częstotliwości sygnału.
    Czy chcesz mierzyć wartość chwilową- do kilku kHz jest to możliwe- czy wartość po wyprostowaniu.
  • Poziom 10  
    Czujnik LVDT zasilam napieciem z transformatora 230 > 12V wiec srodkowa odnoga cewki (transformatora) ma przy skrajnym wysunieciu ferromagnetycznego rdzenia daje napiecie 6.345V a po maksymalnym wsunieciu rdzenia 6.545V. Tak wiec czestotliwosc to 50hz. Dla mnie sie liczy to jak najlepiej wykorzystac transformatoro wyczujnik polozenia. Innymi slowy chcialbym zrobic z niego mikrometr.

    Nie dokonca ogarniam to co napisales. Moglbys mi to jakos narysowac? Rysunek napewno wiele by mi wyjasnil. Moja wiedza z zakresu wzmacniaczy operacyjnych jest znikoma ale jak wroce z pracy to postaram sie ogarnac cos w tym temacie.
  • Poziom 38  
    Albo prosto-AD698.
    Albo tanio.
    Poszukaj- prosty przedwzmacniacz audio.
    Dwa takie albo jeden stereo.
    Za tym wzmacniacz różnicowy- bo sygnały są chyba w przeciwfazie.
    Potem prostownik idealny, filtr i pojedyncze wejście ADC.
    Razem- cztery wzmacniacze w jednej kostce LM324 albo podobnej.
    Układ za 1zł do tego garść R, C i ew. diody.
  • Poziom 10  
    Poczytalem troche o tych wzmacniaczach roznicowych i juz po malu rozumiem.
    Do tego LM324 potrzebowalbym jeszcze jakis scalak utrzymujacy stale zrodlo napiecia wzorcowego tak? Przypomne mam czujnik half bridged LVDT.
  • Poziom 38  
    Napięcie odniesienia masz w procesorze- nie najlepsze- ale to zależy jak dokładnie chcesz mierzyć.
    To co potrzebne- to jakiś offset programowy do znalezienia położenia środkowego.
    Tam jest sygnał minimalny- no ale nie 0.
    Po prostu przy wzmacnianiu sygnałów przemiennych nie ma raczej czegoś takiego jak napięcie odniesienia.
    Zresztą zobacz tu:
    http://www.google.pl/url?sa=t&source=web&cd=9...LeSOj6mTw&sig2=WzOzaorPf1HZ6ywvkwnugA&cad=rja
    Zresztą- sam narysuj schemat a my będziemy się nad nim pastwić...
  • Poziom 10  
    Z tym napieciem odniesienia to mialem na mysli wersje DC.

    Ok. Jak wroce do domu to narysuje moja wizje artystyczna tego ukladu ;)

    Dodano po 3 [godziny] 50 [minuty]:

    Niestety nie pochwale się moją wizją artystyczną bo wyszperałem schemat podłaczenia Half Bridged LVDT (Twój link opisuje zwykłe LVDT):

    [atmega16][c] ADC - odczyt zmiany napięcia w zakresie 200mV

    Wracając z pracy kupiłem LM324 - mam nadzieje ze się przyda - niestety nie było AD698 o którym wspominałeś. Sprawdziłem potem w sieci i też nie widzę żeby można byloby go gdzies zakupić :/

    Nie do końca rozumiem ten schemat bo jeśli Vb jest podpięte tam gdzie zasilanie to ma ~12V a za to Va pociągnięte od środka będzie miało ~6V zatem różnica będzie wartością w woltach a nie w miliwoltach.

    Ja bym to widział tak ze Va było by podpięte tak jak na schemacie natomiast Vb do oddzielnego napięcia odniesienia 6V (np: KA336-5.0 - chyba można go wysterować prądowo od 4 do 6V) i teraz zastosować róznicowanie a następnie Vout jeszcze wzmocnić dodatkowo i w takiej postaci wysłać do ADC w uC . Dobrze myśle czy źle?
  • Poziom 38  
    Oj nie tak.
    Ten KA to jest źródło stałego napięcia a potrzebne jest napięcie przemienne.
    AD jest w Farnell Polska.
    Tylko ta cena...
    No ale to jest specjalnie do takich pomiarów i rozwiązuje sprawę.
  • Poziom 10  
    Faktycznie jest w farnellu ale cena jak dla mnie zaporowa.
    Co do trgo KA fo faktycznie jest na stale napiecie tak jak z reszta moj schemat (ktory jest zle narysowany bo powino byc napiecie zmenne na cewke transformatora potem mostek prostowniczy, filtracja i dopiero wtedy do wzmacniacza A). Czy taki uklad zadziala?
    I od razu zapytam jakie sa roznice jesli chodzi o realizowanie tego ukladu na napieciu zmiennym a stalym. Ja wole operwac napieciem stalym bo mam z nim wiecej doswiadczenia.
  • Poziom 38  
    Z samej zasady działania nie może być mowy o napięciu stałym.
    Musi być napięcie przemienne i to o stałej amplitudzie- tak że napiecie z sieci wogóle nie wchodzi w rachubę- chyba że do testów.
    Trzeba zbudować generator o b. stabilnej amplitudzie i częstotliwości.
    Do tego dwa wzmacniacze napięcia przemiennego o stałym i stabilnym wzmocnieniu.
    Potem wzmacniacz różnicowy u jednakowym wzmocnieniu obu kanałów.
    Potem prostownik- nie na zwykłych diodach ale tzw. prostownik idealny na wzmacniaczu operacyjnym.
    Potem filtr dolnoprzepustowy i już mamy sygnał do pomiaru.
    To wszystko jest w tym AD.
    Projekt, wykonanie i testy zajmą parę dniówek inżyniera.
    No to ten scalak jest bardzo tani.
  • Poziom 10  
    Sprawa docelowo wygląda tak że muszę wpiąć się równolegle w działający już AD698 (albo coś podobnego) i tylko odczytywać zmianę napięcia czujnika. Oznacza to że sam etap generatora i wzmacniacza możemy pominąć.
    Nie wiem nic o tym jakie dokładnie jest tam napięcie i jaka częstotliwość jest generowana. (muszę w tym celu wybrać się na uczelnie więc to dopiero za kilka dni)
    Co do napięcia to nie mam żadnych obiekcji jak je zmierzyć ale za to mierzenie częstotliwości przerasta moją dotychczasową praktykę. (Oscyloskop będzie pomocny?) << w ogóle to rozumiem jest mi potrzebna wartość częstotliwości do ustalenia progu filtra dolnoprzepustowego, tak?

    Jedziemy dalej:

    Wzmacniacz różnicowy:
    [atmega16][c] ADC - odczyt zmiany napięcia w zakresie 200mV

    Prostownik:
    [atmega16][c] ADC - odczyt zmiany napięcia w zakresie 200mV

    lub
    [atmega16][c] ADC - odczyt zmiany napięcia w zakresie 200mV

    Do filtrów jeszcze nie doszedłem.

    Czy te wszystkie elementy układu mogę zrobić na LM324 czy potrzebuje innego scalaka? No i oczywiście czy te schematy są poprawne i pasują do mojego zagadnienia?


    Ten temat troszeczkę się rozwinął w inną stronę niż myślałem więc nie wiem czy moderator nie powinien przenieść go do innego działu np. Poczatkujacy.