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

Podłączenie DS1820 do AVT2550 - czujnik pokazuje stałą temperaturę 85°C

miroww 20 Wrz 2002 08:32 3462 6
  • #1 44921
    miroww
    Poziom 12  
    Posty: 18
    Witam

    Niedawno kupiłem mały "mikrokomputerek AVT 2550" oraz DS1820, chciałem zrobić urządzenie sterujące piecem węglowym. :D
    Wykonałem moduły wykonawcze do załączania i wyłączania dmuchawy oraz pompy wodnej. Napisałem krótki program który to obsługuje - działa super.
    Kolejny etap prac związany był z podpięciem czujnika i napisaniem programu. Po przeanalizowaniu helpów z Bascoma oraz innych programów obsługujących DS1820, napisałem program. Podłączyłem DS1820 i ku mojemu zdziwieniu na wyświetlaczu uzyskałem temp. 85,0 C pomimo zmian temperatury otoczenia temp. nadal wynosiła 85,0 C.
    DS1820 podpiąłem do masy i szyny danych tj. 1 i 2 nóżka, natomiast 3 nie jest podpięta.

    Mam teraz prośbę do grupowiczów, w czym może tkwić problem :?:
    Z góry dziękuję za pomocne odpowiedzi.
  • #2 44955
    wieczus
    Poziom 14  
    Posty: 85
    Pomógł: 6
    Ocena: 1
    czesc,

    mojemu zdziwieniu na wyświetlaczu uzyskałem temp. 85,0 C pomimo zmian temperatury otoczenia temp. nadal wynosiła 85,0 C....

    Nia pamietam dokladnie jak to jest z 1820 ale 85 wyglada mi na wartosc wpisywana bezposrednie po resecie termom.... . Po wydaniu rozkazu konwersji trzeba odczekac okolo 1s (dla 12bit) - jezeli tego nie zrobisz bedzie bledny pomiar. Co do 3 konc - nie pamietam jak jest z 1820 ale by pewnie dzialalo na 2 przewodach stosuje sie uklady zasilane pas.. (dopisek PAR) na koncu oznaczenia. Na czas transmisji 1wire koniecznie powylaczaj przerwania.

    pzdr Wieczus

    BDW. Koncze projekt podobnego urzadzenia - 2 strefy czasowe, regulacja temp. z zadana histereza + funkcja alarmu. Czujniki 1Wire (2 polaczone w sieci). Programowanie sterownika z PC. jak przetestuje udostepnie - bedziesz mial bez roboty
  • #3 44959
    miroww
    Poziom 12  
    Posty: 18
    Dziękuję za odpowiedz.
    Z miłą chęcią przeanalizowałbym Twój projekt.
    Co do mojego projektu to chciałbym go skończyć , a nie wysługiwać się innymi projektami.

    Dzisiaj wykorzystam Twoje wskazówki do ponownego uruchmienia DS1820.

    Dlatego podałem końcówki jaki są podłączone do AVT 2550, ponieważ w internecie znalazłem opis w którym gościu opisuje ,że połączył pin masy(1) z napięciem (3) do jednego kabla natomiast sygnałowy(2) do drugiego.
  • #4 45034
    Harry
    Poziom 12  
    Posty: 11
    No więc tak DS1820 umożliwia pomiar temperatury z rozdzielczością 9bitów (18B20 ma możliwość ustawiania rozdzielczości od 9 do 12 bitów jednak wiąże się to z dłuższym czasem konwersji max 750ms). Jeżeli na wyświetlaczu masz 85,0CEL to po prostu nie wywołujesz rozkazu konwersji temperatury (Conwert &H44), albo nie czekasz na zakończenie tej konwersji (po Conwert daj Waitms 250 i powinno pomóc), bo jest to jak już wspomniał wieczus wartość która znajduje się w RAMie po załączeniu zasilania albo resecie.
    Jak dobrze wczytasz się w instrukcję to tam opisany jest algorytm pomiaru temperatury
    A na koniec jeżeli nie zasilasz DSa z zewnętrznego źródła czyli pracuje on w tzw parasite power to końcówkę 3 (Vdd) podłącza się do masy!!!
    Powodzenia
    Harry
  • #5 45193
    miroww
    Poziom 12  
    Posty: 18
    Witam

    Przed chwilą skończyłem próby :D
    Dzięki Waszej pomocy (Harry i Wieczus) moge przejść do kolejnego etapu prac nad moim projektem.

    A oto wyniki moich prób:

    - połączyłem nóżkę 1 (masa) i 3 (zasilanie) do masy na AVT2550 , a nóżkę sygnałową do zasilania.

    - czas po konwersji miałem ustawiony na 350 ms wystarczyło zwiększyć na 550 ms i oto na LCD uzyskałem temp. otoczenia

    Jeszcze raz serdecznie dziękuję za pomoc.


    PS.
    Wieczus jak skończysz swój projekt daj znać , chciałbym zobaczyc jak to zrobiłeś. Jeśli będziesz zainteresowany moim to odezwij się na maila.
  • #6 54348
    elektryk
    Poziom 42  
    Posty: 11029
    Pomógł: 439
    Ocena: 241
    Odczyt 85*C jest zapisany po WLACZENIU zasilania. Temperature trzeba najpierw zmierzyc (chyba rozkazem 0x44)[do tego na czas pomiaru uklad pobiera wiecej pradu] a potem odczytac.Jesli chodzi o trzecia nozke to jest ona wykorzystywana do zasilania ,ale jest to opcjonalne poniewaz uklad moze pracowac w trybie PARASITE wtedy trzeba na czas pomiaru zewrzec linie magistrali do +5V (wystarczy maly tranzystor np BC237) [normalnie jest tam rezystor ok 5kilo] Jesli w swoim projekcie zalezy ci na ilosci przewodow to polecam ten uklad. Jesli chodzi o czasy pomiaru to te w dokumentacji (750ms przy 12 bit) sa dosc przesadzone (dla 12 bit u mnie chodzilu przy 620ms) ponadto mozna zrobic taki trick (wymyslony przezemnie) ze NAJPIERW odczytac a POTEM kazac mu zmierzyc, wtedy nie trzeba czekac po samo przeliczenie wartosci trwa chwile oraz mozna np wtedy obsluzyc klawiature
  • #7 63238
    pjaszcz
    Poziom 1  
    Posty: 1
    Sprawdz czy 1820 jest bespieczny do budowy pieca. Chyba mial problem ze po pewnym czasie stawal sie bardzo nie dokladny. Spytaj sie dystrybutora albo uzyj 1821

Podsumowanie tematu

LABEL_AI_GENERATED
Problem dotyczył podłączenia czujnika temperatury DS1820 do mikrokomputera AVT2550, gdzie na wyświetlaczu pojawiała się stała wartość 85°C niezależnie od rzeczywistej temperatury otoczenia. Przyczyną było nieprawidłowe wywołanie pomiaru temperatury – brak wysłania rozkazu konwersji (0x44) lub niewystarczający czas oczekiwania na jej zakończenie (minimum około 550 ms dla 12-bitowej rozdzielczości). Czujnik DS1820 pracował w trybie zasilania pasożytniczego (parasite power), co wymagało połączenia nóżek 1 (masa) i 3 (zasilanie) do masy, a sygnałowej (2) do linii danych. Zalecano wyłączenie przerwań podczas komunikacji 1-wire. Po zastosowaniu tych wskazówek uzyskano poprawny odczyt temperatury. Dodatkowo zwrócono uwagę, że wartość 85°C jest domyślną wartością po resecie układu i nie oznacza rzeczywistego pomiaru. W dyskusji pojawiła się także sugestia, by rozważyć użycie modelu DS1821 zamiast DS1820 ze względu na stabilność pomiarów w zastosowaniach grzewczych.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA