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

jak wprowadzić 16 sygnałów analogowych do komputera

kachu23 18 Lis 2005 07:21 5741 18
  • #1 18 Lis 2005 07:21
    kachu23
    Poziom 14  

    witam mam za zadanie zczytywac co kilkanaście sekund sygnał analogowy (rezystancje) z 16 fotorezystorów i zapisywać te wartości np. do excel`a czy znacie jakis sposów na wykonanie takiego układu
    dzięki za każdą pomoc

    0 18
  • Relpol
  • #2 18 Lis 2005 09:14
    MMarek17
    Poziom 19  

    Witam
    Metod na rozwiązanie tego zagadnienia, jak to zwykle bywa, jest tyle co ludzi.
    Mnie nasunęły się następujące:
    1. fotorezystory połączone w dzielniki napięcia +5V przy cyzm wyjście każdego takiego dzielnika podłączone jest do multipleksera analogowego sterowanego przez LPT, wyjście multipleksera podłaczone jest do wejścia analogowego dżojstika (położenie X lub Y dźwigni) w karcie dźwiękowej, do tego oczywiście program obsługujący - sterowanie multiplekserem i "pomiar" napięcia z dzielników poprzez kartę dźwiękową

    2. fotorezystory podłaczone do przetwornika A/C z wbudowanym lub zewnętrznym multiplekserem (np. tani 8 bitowy A/C typu ADC0804), odczyt danych z przetwornika poprzez:
    LPT - bezpośrednio
    RS232 - wymagany mikrokontroler (trzeba napisać kolejny program) który odczytywałby rezystancje fotorezystorów i "tworzył" transmisję RS232

    Kwestia bezpośredniego zapisu do Excela jest do rożwiązania poprzez kanał DDE lub bibliotekę DLL wywoływaną poprzez zdarzenie w Excelu np. zdarzenie OnTime w Excelu pozwala na wywoływanie makroprogramu co określony odstęp czasowy (rozdzielczość 1s). Jeśli tym makro będzie procedurka odczytująca poprzez DLL wartości rezystancji i przesuwająca kursor o jedną komórkę w dół to otrzymamy prosty rejestrator. Wpisywanie danych bezpośrednio do Excela umożliwi np. generowanie "żywego" wykresu. Trzeba jednak odpowiednio napisać programik lub DLL który odczytywał by fotorezystory.

    Prostota układowa rozwiązania 1 wiąże się z koniecznością napisania skomplikowanego programu na PC. W przypadku rozwiązania 2 mamy sytuację odwrotną skomplikowany układ i w miarę prosty program.

    Pozdrawiam
    Marek

    0
  • Relpol
  • #3 18 Lis 2005 19:56
    bogdan_p
    Poziom 39  

    tak jak napisał kolega

    Cytat:
    Metod na rozwiązanie tego zagadnienia, jak to zwykle bywa, jest tyle co ludzi.

    proponuje przetwornik rezystancja / częstotliwość np na 555 , multiplekser , uC i transnisja do komputera przez RS232 , lub podobnie jak kolega multiplekser sterowany przez LPT , sygnał na kartę dzwiękowa

    0
  • #5 03 Gru 2005 22:26
    kachu23
    Poziom 14  

    dziekuje bardzo za podpowiedzi
    niestety programu sam nie napisze
    ale mysle że zakupie karte z przetwornikami do komputera
    może ktos polecic jakieś firmy

    0
  • #6 04 Gru 2005 00:25
    kokobaroko
    Poziom 13  

    skoro nie napiszesz programu to jak chcesz zczytywac dane z tych przetwornikow?

    0
  • #7 04 Gru 2005 10:08
    bogdan_p
    Poziom 39  

    Cytat:
    niestety programu sam nie napisze
    ale mysle że zakupie karte z przetwornikami do komputera

    kolega kokobaroko ma racje jeżeli nie potrafisz napisać programu to masz problem , gotowa karta nie wiele zmieni i zdaj sobie sprawę że nie będzie to tania sprawa może będzie do niej dołączone jakieś demo ale i tak będzie to wymagać odpowiednich poprawek dostosowujących do własnych potrzeb . Poszukaj na stronach www.astor.com.pl i www.automatyka.pl

    0
  • #8 04 Gru 2005 19:02
    bzykus
    Poziom 10  

    Jesli chodzi o latwosc w pisaniu programu to mozesz sprobowac LabView, aczkolwiek karta wejsc analogowych National Instruments (NI) moze byc droga.

    0
  • #9 05 Gru 2005 01:19
    marek_Łódź
    Poziom 36  

    Korzystałem z kart Advantechu (dostępne w www.elmark.com.pl, ale ostatnio coś mi się wydają zbyt drogie, a z kolei sprzęt NI chyba trochę staniał.

    Z LabView jest problem, bo kosztuje toto parę tysięcy zł, więc drożej od karty i trzeba kupować do każdej instalacji (licencja dotyczy jednego komputera), więc chyba lepiej jednak wykorzystać jakieś dołączane do karty biblioteki DLL i samemu napisać prosty programik akwizycji. Chyba, że się ma bogatego klienta-sponsora.

    0
  • #10 21 Gru 2005 20:04
    kachu23
    Poziom 14  

    witam a czy byłaby możliwość użycia programu HyperTerminal który jest zamieszczony w Windzie
    jeśli tak to czy potrzebny jest jakiś konkretny układ
    pozdrawiam marcin

    0
  • #11 21 Gru 2005 22:32
    KAPAS
    Poziom 17  

    Przepraszam, że trochę nie na temat, ale marek_Łódź poruszył ciekawy dla mnie temat. Korzystam z modułów ADAM 4017B+ i mam problem z zachowaniem dokładności odczytu dla przetwornika o wyjściu 0-10V (w zasadzie chodzi o skalowanie, gdy wartoś min. jest większ niż wartość max. - np. rejestracja pomiaru podciśnienia).
    Czy mógłbyś coś podpowiedzieć ?
    Z góry dziękuję.

    0
  • #12 22 Gru 2005 03:59
    marek_Łódź
    Poziom 36  

    KAPAS napisał:
    w zasadzie chodzi o skalowanie, gdy wartoś min. jest większ niż wartość max. - np. rejestracja pomiaru podciśnienia

    Znak nie ma tu nic do rzeczy. W przypadku czujnika liniowego wystarcza kalibracja dwupunktowa.

    • Wynik pomiaru przedstawiamy jako:

      p=U*gain+ofset gdzie
      U - napięcie z czujnika (albo prąd ;-) )
      p - mierzona wielkość

      mamy w dwóch punktach (np na krańcach przedziału):

      p1=U1*gain+ofset, p2=U2*gain+ofset

      stąd:

      gain=(p2-p1)/(U2-u1)
      ofset=p2-U2*gain lub ofset=p1-U1*gain

      przykładowo dla czujnika podciśnienia 0..-1bar z wyjściem prądowym 4-20mA

      p1=0, p2=-1, I1=4mA, I2=20mA

      gain=(-1-0)/(20-4)= -1/16 bar/mA
      ofset=-1-20*(-1/16)=4/16 bar

      Powyższe wzory można zastosować w procedurze autokalibracji - odczytujemy 2 dowolne punkty, podajemy rzeczywiste wartości mierzonego parametru i program kalibruje czujnki.

      Dodatkowo w przypadku zakłóconych sygnałów można zastosować najprostszą filtrację filtrem inercyjnym

      Wfil=(Wfil*kfil+W)/(kfil+1)

      gdzie
      Wfil - wielkość odfiltrowana
      kfil - inercja
      W - odczyt bieżący


    Tak ustawiony filtr działa podobnie do pojemności wrzuconej w tor pomiarowy. Przy liczeniu na mikroprocesorze w stałym przecinku opłaca się stosować filtry o inercji 2^n, bo łatwiej się mnoży i dzieli

    0
  • #13 21 Sty 2006 19:34
    mikels
    Poziom 10  

    Możesz zrobić także samodzielnie kartę pomiarową na ISA. Komputer "widzi" ją tak samo jak np. port LPT.
    Najprostsza karta mogłaby sie składać tylko z 2 uP(chyba ze sa jakieś z 16 kanałowym A/C to wtedy nawet jeden :D). Próba odczytania z odpowiedniego adresu spowodowałaby wystawienie przez odpowiedni uP wartość odpowiedniego zmierzonego napięcia.
    Program na PC-ta polegałby tylko na 16 odczytach z odpowiednich adresów.

    0
  • #14 22 Sty 2006 08:58
    marek_Łódź
    Poziom 36  

    kachu23 napisał:
    witam a czy byłaby możliwość użycia programu HyperTerminal który jest zamieszczony w Windzie
    jeśli tak to czy potrzebny jest jakiś konkretny układ
    pozdrawiam marcin
    Transmisja danych przez RS jest stosunkowo prosta. Niestety po stronie pomiarowej konieczne jest zbudowanie i oprogramowanie niewielkiego układziku (np ATMega8+multiplexer analogowy+MAX232). Program można stosunkowo szybko napisać w bascomie. Hyperterminal to absolutne minimum przy pomocy którego można zebrać i zapisać na dysku spływające dane. Oczywiście lepszym rozwiązaniem jest kawałek dedykowanego programu.

    Druga wersja to wykorzystanie gotowego modułu pomiarowego na RS, ale nie wiem czy takowe można kupić (może jakiś ADAM na RS232 lub ew. konwerter 485/232 - ale mogą być problemy ze spasowaniem protokołów transmisji z hypertermminala).

    Cytat:
    ISA
    Zdobycie (nowego) komputera ze złączami ISA może być coraz trudniejsze.

    0
  • #15 22 Sty 2006 13:09
    kokobaroko
    Poziom 13  

    po co tak kombinujecie z rsami i isa skoro podalem juz rozwiazanie - zbudowac 2 moduly z planow podanych na tacy (zero wlasnego kodu) + napisac program zczytujacy dane joystickow ("kontrolerow gier" jak kto woli)
    zero wysilania sie jesli chodzi o elektronike, jedynie trzeba skalibrowac czujniki pod interfejs i jazda

    0
  • #16 22 Sty 2006 18:37
    marek_Łódź
    Poziom 36  

    kokobaroko napisał:
    po co tak kombinujecie z rsami i isa skoro podalem juz rozwiazanie - zbudowac 2 moduly z planow podanych na tacy (zero wlasnego kodu) + napisac program zczytujacy dane joystickow ("kontrolerow gier" jak kto woli)
    zero wysilania sie jesli chodzi o elektronike, jedynie trzeba skalibrowac czujniki pod interfejs i jazda


    A po co budować interfejs dżojstika, skoro takowy już istnieje. Potrzebny jest tylko multiplexer analogowy. Natomiast karty pomiarowe można podpiąć do excela bezpośrednio przez LabView co pozwoli uniknąć programowania konfigurując je jedynie przy pomocy języka schematów (co oczywiście też wymaga pewnej wiedzy). ADVANTECH też daje do swoich kart taki pakiet.

    0
  • #17 04 Lut 2006 20:07
    kachu23
    Poziom 14  

    witam temat zakończony
    układ został złozony z układu
    CD4067 i podłaczonego do portu szeregowego

    działa idealnie

    0
  • #19 16 Maj 2008 20:05
    Rosemount
    Poziom 1  

    Najprościej? www.metronic.pl i rejestrator 16-kanałowy MPI-G-16, do tego konwerter RS485 na USB i oprogramowanie MPI-G Raport i już ściągasz sobie po RS485 dane do pliku tekstowego, który potem otwierasz exelem i gotowe. Całość poniżej 4 tys. zł...

    0
  Szukaj w 5mln produktów