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

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

zasoby 30 Kwi 2005 21:50 11841 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

    Fajne? Ranking DIY
    O autorze
    zasoby
    Poziom 23  
    Offline 
    zasoby napisał 784 postów o ocenie 432, pomógł 4 razy. Jest z nami od 2002 roku.
  • #2 1452326
    powa
    Poziom 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 1453442
    zasoby
    Poziom 23  
    około 2% tolerancji
    zapojeni oznacza doprowadzać przewodami, doprowadzać prąd
  • #4 1454876
    snake83
    Poziom 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 1457338
    kulysaw
    Poziom 14  
    Witam.Wygląda to obiecująco.Czy myślicie, że zadziała on na nowych komputerach???

    Pozdr
    kulysaw
  • #6 1458853
    enigma
    Poziom 13  
    kulysaw napisał:
    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 1471151
    Jurek56
    Poziom 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 1494626
    zasoby
    Poziom 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 1536905
    urbaniakadam
    Poziom 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 1633421
    Andy_Łodz
    Poziom 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 1633975
    powa
    Poziom 16  
    jak rozumiem, nie chodzi ci o obsluge USB poprzez emulacje COM'a na scalakach typu "brigdr to..."?
  • #14 1636844
    Andy_Łodz
    Poziom 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 1639002
    Andy_Łodz
    Poziom 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 5002578
    Jdsoul
    Poziom 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 :)
REKLAMA