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

Termometr DS1820 w układzie dwuprzewodowym.

jacek13 17 Sty 2010 17:25 2803 10
REKLAMA
  • #1 7550098
    jacek13
    Poziom 15  
    Witam
    Wykonałem układ do pomiaru temperatury z wykorzystaniem DS1820 i ATtiny2313.
    Przy połączeniu trzyprzewodowym wszystko jest OK. Pomiar poprawny.
    Chcę jednak zmniejszyć ilość przewodów i podłączyć DS1820 w układzie dwuprzewodowym. Połączyłem wyprowadzenie "VCC" DS1820 z wyprowadzeniem "GND". Równolegle do rezystora 4,7kom podciągającego linię "DQ" dołączyłem tranzystor BC558, którego bazę przez rezystor 10kom połączyłem z dodatkowym portem "A.0". Port ten na czas pomiaru temperatury ma stan "zerowy" t.j. rezystor 4,7kom jest zwarty. Moim zdaniem powinno wszystko działać poprawnie, a jednak pomiar temperatury nie jest dokonywany. Gdzie jest błąd ? Proszę o pomoc.
    Oto fragment programu:

    
      1wreset                                                   'reset
      1wwrite &HCC                                              'jeden układ
      1wwrite &H44                                              'dokonaj pomiaru
      porta.0 = 0                                                 'zwarcie 4,7kom
      Waitms 750                                                'zatrzymanie na czas pomiaru
      porta.0 = 1                                                 'likwidacja zwarcia rezystora 4,7kom
      1wreset                                                   'reset
      1wwrite &HCC                                              'jeden układ
      1wwrite &HBE                                              'polecenie odczytu
      Odczyt = 1wread(2)                                     'odczyt temperatury
    
    


    inventco.eu - proszę poprawić post.
  • REKLAMA
  • #2 7550894
    ShEvU_elektro
    Poziom 25  
    Tranzystor jest zbędny. Linię Vcc jak i GND łączysz razem do masy, a linię DQ podciągasz do Vcc. Ot cała filozofia :)
  • #3 7551020
    jacek13
    Poziom 15  
    Tranzystor musi być, aby w chwilach odczytu gdy pobierany jest przez DS1820 większy prąd, linia DQ była połączona bezpośrednio z zasilaniem - tak jest wymagane przez datasheet DS1820. Na stałe natomiast linia DQ nie może być połączona z zasilaniem, bo nie będzie komunikacji pomiędzy DS1820 a procesorem. Dlatego tranzystor jest w odpowiednich chwilach włączany przez procesor.
  • REKLAMA
  • #4 7551090
    ShEvU_elektro
    Poziom 25  
    Tak? to dlaczego od roku działa mi stacja pomiaru temperatury złożona z 10 czujników?



    W nocie jest schemat z tranzystorem, ale uwierz że działa bardzo dobrze bez niego.
  • REKLAMA
  • #5 7551127
    jacek13
    Poziom 15  
    To masz podłączenie niezgodne z specyfikacją DS1820.
    Jeżeli połączyłem linię "VCC" do "GND" bez tranzystora, to nie ma odczytu temperatury.
    Gdy linia "VCC" połączona jest z zasilaniem +5V, to odczyt temperatury jest.
    Jaki masz rezystor "podciągający" ?
  • #6 7551146
    ShEvU_elektro
    Poziom 25  
    Rezystor ma 4,7kOhm. Gdyby nie działało użyłbym MOSFET-a. Gdzie łączysz je razem? U mnie wszystkie czujniki maja połączone razem Vcc i Gnd razem i dopiero wtedy dwa druty do uC, przy uC 4,7kOhm-a do Vcc i funga. Najdalszy czujnik jest na kablu o długości około 25m.
  • REKLAMA
  • #7 7551351
    jacek13
    Poziom 15  
    Sam się wpuściłem w "maliny".
    Najpierw przylutowałem rezystor podciągający bezpośrednio do wyprowadzeń DS1820 i pociągnąłem trzy przewody do uc. I wtakim układzie pomiar był OK.
    Potem zwarłem przewód "VCC" z "GND" przy uc i w ten sposób zlikwidowałem podciągnięcie przez rezystor.
    Po prawidłowym połączeniu faktycznie wszystko działa bez tranzystora - po co w takim razie jest tranzystor w nocie DS1820 ?
    Dzięki wszystkim za zaangażowanie. Może przy okazji ktoś skorzysta z tych informacji.
  • #8 7551724
    ShEvU_elektro
    Poziom 25  
    No widzisz :) Poza tym w nocie jest wyraźnie napisane że ten tranzystor ma być włączany tylko na maksymalnie 10usec
  • #9 7551930
    jacek13
    Poziom 15  
    Z tym czasem to nie tak.
    Bezpośrednie zasilanie linii "DQ" musi nastąpić w czasie nie dłuższym niż 10us (max) po convert T [44h] i musi trwać przez cały czas konwersji (t CONV) t.j. 750ms.
  • #10 7552013
    ShEvU_elektro
    Poziom 25  
    Masz rację :) Nie doczytałem :)
  • #11 7552049
    jacek13
    Poziom 15  
    I tym sposobem wyjaśniliśmy sobie ten temat.
    Po to właśnie jest forum.
    Cześć. Miłych snów.
REKLAMA