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

Omomierz na uC w wersji Lite :)

McRancor 27 Mar 2005 14:05 4105 20
  • #1 27 Mar 2005 14:05
    McRancor
    VIP Zasłużony dla elektroda

    Witojcie!

    Dzisiaj dręczy mnie następujący problem:
    Musze zrobić miernik rezystancji 0-1000Ohm, używam przetwornika z mikroproca, dokładność mi odpowiada, wszystko jest OK, tylko zastanawiam się nad samą metodą pomiaru.

    W moim zamyśle widze dzielnik napięcia, w którym badany opór jest jednym z oporników i na podstawie różnic napięcia na wejściu i wyjściu, określam rezystancję (mam oporniki wzorcowe i napięcie odniesienia 5,12V więc z tym nie ma problemu)

    Może jakieś uwagi na temat moich planów? Prosiłbym o opinie, nie wiem czy dobrze kombinuje, a może jest jakiś ciekawszy sposób?

    Nie zależy mi na super dokładności (10 Ohm będzie OK), tylko na niezawodności i relatywnej prostocie (proste jest najtrudniejsze i najbardziej niezawodne :) )

    Będe wdzięczny za Wasze uwagi!

    0 20
  • Pomocny post
    #2 27 Mar 2005 14:25
    elektryk
    Poziom 42  

    Wydaje mi się że prościej zrobić układ RC i ładować/rozładowywać go stanem logicznym na jednym z wyprowadzeń procesora. Wtedy wystarczy jedynie komparator wbudowany w procesor i nie trzeba używać przetworników adc.

    0
  • #3 27 Mar 2005 14:32
    McRancor
    VIP Zasłużony dla elektroda

    No tak, ale już mam przetwornik, nawet płytke drukowaną, więc z mojego punktu widzenia jest prościej użyć przetwornika

    0
  • Pomocny post
    #4 27 Mar 2005 15:42
    marcinj12
    Poziom 40  

    Albo zastosować w miarę dokłądny generator, np. NE555 o dużej (relatywnie) częstotliwości pracy, gdzie badany rezystor bedzie miał wpływ na częstotliwość. Mikroprocesor zliczałby impulsy w jednostce czasu, a przetwornik przyda się do innych zastosowań :)

    0
  • Pomocny post
    #5 27 Mar 2005 15:44
    LordBlick
    VIP Zasłużony dla elektroda

    Myślę, że zamiast dzielnika napięcia, lepsze byłoby żródło prądowe np. 10 mA i pomiar napięcia odkładającego się na mierzonym rezystorze zgodnie z prawem Ohma U=I*R. Pomiary na dzielniku napięcia będzą nieliniowe oraz w jej obliczaniu trzeba stosować mnożenie i dzielenie, a w przypadku mojego pomysłu można tak dobrać prąd źródła, aby nie było potrzeby szczególnego obliczania.
    Pozdr. Light-I

    0
  • Pomocny post
    #6 27 Mar 2005 16:37
    Samuraj
    Poziom 35  

    Dzięki zastosowaniu NE 555 i kondensatora mozna zorbic prosty przetwornik R - F, jest tego dodatkowy plus. Moza zamiast mierzonego rezystora wstawic o znanej wartosc a zmieniac kondensator - dzięki temu bedzie 2 w jednym. Miernik pojemności oraz omomierz :)

    0
  • Pomocny post
    #7 29 Mar 2005 11:11
    Tdv
    Poziom 33  

    Jak na mój gust metoda z dzielnikiem napięcia będzie tu bardzo dobra. Jaki masz uC i przetwornik?
    Te 5,12V może być małym problemem jeżeli używasz przetwornika wbudowanego w uC (sądząc z innych Twoich postów może to być AVR) i tu jedna uwaga - taki przyrząd będzie musiał przechodzić kalibrację po wykonaniu z uwagi na duży rozrzut parametrów wbudowanego Uref z AVRów (o ile je wykorzystujesz nominalnie 2,56V - w praktyce mają od 2,4 do 2,7V zależnie od egzemplarza uC).
    Wracając do metody pomiaru to ja bym dał do dzielnika 2 rezystory stałe + mierzony (+5,12V --> rezystor1 --> rezystot_mierzony --> rezystor2 --> masa5,12), rezystory dobrać tak, aby przy rezystor_mierzony=0, na rezystor2 był spadek napięcie = Uref (przy wykonaniu pojedyńczego egzemplarza można dobrać bardzo dokładnie, gorzej przy produkcji seryjnej - wtedy trzeba zostawić jakiś zapas np. 0,1V).
    Układ będzie nieliniowy ale ma tę zaletę, że im mniejsza wartość rezystora mierzonego, tym większa rozdzielczość!!! 10 omów da się spokojnie osiągnąć.
    rezystory najlepiej 0,1% (ostatecznie 1% te mają wsp. temp. 50ppm co jest już nieźle).
    Do tego dodatkowy pomiar tego 5,12V (przez stały dzielnik) i korekcja wyniku zgodnie z tym pomiarem, co pozwoli dodtakowo "udokładnić" pomiar.

    0
  • #8 29 Mar 2005 11:41
    McRancor
    VIP Zasłużony dla elektroda

    uC to ATMega 16, a przetwornik wewnętrzny. Przyznam że z tych wszystkich propozycji najbardziej przypadła mi do gustu odpowiedź Tdv :)

    Faktycznie, wydaje mi się że przy metodzie ze stałym prądem może być problem z błędem i potrzeba zrobienia źródła prądowego o dobrych parametrach, a jeśli chciałby je obliczać z pomiaru na dodatkowym rezystorze, to wogóle nie ma wtedy sensu robienie dokładnego źródła, ale wraca problem dzielenia :)

    Co do 555, pomysł ciekawy i szeroko stosowany, ale mój procek ma już troche zadań liczących na głowie, wykorzystane timery, więc musiałbym się nagimnastykować żeby mógł jeszcze impulsy liczyć, bo musiałby to robić softwarowo.

    Co do pomysłu z dzielnikiem, to jest to pojedyńczy egzemplaż urządzenia, kóry moge skalibrować na tyle na ile jest to możliwe. napięcie odniesienia zawsze moge użyć z wewnątrz procka.

    Wymyśliłem w końcu, że zasile dzielnik z napięcia odniesienia 5,12 (2*2,56) i zrobie dzielnik w ten sposób że wraz ze wzrostem oporu mierzonego maleje napięcie wyjścia, ale maksymalny podział dzielnika wynosi 1/2 czyli 2,56V, teraz kwestia co się stanie gdy ktoś podłączy coś o za dużym oporze (kiepski styk itp.) i przetwornik dostanie napięcie ok. 5V (mniejsze od jego napięcia zasilania, ale większe od Uref) czy da wtedy odczyt maksymalny czy dym?

    0
  • Pomocny post
    #9 29 Mar 2005 12:07
    marek_Łódź
    Poziom 36  

    Light_I napisał:
    Myślę, że zamiast dzielnika napięcia, lepsze byłoby żródło prądowe...


    Nie mam już tych schematów, więc z pamięci z jakiejś książki o pomiarach z lat 70'XX. Tranzystor pnp emiterem do plusa przez opornik, między bazą a plusem zener, i chyba jakaś dioda (chodzi o kompensację termiczną, więc zener był na konkretne napięcie coś chyba koło 5V6). Kolektor do masy przez mierzony opornik. Zmieniając opornik w emiterze zmieniamy prąd źródła (zakresy)

    Myślę, że taki układ nie powinien wprowadzać specjalnych błędów, zwłaszcza, gdy się dobierze elementy pod kątem kompensacji temperatury. Problem w tym, że w tym celu trzeba go zasilać z troszkę wyższego od 5V napięcia. Pytanie, czy faktycznie przy założonych parametrach ta kompensacja jest niezbędna.

    No i nie trzeba przeliczać wyniku z dzielnika( a piszesz, że twój uproc ma i tak kupę na głowie).

    Miałem przypadki, gdy przy referencji 2,56V na wejścia analogowe wchodziło 5V i układ pracuje do dziś, co oczywiście nic nie znaczy (90S4433,ATMega8).

    Nie możesz dać mu ograniczenia?

    0
  • Pomocny post
    #10 29 Mar 2005 13:37
    Tdv
    Poziom 33  

    Hmm, chyba nie do końca zrozumiałeś - zamieszczam schemat.
    Niestety taka metoda pomiaru tez wymaga kilku obliczeń. MIerzysz napięcie na rezystorze przy masie, więc zły styk będzie pokazywał dużą rezystancję i tyle (będzie twedy mierzyć napięćie 0V, maksymalny pomiar będzie gdy R mierzone będzie miało wartość 0omów).

    0
  • Pomocny post
    #11 29 Mar 2005 17:54
    LordBlick
    VIP Zasłużony dla elektroda

    Tdv napisał:
    Niestety taka metoda pomiaru tez wymaga kilku obliczeń. MIerzysz napięcie na rezystorze przy masie, więc zły styk będzie pokazywał dużą rezystancję i tyle.

    W takim wypadku zwieramy wejście pomiarowe, i wciskamy switch p.t. "Kalibruj zero", a program wpisuje co trzeba do wewnętrznego EEPROM-a. Proste ? ;)
    Przy źródłach prądowych sterowanych np. kilka zakresów : 10µA, 100µA, 1mA... mozemy dobrać najbardziej precyzyjny zakres pomiarowy... Na marginesie - warto tu dołożyć ograniczenie napiecia źródła prądowego, do wartości "zjadliwych" dla wewnętrznego A/DC.
    Light-I

    0
  • #12 29 Mar 2005 18:01
    McRancor
    VIP Zasłużony dla elektroda

    Wartości R1 i R2 powinny być takie same, żeby przy zerowym oporze mierzonym (bo taki też wchodzi w grę) podzielnik był równy 1/2, jednocześnie powinny być na tyle małe, żeby 1K oporu mierzonego dawało jak największy podział. Jednak taki uklad będzie dość "prądożerny"

    Ja wymyśliłem to w sposób jak na rysunku, dodałem ograniczenie napięciowe, sam zener myśle że wystarczy, bo opornik już jest (R1)

    Planowałem dać opornik R1 = 1K czyli tyle ile wynosi maksymalna wartość Rx - mierzonego, czyli będzie dawać napięcie 2,56V, zener ma wartość 2,7V i powinien zabezpieczyć należycie przetwornik, dzięki takiemu rozwiązaniu wykorzystuje cały zakres przetwornika bo przy Rx = 0 mam 0V. A z dzieleniem sobie jakoś poradzę, bo proc nie będzie robił tego zbyt często.

    1
  • Pomocny post
    #13 30 Mar 2005 07:34
    Tdv
    Poziom 33  

    W takim układzie tej diody nie musisz dawać - uC mają wejścia zabezpieczone diodami do Vcc i GND, choć oczywiście może ona zostać.
    Light_I: niby tak, a nie... Kalibracja zera to za mało - żeby odtworzyć ch-kę potrzebne są conajmmniej dwa punkty, czyli trzeba zrobić np. dla 0 i dla 500omów.

    0
  • #14 30 Mar 2005 18:09
    LordBlick
    VIP Zasłużony dla elektroda

    Tdv napisał:
    Kalibracja zera to za mało - żeby odtworzyć ch-kę potrzebne są conajmmniej dwa punkty, czyli trzeba zrobić np. dla 0 i dla 500omów.

    Jaką charakterystykę ? Prawo Ohma jest linowe, podajemy dokładnie skalibrowany prąd np. 1 mA, odczytujemy wartość w rejestrze ADC, mnożymy przez napięcie odniesienia i dzielimy przez 1024 (10 przesunięć bitowych w prawo) i mamy odczyt napięcia, odpowiadajacy swoją wartością rezystancji w kΩ. Nastepna operacja to odjęcie wartości uzyskanej podczas kalibracji. Oczywiście myślę o dobrze skonstruowanym źródle prądowym...
    Jak na potrzeby McRancora wystarczyłoby.
    Ogólnie jednak przydałoby się nie zapomnieć o tym, że pomiar powinien odbywać się poprzez wtórnik napięciowy na jakimś wzmacniaczu operacyjnym, bo ADC od µC swoim poborem prądu może zakłócić wynik pomiaru (w nocie jest mowa w pewnym miejscu o <10kΩ impedancji wewnętrznej mierzonego źródła).
    Light-I

    0
  • #15 30 Mar 2005 18:36
    marek_Łódź
    Poziom 36  

    Tdv napisał:
    W takim układzie tej diody nie musisz dawać - uC mają wejścia zabezpieczone diodami do Vcc i GND, choć oczywiście może ona zostać.
    Light_I: niby tak, a nie... Kalibracja zera to za mało - żeby odtworzyć ch-kę potrzebne są conajmmniej dwa punkty, czyli trzeba zrobić np. dla 0 i dla 500omów.


    1. Podałeś zakres napięć ograniczanych diodami 0-Vcc, natomiast zgodnie np. z datasheet od ATMegi8 jest wyraźnie napisane, że na wejściach analogowych dopuszcza się zakres 0-Vref, który może być mniejszy od Vcc.

    2. "Co najmniej 2 punkty" - lepiej nie czytaj więcej niż 2 punkty, bo może się okazać, że trzeba zapuścić jakąś aproksymację średniokwadratową. A arkusz kalkulacyjny na ATMega jest trudno zaimplementować.

    Cytat:
    Jaką charakterystykę ? Prawo Ohma jest linowe,


    3. Charakterystykę liniową też możemy kalibrować dwupunktowo. Wtedy nie musimy dokładnie jednorazowo kalibrować źródła, a jedynie zapewnić stabilność termiczną. Jest jeszcze jedna możliwość - precyzyjny, wysokostabilny termicznie rezystor włączany naprzemiennie z rezystorem mierzonym czyli kalibracja w biegu (przez kontaktron). W takim układzie mielibyśmy skompensowany odpływ całej elektroniki.

    0
  • Pomocny post
    #16 31 Mar 2005 07:23
    Tdv
    Poziom 33  

    Light_I: Zwróć uwagę, że pisałem o ch-ce nieliniowej przy zastosowaniu dzielnika napięcia (bo z tego mojego postu wstawiłeś cytat), przy ch-ce linowej oczywiście wystarczy jeden punkt. problem w tym, że zrobić odpowiednio stabilne i pewne źródło prądowe jest znacznie trudniej niż taki omomierz nieliniowy.

    marek_Łódź: Chyba niedokładnie poczytałeś - zakres 0 - Uref będzie dobrze przetworzony i da właściwy wynik, a tu chodzi o bezpieczeństwo układu i elektrycznie spokojnie można podać napięcie wyższe niż Uref i nie uszkodzić uC (zgodnie z odpornościa układu).
    Arkusza kalkulacyjnego nie trzeba - trzeba kartke i długopis, narysować układ, przeliczyć transmitancję i zaimplementować ch-kę zgodnie z obliczonym wzorem - do kalibracji potrzebne są dokładnie dwa punkty.

    0
  • Pomocny post
    #17 31 Mar 2005 15:30
    marek_Łódź
    Poziom 36  

    Tdv napisał:

    marek_Łódź: Chyba niedokładnie poczytałeś - zakres 0 - Uref będzie dobrze przetworzony i da właściwy wynik, a tu chodzi o bezpieczeństwo układu i elektrycznie spokojnie można podać napięcie wyższe niż Uref i nie uszkodzić uC (zgodnie z odpornościa układu).
    Arkusza kalkulacyjnego nie trzeba - trzeba kartke i długopis, narysować układ, przeliczyć transmitancję i zaimplementować ch-kę zgodnie z obliczonym wzorem - do kalibracji potrzebne są dokładnie dwa punkty.


    W datasheet od atmega8 znalazłem w dwóch miejscach - zakres wejścia przetwornika 0-Vcc (bez odwoływania do Vref), w tabeli parametrów elektrycznych (0-Vref). Ja akurat wiem, że kość wytrzyma Vcc, ale z dokumentacji to jednoznacznie nie wynika.

    Co do kalibracji, to w przypadku liniowym dwupunktowa jest dokładniejsza od jednopunktowej, i w żadnym przypadku (liniowym i nieliniowym) nie gwarantuje, że trzeci punkt znajdzie się na tej charakterystyce, co Ci gwarantuję z autopsji.

    Co do transmitancji, to niepotrzebnie użyłeś tego obcego słowa, bo ona akurat jest użyteczna w przypadku układów dynamicznych, a w naszym przypadku wystarczy zwykłe prawo Ohma i cztery podstawowe działania (a może nawet trzy).

    0
  • #18 01 Kwi 2005 07:22
    Tdv
    Poziom 33  

    marek_Łodź: Moje gratulacje - ciekawe w jaki sposób wyznaczasz tę ch-kę nie znając transmitacji (BTW to nie jest obce słowo - funkcjonuje w języku technicznym od dawien dawna) układu?
    Jak wróżysz z fusów (coby słów obcych nie używać to Ci się potem punkty rozmijają z ch-ką.

    0
  • #19 01 Kwi 2005 08:38
    marek_Łódź
    Poziom 36  

    Tdv napisał:
    marek_Łodź: Moje gratulacje - ciekawe w jaki sposób wyznaczasz tę ch-kę nie znając transmitacji (BTW to nie jest obce słowo - funkcjonuje w języku technicznym od dawien dawna) układu?
    Jak wróżysz z fusów (coby słów obcych nie używać to Ci się potem punkty rozmijają z ch-ką.


    Wikipedia napisał:

    Transmitancja Funkcja przejścia, nazywana również transmitancją operatorową lub przepustowością, jest stosunkiem transformat wielkości wyjściowej (odpowiedzi) i wejściowej (wymuszenia) układu (lub członu) posiadającego własności dynamiczne.


    W automatyce dość jednoznacznie określa się pojęcie transmitancji i tak jak podaje wikipedia operuje ona transformatami (Laplace'a) równań stanu i sygnałów.

    Nie bardzo zrozumiałem dlaczego mamy przejść na płaszczyznę zespoloną, po to, żeby potem i tak wrócić do zależności z prawa Ohma. Czy masz może jakieś dodatkowe spostrzeżenia dotyczące dynamiki tego układu i tych pomiarów?

    Coby nie mnożyć nic nie wnoszących postów
    Jeszcze raz napiszę, że rezystancję/napięcia/prądy w układzie dzielnika wyliczamy z prawa Ohma niezależnie od tego, jak je nazwiemy, kalibracja nawet wielopunktowa żadnego urządzenia nie gwarantuje, że przy kolejnym pomiarze trafi w te same punkty, transmitancją przyjęto nazywać opis dynamiki układu w postaci transformaty Laplace'a ilorazu wyjść do wejść układu (stosowane głównie w układach liniowych), a transformatę Z stosuje się do analogicznego opisu układów dyskretnych.

    0
  • #20 01 Kwi 2005 09:37
    Tdv
    Poziom 33  

    OK, proponuję sięgnąć do literatury, potem przyjrzeć się kilku Twoim ostatnim postom, gdzie sam sobie zaprzeczasz (o czym niżej), potem przeczytać dokładnie o czym ja pisze i zastanowić się nad tym.

    Zapomniałes jeszcze w to wmieszać transformatę Z - bo też się ją w automatyce stosuje i to do tych samych celów co transformatę Laplace'a tylko w innych okolicznościach.

    "...Co do kalibracji, to w przypadku liniowym dwupunktowa jest dokładniejsza od jednopunktowej, i w żadnym przypadku (liniowym i nieliniowym) nie gwarantuje, że trzeci punkt znajdzie się na tej charakterystyce, co Ci gwarantuję z autopsji...."

    "...w naszym przypadku wystarczy zwykłe prawo Ohma i cztery podstawowe działania (a może nawet trzy)..."

    Jak widać prawo Ohma Ci wystarczy ale trzeci punkt Ci z chc-ki ucieka, tak? A mi się zdawało,m że prawo Ohma opisuje linię prostą - chcesz liczyć transformaty Laplace'a, a lini prostej nie umiesz policzyć?

    0
  • #21 12 Lis 2005 21:20
    McRancor
    VIP Zasłużony dla elektroda

    W końcu zastosowałem metode opisaną przeze mnie kilka pięter wyżej. Działa do dziś i nie było większych problemów.

    Temat do zamknięcia. Dzięki za pomoc

    0