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

DS1821 - proszę o przykładowe procedury w BASCOM AVR.

Prodig 14 Lis 2006 13:59 4006 6
REKLAMA
  • #1 3223201
    Prodig
    Poziom 20  
    Posty: 487
    Pomógł: 4
    Ocena: 14
    Witam!

    Poszukuję przykładowych procedur napisanych dla DS1821 (nie dla DS1820) napisanych w BASCOM AVR.

    Szukałem ale nic ciekawego nie znalazłem.

    Pozdrawiam.
  • REKLAMA
  • #2 3262702
    witold16
    Poziom 13  
    Posty: 112
    Pomógł: 4
    Ocena: 1
    No własnie jak by np. procedura samego odczytu temeratury dla jednego czujnika bo mam 2 takie i nie moge uruchomic, a programy od ds1820 nie chcą działać.
  • REKLAMA
  • #3 4240379
    xifyh
    Poziom 20  
    Posty: 513
    Pomógł: 3
    Ocena: 66
    Również przyłączam sie do prośby o procdury. Nie moge uruchomić tego czujnika :/ gdy wywołuję funkcję 1wirecount() zwraca ona 0 :( Nie wiem już czy ten czujnik jest uszkodzony czy ja coś xle robie
  • #4 4242194
    zumek
    Poziom 39  
    Posty: 3352
    Pomógł: 695
    Ocena: 52
    xifyh napisał:
    ... Nie wiem już czy ten czujnik jest uszkodzony czy ja coś xle robie

    Może Twój DS , jest ustawiony do pracy w trybie termostatu.Spróbuj przełączyć go w tryb 1wire.

    Piotrek
  • REKLAMA
  • #5 4799183
    paciek74
    Poziom 13  
    Posty: 41
    Pomógł: 1
    Ocena: 9
    zumek napisał:
    xifyh napisał:
    ... Nie wiem już czy ten czujnik jest uszkodzony czy ja coś xle robie

    Może Twój DS , jest ustawiony do pracy w trybie termostatu.Spróbuj przełączyć go w tryb 1wire.

    Piotrek


    Również mam problemy z tymi układami. Wpisałem następujący kod ze strony http://www.qslnet.de/member/dg1xpz/elektronik/avr/ds1821.html :

    $regfile = "2313def.dat"
    $crystal = 3579545
    
    Config 1wire = Portd.6
    
    Dim Ar As Byte
    Dim Temperatur As Integer
    
    Lcd "DS1821 an PD.6"
    Wait 3
    Cls
    Lcd "Temp:"
    Do
      1wreset
      1wwrite &HEE
      Waitms 100
      1wreset
      1wwrite &HAA
      Ar = 1wread()
      1wwrite &H22
      Locate 2 , 1
      Temperatur = Ar
      If Temperatur > 127 Then
        Lcd "-"
        Temperatur = 256 - Temperatur
      Else
        Lcd " "
      End If
      Lcd Temperatur;
      Lcd " C "
      Wait 1
    Loop
    End
    

    do Attiny2313 oczywiście zmieniając pierwszą linię na

    $regfile = "attiny2313.dat"
    oraz
    Locate 1 , 6

    i nie chce działać. Wykorzystałem do prób płytkę testową AVT3500 bez układu U2. Wyjście z DS1821 DQ jest podłączone do PD.6 ale układ nie reaguje. Wyświetla tylko napis Temp:.
    Zrobiłem dla sprawdzenia programator wg opisu i schematu ze strony http://grzesiek21.republika.pl/termostat_ds1821.htm, i wszystko jest prawidłowo, ale nie chcę dla odczytu temperatury włączać kompa - mija się to z celem.
    Proszę o pomoc w tym temacie.
    Marcin

    Proszę umieszczać listingi programów w znacznikach "Code". [c_p]
  • REKLAMA
  • #6 4799566
    crazy_phisic
    VIP Zasłużony dla elektroda
    Posty: 2244
    Pomógł: 278
    Ocena: 131
    :arrow: paciek74 a masz pewność że układ korzysta z oscylatora 3579545Hz? Przestawiłeś fuse bity zegara?
  • #7 4799672
    paciek74
    Poziom 13  
    Posty: 41
    Pomógł: 1
    Ocena: 9
    crazy_phisic napisał:
    :arrow: paciek74 a masz pewność że układ korzysta z oscylatora 3579545Hz? Przestawiłeś fuse bity zegara?


    Tak Attiny2313 został ustawiony na taktowanie zewnętrznym kwarcem a wewnętrzny dzielnik częstotliwości /8 został wyłączony. Próbowałem podłączać DS-a do różnych portów i nic.

    Jak wykonuję polecenie:
    config 1wire= portd.6
    
    Do
       1wreset
       if err=0 then
          LCD "PP_OK" 
       else
          LCD "PP_err" ' j/w
       endif
       waitms 500
    Loop 
    


    wyświetla PP_OK czyli jest jakaś komunikacja.

Podsumowanie tematu

✨ Dyskusja dotyczy poszukiwania przykładowych procedur w BASCOM AVR do obsługi czujnika temperatury DS1821, różniącego się od DS1820. Użytkownicy zgłaszają problemy z uruchomieniem DS1821, m.in. brak działania funkcji 1wirecount() oraz niekompatybilność programów napisanych dla DS1820. Sugerowane jest sprawdzenie trybu pracy czujnika (1-wire vs. termostat) oraz poprawnej konfiguracji zegara mikrokontrolera. Przykładowy kod dla ATtiny2313 z wykorzystaniem 1-wire na porcie PD.6 został podany, jednak nie działa poprawnie na testowej płytce AVT3500. Potwierdzono komunikację z czujnikiem poprzez sygnał 1wreset i brak błędów (err=0), co wskazuje na poprawne połączenie sprzętowe i konfigurację taktowania (zewnętrzny kwarc, wyłączony dzielnik /8). Mimo to, odczyt temperatury nie jest realizowany, co sugeruje konieczność dalszej diagnostyki i dostosowania procedur do specyfiki DS1821.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA