Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Miernik kondensatorów od 1pF do 10.000uF do PC (Pascal)

zasoby 30 Apr 2005 21:50 11421 15
  • Projekt miernika kondensatorów od 1pF do 10.000uF podłączanego do PC, wskaźnikiem pojemności jest w tym wypadku monitor komputera. Zostały dołączone źródła w Pascal pozwalające poznać zasadę komunikowania portu szeregowego z światem zewnętrznym.

    Stworzony przez Czecha Jiří Sedláček miernik został zbudowany na układzie MC1458, konstrukcja samego hardware jest trywialna a wszystkie funkcje wykonuje program napisany w darmowym kompilatorze Turbo Pascal 5.5 i do jego pracy najlepszy okazuje się wiekowy komputer 486.

    Po uruchomieniu programu wybieramy port com 1 lub 2, wciskamy enter. Następnie powiniśmy skalibrować 4 zakresy. Np. chcemy skalibrować pierwszy zakres od 1pF do 1000pF. Najpierw ustawiamy koniec zakesu - podłączamy kondensator 1nF i wciskamy F4, później enter i ustalamy dolny zakres podłaczając np. kondensator 56pF, F4 i enter.

    Projekt ze strony:
    http://juraset.com/cmeter/cmeter.html

    Cool! Ranking DIY
    Can you write similar article? Send message to me and you will get SD card 64GB.
    About Author
    zasoby
    Level 23  
    Offline 
    dddddd
    zasoby wrote 785 posts with rating 369, helped 4 times. Been with us since 2002 year.
  • #2
    powa
    Level 16  
    urzadzenie rzeczywiscie wyglada na genialne, zwlaszcza, ze kazdy ma chyba komputer w domu/warsztacie.

    a jaka jest dokladnosc tego miernika?

    co znaczy "zapojeni" po czesku, bo czesto to widze a nie wiem :D
  • #3
    zasoby
    Level 23  
    około 2% tolerancji
    zapojeni oznacza doprowadzać przewodami, doprowadzać prąd
  • #4
    snake83
    Level 24  
    A czy jest może gdzieś w necie angielski opis tego projektu,bo o polskim to pewnie nie ma co marzyć.Bardzo mnie on zainteresował,fajne i przydatne urządzenie,przy okazji można jakoś wykorzystać złom komputerowy. :)

    Pozdrawiam.
  • #5
    kulysaw
    Level 14  
    Witam.Wygląda to obiecująco.Czy myślicie, że zadziała on na nowych komputerach???

    Pozdr
    kulysaw
  • #6
    enigma
    Level 12  
    kulysaw wrote:
    Witam.Wygląda to obiecująco.Czy myślicie, że zadziała on na nowych komputerach???

    Pozdr
    kulysaw


    zadziała ale jest kilka "ale"
    sposoby:
    1. albo podmieniamy pascalowe biblioteki co by wynikowe programy były cacy i nie dzieliły przez zero albo...
    2. juz na gotowy skompilowany program nakladamy patcha

    kiedys sie tym bawiłem ale nie mam juz tych patchy. poza tym z tego co wiem było to na pascala 7.0 ale trza by poszukać dokładnie
  • #8
    Jurek56
    Level 17  
    Po raz pierwszy jestem na Waszej stronie a w serwisie RTV ponad 30-letnie doswiadczenie ale ten jezyk przyswajam powoli a potrzeby sa na wczoraj takie urzadzenie jest potrzebne od xxxlat i za dostepne pieniadze bo naprawy sprzetu RTV po czasie w wiekszosci polegaja na wymianie elem . C w 40 % . Pomoc jest potrzebna jak to robic bez wylutowywania i miec pewnosc za ten pomiar . Jest to 100% biznes dla wielosci serwisow w PL. i dla Tego co to opracuje poprawnie GLORIA przepraszam za bledy ale to tylko elektronik.
  • #9
    zasoby
    Level 23  
    w załączniku zdjęcia w jaki sposób przekształcić ten miernik (oraz inne) do pomiaru małych kondensatorów SMD.
    Wszystko polega na wykonaniu płytki o mozaice jak na zdjęciach. Otwory zapewniające przykręcenie złącz bananowych bezpośrednio do miernika pojemności (niwelując pojemność pasożytniczą przewodów). Element SMD jest ściskany do laminatu plastykowym spinaczem.
  • #10
    urbaniakadam
    Level 12  
    miernik już wykonałem ale gdy włączę program i wybiorę port program wyłącza się.... nie za bardzo znam sie na pascalu i... czy mógłby ktoś napisać jak sprawić by wszystko działało.
  • #12
    Andy_Łodz
    Level 2  
    Witam.

    Przestawiony tu komputerowy miernik pojemności kondensatorów
    polega na pomiarze ilości cyklów przez określony wyborem zakresu
    czas.

    Najsłabszym punktem tego rozwiązania jest generator.

    Raz, że analogowy, niepewnie działajacy z kiepskim napięciem
    na wyjściu.
    Dwa, że wymaga topornego trafa z symetrycznym zasilaniem.

    W załączniku przedstawiam moją propozycję generatora na zlinearyzowanych
    bramkach NAND 7400.
    Zasilanie 5V można wziąć z komputera.

    Oczywiście to tylko propozycja. Wersji tego rozwiązania może być kilka.

    -------------------------------------------------------------------------
    Do rysunku dołączam tekst programu czeskiego autora, który jest
    przedstawiony w bardziej ludzkim stylu i z usuniętymi drobnymi błędami
    pozostawionymi w poprawianej już raz wersji.

    W załączniku jest już skompilowany program, który chodzi na nowych kartach
    graficznych (probowałem na GForce). Program źródłowy ma dołączone procedury
    obsługi tych kart (oryginalne Borlanda).

    Do katalogu, w którym będzie program .EXE należy skopiować jeszcze dwa pliki,
    obsługi karty Vesa16.bgi i krój czcionki Trip.chr. Bez pierwszego pliku program
    się nie uruchomi na nowych komputerach. Brak drugiego pliku jest mniej uciążliwy
    bo napisy bedą wyświetlane jednym krojem i jednej bardzo małej wielkości.


    Jeśli ktoś będzie chciał dostosować ten program do swoich potrzeb i będzie
    miał trudności w konfiguracji zintergrowanego środowiska Turbo Pascala
    to podaję przepis na bezproblemową kompilację prgramu miernika:

    1. Z ikonki Mój komputer, wejdź w katalog (czyli folder) TP7 a następnie
    w podkatalog \BIN i najlepiej tam skopiuj program źrodlowy miernika.

    1. Natępnie złap ten program lewym przciskiem myszy i metodą DragAndDroup
    najedź na ikonkę pliku TPC.EXE (turbo pascal compiler) i puść
    klawisz myszy.
    Na końcu listy plików powinien się już pojawić plik .EXE miernika.

    Jeśli kompilator będzie domagał się jakichś bibliotek to poszukać
    je w katalogach TP7 i przekopiować do katalogu \BIN.

    Jak już ktoś podawał, pozbawiony błędow program TP7 można pobrać
    ze strony http://www.wiresslan.pl/darck/pliki/pascal-tools/tp70.part1.rar.
    Jest to pełna wersja TP7 i jest free.

    Nie ma potrzeby pobierania wszystkich plików TP7 jakie tam są.
    Pobrać wystarczy tylko 1 wersje (mniemam, że pozostałe są takie same).

    Istalować TP7 należy przez wciśnięcie w RAR-pakerze ikonki "wypakuj do"
    w domyślnym katalogu na C: z uwagi na brak pliku do własnej konfiguracji.
    Używając tej ikonki paker sam tworzy potrzebne katalogi i ładuje w nie
    odpowiednie pliki.

    -------------------------------------------------------------------------

    Osobiście wolę kupne mierniki, ale lubię też podłubać i poznawać.

    Rozwiązania komputerowe są dobre tam gdzie potrzebne są wyniki
    zapisywane w plikach na dysku.

    Zajrzałem na tą grupę bo szukam osoby, która zdradzi "NOU HAU" dotyczącego
    podpinania do USB urządzeń własnej konstrukcji. Jak narazie nie znalazłem
    takiej osoby. W necie, niestety, wiedza szczątkowa zupełnie nie przydatna
    dla początkującego praktyka.


    Nie zaprzeczajmy LPT i RS już się kończy. USB i Fire-Wire rządzi.



    Andrzej.
  • #13
    powa
    Level 16  
    jak rozumiem, nie chodzi ci o obsluge USB poprzez emulacje COM'a na scalakach typu "brigdr to..."?
  • #14
    Andy_Łodz
    Level 2  
    Właśnie.

    Jak się już zorientowałem to komputer trzeba teraz traktować
    prawie jak wewnętrzną sieć, są tam jakieś huby, poprzez które
    można uzyskiwać dostęp do urządzeń i inne zupełnie mi obce
    podejście do tych spraw.

    Oczywiście teraz elektronik to już chyba musi być informatykiem.

    Andrzej.
  • #15
    Andy_Łodz
    Level 2  
    Przepraszam za błędy w tekście "Maskowanie bitów".

    Poniżej poprawiona wersja.


    ------------------------------------------------------------


    MASKOWANIE BITÓW w pigułce.

    (Dla tych, którym sprawia trudność zrozumienie zagadnienia)




    PODSTAWY

    Liczby binarne - szybkie czytanie ich wartosci (dzisiętnych)
    polega na określeniu położenia ustawionego bitu (czyli logocznej 1).


    wartość dziesiętna -> 255 128 64 32 16 8 4 2 1
    ------------------------------------------------------------------------------------
    wartość binarna -> 0 0 0 1 0 0 0 0 0
    ====================================================================================
    wynik dziesiętny 32





    Pokaż binarnie liczbę 86:

    Zaczynamy od największej możliwej wartości, która mieści się tu między 128 a 64:

    wartość dziesiętna -> 255 128 64 32 16 8 4 2 1
    ------------------------------------------------------------------------------------
    wartość binarna -> 0 0 1 0 0 0 0 0 0
    ====================================================================================
    wynik dziesiętny 64


    i uzupełniamy kolejno następne bity: 32? - (63+32=96) za dużo więc utawiamy bit na 4
    pozycji (pozycje liczymy od prawej i od zera) czyli jedynka pod 16

    ====================================================================================
    pozycje bitów 8 7 6 5 4 3 2 1 0
    ====================================================================================

    wartość dziesiętna -> 255 128 64 32 16 8 4 2 1
    ------------------------------------------------------------------------------------
    wartość binarna -> 0 0 1 0 1 0 0 0 0
    ====================================================================================
    wynik dziesiętny 64 16

    mamy już 80, brakuje jeszcze 6


    wartość dziesiętna -> 255 128 64 32 16 8 4 2 1
    ------------------------------------------------------------------------------------
    wartość binarna -> 0 0 1 0 1 0 1 1 0
    ====================================================================================
    wynik dziesiętny 64 16 4 2

    i jest już 64+16+4+2=86 binarnie 001010110 lub 1010110


    Tak samo odczytuje się dziesiętny wynik z wartości bitowej liczby.



    ----------
    Następne zagadnienie - programiści posługują się liczbami szesnastkowymi bo
    ich zapis jest krótszy.

    Najbardziej praktyczne jest tutaj posłużenie się tabelką.
    Dzieli się liczbę binarną na grupy po 4 bity:

    (CI, którzy mieli już do czynienia z urządzeniami na wyświetlaczach siedmiosegmentowych wiedzą,
    że są to kody BCD dla deszfratorów)


    (Patrz fotografia tabeli kodów cyfrowych)



    wyswietlacze bin -> 0010 0001 1010 1110 czyli kod BCD
    wart. hexadecym. -> 2 1 A D zapis hex: 21 AD lub 21AD
    wart. dziesiętne -> 2 1 10 14

    inne przykłady:
    1111 1111 1111 1111 hex FF FF lub FFFF


    1111 0001 F1
    1111 0010 F2
    1111 0011 F3
    .
    .
    .
    1111 1010 FA
    1111 1011 FB


    ---------






    WŁAŚCIWY TEMAT - MSKOWANIE BITÓW

    Maska - to dziwne słowo ale mające swoje praktyczne uzasadnienie.

    Załóżmy, że mamy sąsiadkę, która ma extra córkę. Chcemy ją zobaczyć
    przez dziurkę od drzwi. Tych drzwi jest aż 8 i nie interesują nas inne
    jak właśnie tej córki, zresztą nie da się patrzeć jednocześnie przez
    kilka dziurek od drzwi. I ten wybór to właśnie zastosowanie maski.

    Jeśli chcielibyśmy zobaczyć czy na pozycji 5 w jakimś rejestrze w układzie
    scalonym jest ustawiony bit (czyli logiczna jedynka) to nie mamy innej
    możliwości jak zignorować wszystkie bity w rejestrze oprócz właśnie pozycji 5.

    Służy nam do tego instrukcja logiczna AND, której działanie jest następujące:

    jeśli porównujemy dwa wejścia w bramce AND to z praktyki już wiemy, że na wyjściu
    pojawi się wysoki poziom tylko wóczas gdy na obu wejściach bramki będzie napięcie
    odpowiadające logicznej 1.

    1 AND 1 = 1
    inne kombinacje:
    1 AND 0 = 0
    0 AND 1 = 0

    inna forma zapisu - pionowa:

    AND
    1 1 0 we1
    1 0 1 we2
    = = =
    1 0 0 wy


    a teraz na czterech cyfrach bitowych chcemy sprawdzić drugi od prawej bit w 4 bitowym rejestrze,
    czyli musimy dać wartość binarną 2 i stosujemy instrukcję AND, która właśnie pokaże nam napięcie
    na drugim od prawej bicie - i to jest właśnie nasza maska bo powoduje, że nieważne jest co jest
    na innych bitach rejestru niż to co jest na drugim od prawej.

    AND
    rejestr 1010
    nasza maska 0010 - tu porównywane są osobno i pionowo bity z każdej pozycji
    ====
    0010 = 2 => teraz (2 DIV 2) = 1, czyli (wynik DIV maska)
    to jest właśnie ta jedynka, na drugim od prawej
    bicie rejestru.
    (DIV to dzielenie 2/2=1).


    Inny przykład, zobaczmy co jest na 6 bicie ośmiobitowego rejestru
    (pozycje bitów rejestru oznacza się od prawej i od zera czyli 6 bit będzie siódmym bitem od prawej)

    rejestr 0011 0010
    nasza maska 0100 0000 - zauważ, że maska ma taką wartość (tu decymal 64), że ma tylko jedną jedynkę
    gdyby miała więcej jedynek to byłby oczywisty błąd i to dlatego
    ========= w maskach widzimy takie wartości jak 128, 16, 32, 64 bo mają jedną jedynkę.
    0000 0000 = 0 Robimy działanie: (rejestr AND maska)/wynik)=stan bitu
    liczymy dziesiętnie: (64 DIV 0) = 0
    więc na 6 bicie rejestru panuje logiczne zero.



    Zapis w Turbo Pascalu: jeśli (PORT[&2F8+4] AND 128) DIV 128 da nam wynik 1
    to oznacza, że na porcie 2F8 (czyli COM2) w jego trzecim rejestrze (+4 bo liczymy od zera)
    na siódmym bicie od prawej (128) jest napięcie - czyli panuje logiczna jedynka.

    ------------

    Oczywiście, że do czego służą poszczególne rejestry urządzeń czy układów scalonych trzeba gdzieś znaleźdź.
    I to jest właśnie sedno, że nie ma ludzi głupich są tylko niedoinformowani.
    Ale są także nieuważni i leniwi. Te ostatnie stwierdzenia odnoszą się do mnie.



    I to by było na tyle...


    Andrzej.
  • #16
    Jdsoul
    Level 23  
    Cześć !!!

    Metoda pomiaru zastosowana w tym mierniku wymusza niejako stosowanie portu RS-232, jako portu pomiarowego w trybie sterowania hardwarewego poszczególnymi pinami portu, nie zaś jako urządzenia DCE.

    Tego typu rozwiązanie jest genialne z poziomu dawnieszych maszyn, gdzie występował sprzętowy UART i "znane" były sposoby jego integracji z oprogramowaniem, np. Turbo Pascal i biblioteka portów.

    Ale...

    Nic nie stoi na przeszkodzie, żeby podobne rezultaty uzyskać nadal, traktując PC jako "Terminal" współpracujący z portem RS-232, przejściówką RS-232-USB, czy innym urządzeniem.

    Po drodze trzeba tylko zaimplementować emulator miernika z jakimś protokołem pomiarowym.

    Sama metoda pomiaru po stronie analogowej nie ulegnie zmianie, zostaje kwestia jakiegoś "ulubionego" mikroprocesorka i realizacji połączenia z PC.

    Odpada wówczas kwestia kalibracji oprogramownia w zależności od sprzętu, odpada kwestia oprogramowania interfejsu po stronie miernika, przycisków, wyświetlacza etc. Zostaje "goły" procek i kilka elementów elektronicznych :).
    Zarządzanie pomiarem dzieje się z programu "Terminala" dużego PC.

    Co więcej zastosowanie "ciekawego" złożonego w ilości możliwości procesora daje szansę na budowę "multimetru", czuli urządzenia do pomiaru większej ilości wielkości niż tylko C.

    Dodano po 15 [minuty]:

    Przykładowo można użyć, któregoś z przedstawicieli AT89C2051, AT89C4051.

    Podłączyć go układzie pomiaru częstotliwości oraz wykorzystać,
    port P2 do realizacji zmiany zakresu pomiarowego :).

    Co ciekawe istnieje prosta metoda przeniesienia
    programu Pascalowego z TP do 89C2051 -
    http://users.iafrica.com/r/ra/rainier/,
    więc dotychczasowa praca Jiří Sedláček'a nie pójdzie na marne :).

    Skoro już ktoś procedury pomiarowe opracował w "dużym" PC , dlaczego nie skorzystać z nich i nie zastosować w "mikroprocku".

    Do tego trzeba będzie dodać procedurę Write i Read , działającą na porcie RS-232 mikroprocka i zabawka gotowa :)

    A ile radochy :)