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

Konwersja sygnału z rs232 na wartość właściwego napięcia w c

Marcin_O 23 Sie 2006 15:06 1953 4
REKLAMA
  • #1 2944802
    Marcin_O
    Poziom 10  
    Posty: 22
    Ocena: 1
    Cześć,
    w ramach praktyki zrobiłem układ, który pobiera sygnał z czujnika i po przetworzeniu (Filtr 50Hz -> ADC [100Hz] ->mikrokontroler->UART) podaje go na rs232. Tu ma problem, bo musze napisac do tego program w C, który by go z com'a pobrał. Transmisja to 9600 bodów, 8 bitów - tu mogę chociaż w pewnych zakresach prace dokończyć.

    -Pierwszy to pobranie sygnału i zapisanie go do pliku.

    -Drugi zakres to pobranie: pliku z zapisanymi danymi lub bezpośrednio z portu danych i wyświetlenie ich charakterystyki w zależności od czasu.

    -Trzeci zakres to dokonanie transformaty Fouriera na danym sygnale pobranym bezposrednio z portu lub pliku i wyświetleniu charakterystyki oraz zapisu poprawionych danych do pliku.

    Prosze o pomoc chociażby w pierwszej cześci ponieważ jestem dopiero początkującym programistą - jeśli w grę wchodzą pieniążki - sprawa jest do dogadania.
  • REKLAMA
  • #2 2950192
    mazdziez
    Poziom 11  
    Posty: 54
    Pomógł: 2
    Witam,

    Dwa ostatnie problemy są raczej algorytmiczne. Do furiera polecam poszukać informacji o FFT. A jeżeli chodzi o rs232 to sprawa wygląda następująco.

    Na polskim rynku jest dostępna książka wydawnictwa helion opisująca standardy transmisji przez rs232:

    http://helion.pl/ksiazki/rs2322.htm

    W książce jest pokazane jak przy użyciu aplikacji takich jak Builder lub Delphi odczytywać czy pisać do portu rs232. Prezentowane tam programy są pisane przy wykorzystaniu Windows API co dla początkującego może być kłopotliwe. Sam miałem z tym problemy:). No ale da się to tak zrobić.

    Drugim rozwiązaniem które bym proponował jest napisanie tego programu w C#. Wersja 2.0 posiada gotowy komponent do obsługi portu rs232 i wykorzystuje się go bardzo zgrabnie. Poniżej wklejam link z przykładem.

    http://msmvps.com/blogs/coad/archive/2005/03/23/39466.aspx

    Życzę powodzenia i pozdrawiam.
  • REKLAMA
  • #3 2960996
    Marcin_O
    Poziom 10  
    Posty: 22
    Ocena: 1
    Dziekuje za podpowiedz, ale sam nie dam rady tego zrobic, w tak krótkim czasie - czy ktoś moze mi pomóc!?
  • REKLAMA
  • #4 2961232
    przemo.t
    Poziom 27  
    Posty: 994
    Pomógł: 79
    Ocena: 30
    Poszukaj komponentow do obslugi portow dla buildera lub delphi jeden z nich chyba sie ComPort nazywa. Wraz z komponentem dostaniesz przykladowe programy dzieki ktorym latwo skumasz o co chodzi.

    Co do samego sposobu dzialania programu. Wydaje sie niezbyt dobrym rozwiazaniem zapisywanie danych z portu zaraz po odebraniu. Dysk bedzie non stop zapisywal dane, lepiej zrobic jakis bufor (tablice np 1000 elementowa) i ladowac najpierw do niej dane z RS-a, a zapisac ja do pliku po zapelnienu i tak w kolko.
    Pozdr
  • #5 2966093
    Marcin_O
    Poziom 10  
    Posty: 22
    Ocena: 1
    ok - dziekuje-juz część działa. Teraz ma problem innej kwestii.
    Na wyjściu otrzymuje dane w postaci :

    2379
    2378
    2379
    2379
    2379
    2385...
    Czy wie ktoś może, jak zamienić te wartości , na wartości odpowiadające wartościom właściwego napięcia ?
    Z góry dziekuje zapomoc.
REKLAMA