Elektroda.pl
Elektroda.pl
X
Relpol
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

ATINY2313 - Zmiana z DS18S20 na DS1820

grzegorz.d3 27 Gru 2012 21:37 4677 36
  • #1 27 Gru 2012 21:37
    grzegorz.d3
    Poziom 14  

    Witam mam wsad do termostatu z AVT 5363 .
    Chciałbym zmienić z DS18S20 na DS1820, czy jest to możliwe?

    0 29
  • Relpol
  • #2 28 Gru 2012 10:01
    Piecia
    Poziom 14  

    Spróbuj podmienić powinno działać.. Z tego co pamietam rejestru są takie same i podmianka bez zmian w sofcie powinna przynieść rezultat..
    Pozdrawiam

    0
  • #3 28 Gru 2012 19:51
    grzegorz.d3
    Poziom 14  

    To co mam pozmieniać

    Code:
    '#####################################################################################
    

    Sub Inicjuj_pomiar
      1wreset                                                   'Reset magistrali
      1wwrite &HCC                                              'Polecenie: Skip ROM
      1wwrite &H44                                              'Polecenie: Convert T
    End Sub

    '#####################################################################################

    Sub Odczytaj_pomiar
      1wreset                                                   'Reset magistrali
      1wwrite &HCC                                              'Polecenie: Skip ROM
      1wwrite &HBE                                              'Polecenie: Read Scratchpad
      Tmierzona = 1wread()                                      'Odczytujemy tylko jeden bajt -> wartość temperatury
      Shift Tmierzona , Right , 1                               'Pomijamy pół stopnia
    End Sub

    '#####################################################################################

    0
  • #4 31 Gru 2012 12:33
    Piecia
    Poziom 14  

    poszukaj różnic w MEMORY FUNCTION EXAMPLE. Wydaje mi sie ze w komendach są dodatkowe funkcje resetu i odczytu aktywności.. Umieść cały kod to będzie łatwiej sprawdzić..
    pozdrawiam

    0
  • #5 31 Gru 2012 13:49
    grzegorz.d3
    Poziom 14  

    Proszę bardzo

    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod

    0
  • #6 31 Gru 2012 13:50
    slx
    Poziom 18  

    Od strony programowej głowna różnica to czas konwesji temperatury. Dla DS1820 było 500ms dla DS18S20 jest 750ms, więc zmień w programie czas czekania na pomiar i powinno działać.

    0
  • #7 31 Gru 2012 15:10
    grzegorz.d3
    Poziom 14  

    A jak to mam zmienić " czas czekania na pomiar"

    0
  • #8 31 Gru 2012 15:17
    yokoon
    Poziom 28  

    Podałem Ci link do gotowego programu :

    termometr na ds1820 - programy bascom - zdrzala - Chomikuj.pl

    0
  • #9 31 Gru 2012 15:23
    Piecia
    Poziom 14  

    Wydaje mi się że brakuje Ci resetu magistrali po inicjalizacji termometru..
    I dodatkowo co kolega napisał wcześniej zmien czas oczekiwania na 750ms
    Tu masz przyklad obsługi:
    http://www.micropik.com/PDF/ds1820.pdf

    pozdrawiam

    0
  • Relpol
  • #10 31 Gru 2012 15:36
    grzegorz.d3
    Poziom 14  

    Po zmianie na 750ms dalej nie działa.

    0
  • #12 31 Gru 2012 15:56
    slx
    Poziom 18  

    Jak pisałem poprzednią odpowiedź to nie widziałem jeszcze kodu programu - no nie zbyt elegancko to napisane.
    Tak na szybko - powinno działać

    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod
    Tutaj chyba dość oczywiste

    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod
    Tutaj daj Waitus 11, bo 750ms/500ms*7=~11

    0
  • #13 01 Sty 2013 17:35
    grzegorz.d3
    Poziom 14  

    Próbowałem to jakoś powklejać wskazało na wyświetlaczu20stpni i tyle nie mierzy temperatury.

    Code:
    '###################################################################
    
    Sub Inicjuj_pomiar
    If Clock = 0 Then Inicjuj_pomiar
      1wreset                                                   'Reset magistrali
      1wwrite &HCC                                              'Polecenie: Skip ROM
      1wwrite &H44                                              'Polecenie: Convert T
    End Sub

    '#####################################################################################
    Sub Odczytaj_pomiar
    If Clock = 65535 Then Odczytaj_pomiar
      1wreset                                                   'Reset magistrali
      1wwrite &HCC                                              'Polecenie: Skip ROM
      1wwrite &HBE                                              'Polecenie: Read Scratchpad
      Tmierzona = 1wread()                                      'Odczytujemy tylko jeden bajt -> wartość temperatury
      Shift Tmierzona , Right , 1                               'Pomijamy pół stopnia
      Incr Clock
       Waitus 11
    End Sub

    0
  • #14 01 Sty 2013 21:19
    zumek
    Poziom 39  

    slx napisał:
    Jak pisałem poprzednią odpowiedź to nie widziałem jeszcze kodu programu - no nie zbyt elegancko to napisane.

    "Najciekawsze" jest to, że opis tego kitu odnosi się do DS1820(czas konwersji 500ms), a w treści artykułu widnieje jak byk DS18S20. Ba, nawet komentarz w kodzie mówi o DS1820 i teoretycznie, ten kit powinien współpracować z DS1820.
    Tyle teoria, a co w praktyce :?: Ano autor programu wstawił zbędne "waitus 7" w pętli głównej, a zapomniał, że 1 "obrót" pętli głównej też zajmuje "trochę czasu" mikrokontrolerowi.
    Obliczyłem, że minimalny czas wykonania się pętli głównej, to około 90 taktów zegara systemowego, a więc łatwo obliczyć ,że pomiędzy wysłaniem polecenia konwersji do DS-a, a odczytem z niego temperatury, upływa 65535*90uS, więc te "waitus 7" , to tylko taki ... kwiatek do kożucha :D
    Według mnie, nie ma różnicy czy podłączymy do tego kitu DS1820, czy DS18S20 - oba powinny działać.

    A więc drogi autorze tematu, jest wielce prawdopodobne,że to nie program w uC jest winien temu, że ten kit ci sprawia kłopoty.

    0
  • #15 01 Sty 2013 21:52
    grzegorz.d3
    Poziom 14  

    Wszystko zostało zmontowane zgodnie ze schematem i próbowałem innym wsadem sam termometr i wszystko działa a jak wgram soft termostatu nie działa na wyświetlaczu widnieje tylko napis -1 I +1 .

    Dodano po 17 [minuty]:

    A na termometr ds 18b20 tez będzie chodził .

    0
  • #16 01 Sty 2013 22:00
    zumek
    Poziom 39  

    grzegorz.d3 napisał:
    Wszystko zostało zmontowane zgodnie ze schematem i próbowałem innym wsadem sam termometr i wszystko działa a jak wgram soft termostatu nie działa na wyświetlaczu widnieje tylko napis -1 I +1 .


    To wygląda tak, jakbyś trzymał wciśnięty przycisk "Histereza"

    grzegorz.d3 napisał:

    A na termometr ds 18b20 tez będzie chodził .


    Po dokonaniu kilku poprawek - owszem.

    0
  • #17 01 Sty 2013 22:09
    grzegorz.d3
    Poziom 14  

    Nie przycisk nie jest wciśnięty .
    To jakie te poprawki co mam pozmieniać .

    0
  • #18 01 Sty 2013 22:23
    zumek
    Poziom 39  

    grzegorz.d3 napisał:
    Nie przycisk nie jest wciśnięty .
    ...

    No to go wciśnij na chwilę.

    0
  • #19 01 Sty 2013 22:28
    grzegorz.d3
    Poziom 14  

    Nie nic nie pomaga.

    0
  • #20 01 Sty 2013 22:37
    zumek
    Poziom 39  

    grzegorz.d3 napisał:
    Nie nic nie pomaga.

    Cudów nie ma, a skoro po włączeniu widzisz ekran z histerezą, tzn, że pin PIND.3 mikrokontrolera jest w stanie niskim(zwarty do masy).
    Sprawdź czy czasem przy wlutowywaniu, nie obróciłeś przycisku "histereza" o 90 stopni.

    0
  • #21 01 Sty 2013 22:44
    grzegorz.d3
    Poziom 14  

    Nie wszystko jest ok .
    A czy dużo jest przeróbek na ds18b20 .

    0
  • #22 02 Sty 2013 21:38
    zumek
    Poziom 39  

    grzegorz.d3 napisał:
    Nie wszystko jest ok .

    A może chodziło Ci , że "Nie, wszystko jest ok" :?:
    grzegorz.d3 napisał:
    A czy dużo jest przeróbek na ds18b20 .

    Co Ci po przeróbce, jeśli nadal będziesz widział to:
    ATINY2313 - Zmiana z DS18S20 na DS1820

    0
  • #23 02 Sty 2013 22:03
    grzegorz.d3
    Poziom 14  

    Problem rozwiązany było tak jak mówiłeś PIND.3 był zwarty do masy na ścieżce .Tylko teraz coś moje desy1820 są chyba uszkodzone bo pokazują na innym termometrze 10 stopni przy 22 w pokoju.
    Ale mam dwa desy 18b20 i są ok bo sprawdzałem .
    I kolejne moje zapytanie jak z tymi przeróbkami na ds18b20 .
    Czy trzeba pozmieniać
    Waitms 7
    Waitms 500
    I co jeszcze.

    0
  • #24 04 Sty 2013 21:07
    zumek
    Poziom 39  

    grzegorz.d3 napisał:
    Witam ponawiam moje pytanie co mam pozmieniać .


    Skoro już działa oryginalny kod, to podłącz DS1820 lub DS18S20 i sprawdź czy termostat działa prawidłowo.

    0
  • #25 23 Paź 2014 19:34
    emcom5
    Poziom 10  

    Mam okazję przetestować powyższy kod programu i w aktualnej formie nie współpracuje z DS18B20.

    Po dokonaniu modyfikacji w jednym miejscu zaczął poprawnie pokazywać temperaturę i zmiana typu zadeklarowanej zmiennej Tmierzona z Byte na Word

    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod


    Pobieramy 2 bajty, a następnie przesuwamy o cztery.

    Program nie potrafi poprawnie zmierzyć temperatury ujemnej.

    0
  • #26 24 Paź 2014 22:26
    zumek
    Poziom 39  

    emcom5 napisał:
    ... i zmiana typu zadeklarowanej zmiennej Tmierzona z Byte na Word

    Błąd:
    1. WORD jest zmienną bez znaku.
    2. Nie dziel logicznie, tylko arytmetycznie.

    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod

    0
  • #27 27 Paź 2014 09:44
    emcom5
    Poziom 10  

    Dziękuje za uwagi.

    Nie zajmuje się natywnie programowanie w BASCOMie (pierwsze spotkanie). A poprawki jakie zaproponował były wykonane na potrzeby uruchomienia układu.

    Kod po moich poprawka i uwzględniających część uwag ZUMEK-a (chodzi o typ zmiennej z Word na Integer)

    Funkcje dodane do regulatora;
    1. obsługa czujników temperatury serwii DS nie ważne na wersję, sterowanie odbywa się za pomocą pinu "D1" w zależności czy jest podpięty do masy czy do zasilania,
    2. wyświetlanie aktualnej temperatury na zamianę z temperaturą zadana,
    3. automatyczne wyjście z regulacji histerezy do ekranu głównego.

    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod


    ZUMEK nie mogłem skorzystać z twoje rady w sprawie dzielenie gdyż zajmuje za dużo pamięci.

    0
  • #28 27 Mar 2015 11:03
    kejza
    Poziom 12  

    Witam kolegów, właśnie poskładałem termostat avt 5363 wszystko działa poprawnie jednak do pełni szczęścia brakuje mi wskazania aktualnej temperatury. Próbowałem wgrać soft który zamieścił emcom5 jednak podczas programowania wyskakuje błąd. Może ma ktoś działający program który pokazuje aktualną temperaturę.

    0
  • #29 31 Mar 2015 23:15
    emcom5
    Poziom 10  

    Witam,

    Siedziałem, siedziałem i jeszcze raz siedziałem czemu ten program głupio pracuje. Aż w końcu postanowiłem go "przepisać" na gcc. I jak narazie działa. Test był skromy jakieś 12h pracy, ale wyświetla mi prawidłowo temperaturę i załącza stycznik.

    Jak odszukał gdzieś programik to go podrzucę.

    PS. po przepisaniu z kilku rzeczy musiałem zrezygnować.

    Dodano po 14 [minuty]:

    Hej

    Ostatnia wersja jaką stworzyłem tylko nie pamiętam na którą wersję DS-a.

    Termostat parametry techniczne:
    - zakres od 0 do max DSa (to znaczy jeśli będzie -5 to wyświetli 5)
    - histereza 0 - 5 st C
    - nastaw temp (już dobrze nie pamiętam) max 50 st C

    - na wyświetlaczu nie wyświetla się (w porównaniu do oryginału) nie wyświetla się stan pracy stycznika

    - i jeszcze coś chyba ale już nie pamiętam.

    0
  • #30 02 Kwi 2015 09:01
    kejza
    Poziom 12  

    emcom5 dzięki za program, wrzucę go do procesora i przetestuję.

    0