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

Dokładny pomiar zmian rezystancji, najlepiej "względnej

14 Lip 2010 13:01 2706 23
  • Specjalista - Mikrokontrolery
    Witam!

    Poszukuję sposobu dokładnego pomiaru zmian rezystancji lub - inaczej mówiąc - pomiaru rezystancji tylko w pewnym zakresie. Stosując zwyczajny dzielnik rezystancyjny i przetwornik A/C można zmierzyć rezystancję od zera do - powiedzmy - 10kR. Problem jest tego typu, że chciałbym dosyć dokładnie mierzyć zmianę w pewnym zakresie, np tylko od 7-8kR. Całkowicie idealnym rozwiązaniem byłoby móc mierzyć zmianę "względną", czyli zmiany od 7-8kR dają takie same wyniki jak - na przykład - zmiany od 70-80kR (oczywiście po zmianie pewnych wielkości w układzie, najlepiej pozwalającej na wykorzystanie cyfrowego potencjometru).

    Na chwilę obecną skłaniam się do wykorzystania wzmacniacza różnicowego + wzmacniacza nieodwracającego, ale cały układ robi się mocno rozbudowany, może po prostu istnieje coś prostszego?

    Może ktoś już kiedyś nad czymś takim się zastanawiał i coś wymyślił?

    4\/3!!
  • Poziom 25  
    Może mostek pomiarowy Wheatston'a?
  • Specjalista - Mikrokontrolery
    On niewiele rozwiązuje, bo i tak pomiar jest zasadniczo "od zera do X", a "przełączanie" par rezystorów jest technicznie skomplikowane (wg mnie).

    4\/3!!
  • Pomocny post
    Poziom 24  
    Nie podałeś dokładności jaka jest ci potrzebna. Jeśli bezpośredni pomiar rezystancji/napięcia nie wystarcza, to możesz dać dwa wzmacniacze pomiarowe (jeden na rezystor mierzony, drugi na wzorzec) + różnicowy + źródło prądowe. Podobne układy stosuje się w pomiarach temperatury z PT100/1000. Są do tego nawet gotowe scalaki, tylko niestety mają wbudowaną linearyzację, która tobie akurat będzie "krzywiła" charakterystykę.
  • Specjalista - Mikrokontrolery
    Dokładność nie jest sprecyzowana, ale istotę sprawy oddaje przykład z pierwszego posta - jeśli by mierzyć "normalną" metodą rezystancję w zakresie 7-8kR, to zakres 0-7kR zostanie zmarnowany. W przypadku 12-bitowego przetwornika z 4096 wartości zostaje zaledwie 512 "użytecznych" czyli 9 bitów. Dodatkowo też nie jest dla mnie specjalnie istotne czy jest to 7.543342kR czy raczej 7.543341kR - raczej zależy mi na "zauważeniu" względnej" zmiany rezystancji o (na przykład) 0.1%.

    Ważną sprawą jest też dla mnie - jak pisałem w pierwszym poście - możliwość łatwego "przestawienia" takiego układu na pracę z zakresu 7-8kR na inny, np 70-80kR. Przez "łatwe" rozumiem np potencjometry cyfrowe.

    Układ który spełnia moje założenia na chwilę obecną składa się z czterech wzmacniaczy operacyjnych (dwa wtórniki, wzmacniacz różnicowy, wzmacniacz nieodwracający) oraz potencjometru cyfrowego, do tego oczywiście dochodzi garść rezystorów. Nie jest tak źle, ale może istnieje prostsze rozwiązanie.

    4\/3!!
  • Poziom 38  
    A polaryzacja pomiaru zawsze + czy zmienna?
    No i dokładność.
    P.S.
    ATtiny 261.
    Wejście różnicowe.
  • Specjalista - Mikrokontrolery
    Jeśli będzie możliwość pomiaru "w zakresie", to można ten zakres tak dobrać, żeby zawsze polaryzacja była taka sama. Zresztą to nie jest specjalnie istotne - jeśli jest proste rozwiązanie to można je zastosować [;

    4\/3!!
  • Pomocny post
    Poziom 33  
    Witam
    Wzmacniacze różnicowe nie bolą, ale kilka uwag:
    - oporniki w układzie pomiarowym muszą być dobrej klasy by nie płynęły
    - nie przełączaj oporników do zasilania, zawsze wtrąci Ci się jakaś rezystancja, natomiast jak podłączysz kilka w szereg to bez utraty dokładności możesz podpinać się do odczepów
    - stosuj dobre wzmacniacze Rail to Rail unikniesz kłopotów budując wzmacniacz różnicowy nawet na jednym
    Piotr
  • Pomocny post
    Poziom 19  
    Mikroprocesory świetnie sobie radzą z pomiarem czasu więc może zamiast przekształcać R-> napięcie co prowadzi do adc+układ różnicowy zastosuj przekształcenie R-> czas (częstotliwość). Kandydatami do tego mogą być generatory zależne od rezystancji np: generatory RC, multiwibrator astabilny, generatory relaksacyjne, zbudowane na ne555 i inne.
  • Specjalista - Mikrokontrolery
    Wracam do tematu [; Wzmacniacze różnicowe (robione ręcznie z OPAMPa i rezystorów)są fajne, ale tylko w teorii, bo niedokładność elementów zabija całą ideę.

    Po zastanowieniu skłaniam się do tej "klasycznej" metody pomiaru w której mierzony jest czas ładowania / rozładowywania kondensatora. Biorąc pod uwagę fakt, że mało interesuje mnie konkretna rezystancja, a bardziej możliwość stwierdzenia, że się ona zmieniła, to chyba duża niedokładność kondensatora który zastosuję nie będzie tu problemem (jego parametry w czasie raczej się nie zmieniają bardzo?)... Dużą zaletą jest możliwość przekonfigurowania licznika (zmiany preskalera), przez co mogę programowo zmieniać rozdzielczość i zakres pomiaru. Zakres pomiaru chyba też jest zasadniczo nieograniczony z jednej strony - po prostu przy dużych rezystancjach spadnie częstotliwość pomiaru.

    Dobrze myślę?

    No ale teraz kilka wątpliwości - biorąc pod uwagę fakt, że STM32 którego używam do tego zadania nie ma żadnego komparatora, jak bardzo złym pomysłem byłoby po prostu skorzystanie ze zwyczajnego pinu wejściowego? Ponownie przypominam, że nie zależy mi na określeniu dokładnej rezystancji, tylko na monitorowaniu jej zmian od jakiejśtam wartości. Wiadomo, że taki pin ma bliżej niezdefiniowany próg przełączenia, ale czy jest on stały w czasie, czy raczej jest to wartość całkowicie losowa, zmienna w czasie i przestrzeni? Jeśli korzystanie ze zwykłego pinu jest bardzo głupie, to zostaje chyba tylko mierzyć napięcie na przetworniku ADC i przyjąć sobie jakiś próg programowy - right? Chciałbym uniknąć jakichkolwiek dodatkowych elementów zewnętrznych [;

    4\/3!!
  • Poziom 38  
    To może da się zrobić- próg przełączania nie jest podany- ale dół jest.
    Przynajmniej że poniżej jest 0.
    Do pinu podłączasz rownolegle RC.
    Pin ustawiasz jako wyjście high przez określony czas- dostarcza jakiś ładunek na układ RC.
    Górny tranzystor ma jakąś oporność kanału- trzeba to uwzględnić.
    Potem ustawiasz pin jako wejście bez podciągania i włączasz timer.
    Sprawdzasz czy osiągnął stan 0 i wyłączasz timer.
    Nie wiem jak szybko ten ST może zmieniać stan pinów.
  • Pomocny post
    Poziom 23  
    Witam! Może z raz mi uda się coś podpowiedzieć Tobie.
    Proponowałbym wykorzystanie adc jako komparatora. Dodatkowo pozwala to dość dowolnie wybrać sobie próg "przełączania", przy pracy nieciągłej można mieć przerwanie w chwili przekroczenia progu, zmieniając ustawioną wartość progu zmienimy też zakres.
    Można sobie zmieniać zakresy przełączając kondensatory.
    Łączymy "czynne", czyli połączone z badaną rezystancją końcówki kondensatorów ze sobą, a drugie końcówki do osobnych gpio. Żeby włączyć dany kondensator konfigurujemy "jego" gpio jako pp i podpinamy do vcc czy vss. Żeby go "odłączyć" kofigurujemy "jego" gpio jako Input floating i mamy go odłączonego. Należy tylko zadbać, aby go rozładować wcześniej.
  • Pomocny post
    Poziom 25  
    Freddie Chopin napisał:

    No ale teraz kilka wątpliwości - biorąc pod uwagę fakt, że STM32 którego używam do tego zadania nie ma żadnego komparatora,[...]


    Ale przetwornik ADC w STM32 ma funkcje Analog Wachdog(przynajmniej tak mówi Reference Manual jaki mam na dysku), czyli coś na kształt komparatora(dyskryminatora) okienkowego. Można to wykorzystać.
  • Pomocny post
    Poziom 33  
    Możesz też wykorzystać kilka(naście) wejść cyfrowych, w ten sposób wyeliminujesz błędy losowe. Problemem dalej będzie Vth(temp), nie wiem w jaki sposób się to może zmieniać. Generalnie projekt polegający na Vth jest, podobnie jak przy poleganiu na beta przy bipolarach, z założenia zły;)
  • Specjalista - Mikrokontrolery
    Z używaniem ADC jest ten problem, że wprowadza on opóźnienie... A może być ono znaczne, bo chciałbym tego ADC używać też do innych rzeczy...

    4\/3!!
  • Poziom 38  
    Szkoda że bez elementów zewnętrznych.
    Klasyczny układ to jest generator z mostkiem Wiena w którym odchyłka częstotliwości jest proporcjonalna do pierwiastka zmiany oporności.
    Do zmiany- a wartość jest bez znaczenia.
    A pomiar częstotliwości chyba najłatwiej zrobić.
    Jeden op-amp, 4 oporniki i 2 kondensatory.
  • Specjalista - Mikrokontrolery
    Nie powiedziałem, że musi być bez elementów zewnętrznych - najlepiej jednak gdyby tak było [;

    Taki generator Wiena też nie jest chyba idealny - pomiar częstotliwości sinusa nie jest chyba tak dokładny jak pomiar częstotliwości prostokąta.

    4\/3!!
  • Pomocny post
    Poziom 38  
    To dodaj do tego tranzystor albo pojedynczą bramkę-są jakieś takie smd pojedyncze ale nie pamiętam ich symboli.
    Zrobi z tego prostokąt.
    Albo op_amp podwójny.
    Stabilność częstotliwości generatora Wiena jest ok. 10-3 - może to wystarczy.
    No i nie używasz ADC do pomiaru.
    I nie musisz wzmacniać sygnału z "fragmentu" opornika.
  • Specjalista - Mikrokontrolery
    Prostszą opcją niż generator Wiena jest chyba generator relaksacyjny na wzmacniaczu operacyjnym. Przy pojedynczym zasilaniu składa się z 4 rezystorów (jednego zmiennego) + kondensator, na wyjściu jest sygnał prostokątny o okresie zależnym liniowo od zmiennej rezystancji.

    Swoją drogą w generatorze z mostkiem Wiena zależność w symulacjach tez wyglądała na liniową, bez żadnych pierwiastków.

    4\/3!!
  • Poziom 23  
    Chcąc uniknąć dodatkowych elementów można chyba próbować zrobić generator z użyciem gpio-jedno wejście generuje przerwanie zmieniające stan na drugiej końcówce połączonej z pierwszą przez badaną rezystancję. Do wejścia podpięty jeszcze kondensator. Tylko jak tu będzie wpływało vth? Może ktoś pokusi się o sprawdzenie.
    Zdaje się, że stm32 posiada na pokładzie czujnik temperatury, może da się określić funkcję dającą prawidłowe poprawki dla dryftu vth?
  • Poziom 38  
    W normalnym generatorze zmieniasz wartość obu oporników- w górnej i dolnej gałęzi.
    Wtedy jest liniowa.
    A w tym wypadku- tylko w jednej.
    Dlatego nada się to tylko do niewielkich zmian częstotliwości- warunek fazy będzie się rozjeżdżał co można kompensować większym niż 3 wzmocnieniem.
    To da większe zniekształcenia i gorszą stałość amplitudy- ale na tym nam nie zależy.
    Poza tym mam podejrzenia że dobrze było by zasilać to z 3V.
    No i generator relaksacyjny- to jest 555 albo 74121.
    Ale nie znalazłem 121 w wersji LVQ ani LVC.
    555 też chyba nie pójdzie z 3V.
    Tak że chyba op-amp.
    Albo scalony U/f.
    Chyba najmniej elementów.
    AD7740.
  • Specjalista - Mikrokontrolery
    janbernat napisał:
    Dlatego nada się to tylko do niewielkich zmian częstotliwości- warunek fazy będzie się rozjeżdżał co można kompensować większym niż 3 wzmocnieniem.

    Zgadza się, w PSPICE musiałem podkręcić wzmocnienie do 50x, żeby się wzbudzał w szerokim zakresie zmian rezystancji.

    Cytat:
    Poza tym mam podejrzenia że dobrze było by zasilać to z 3V.

    Tak, to bardzo ważne...

    Cytat:
    No i generator relaksacyjny- to jest 555 albo 74121.
    Ale nie znalazłem 121 w wersji LVQ ani LVC.
    555 też chyba nie pójdzie z 3V.
    Tak że chyba op-amp.

    Z OpAmpem działa całkiem przyjemnie, schemat zaczerpnięty z wiki - http://en.wikipedia.org/wiki/Relaxation_oscil...2.80.93based_electronic_relaxation_oscillator
    Jedyna zmiana to dodanie kolejnego opornika od IN+ do VCC tak aby układ pracował na pojedynczym zasilaniu.

    4\/3!!
  • Poziom 38  
    A jednak niedokładnie szukałem:
    LMC555
    1.5V supply operating voltage guaranteed.
  • Użytkownik usunął konto