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

4x DS18b20 +LCD = Termometr

Duch__ 20 Sty 2010 17:13 293788 493
  • #301 20 Sty 2010 17:13
    zeeuss86
    Poziom 10  

    Z tego co mi wiadomo to najlepiej żeby podczas programowania nic nie było podłączone do nóżek 17, 18, 19 oprócz programatora. Może więc w programie i na płytce zmienić wykorzystywane nóżki uC? Moja wiedza o uC jest w najlepszym razie skromna i nie wiem pod które ewentualnie nóżki miałbym się podpiąć. Wiem że 23-28 są analogowe, więc może 3-6 na D4-D7 wyświetlacza, 12 na E i 13 na RS? To by chyba rozwiązało problem. Może jest lepsze rozwiązanie?

  • #302 21 Sty 2010 08:33
    Dariusz Goliński
    Poziom 22  

    Nie wiem, nie znam się, zarobiony jestem.
    Opisuję tylko to co faktycznie sprawdziłem.
    Zrobiłem kilka układów i jeszcze nie spotkałem się z tym problemem. Na pewno się spotkam ale jeszcze się nie spotkałem.
    Wcześniej programowałem za pomocą 4 rezystorków i LPT, ale 2 tygodnie temu dodałem
    74HC244 i też gada.

  • #303 22 Sty 2010 13:15
    sziomal
    Poziom 9  

    Witam
    Wczoraj zmontowałem taki układzik z 4 czujnikami ale na atmega16 bo taki akurat miałem w domu i niestety nie wykrywa mi czujników a LCD działa. Zmieniłem deklaracje procesora na m16 i dalej to samo co może być przyczyną ??

  • #304 22 Sty 2010 18:20
    IMEX
    Poziom 20  

    A mi wyświetla 85,00 i nic więcej.
    Mam rezystor do DS-a i nic to nie daje.

  • #305 22 Sty 2010 22:36
    sziomal
    Poziom 9  

    sprawdź czy masz dobrze ustawioną wartość zegara 16...

  • #306 22 Sty 2010 23:29
    IMEX
    Poziom 20  

    tzn ma być 16 MHz czy ile

    powiem tak mam kwarc 16 i w programie dalem 16 i nic to nie dalo -
    ustawilem na 1 MHz osc i w programie na 1 i dalej to samo
    dalem 8 i dalej to samo 85 i koniec
    przeczytalem caly post i nikt tego nie rozwiazał

  • #307 23 Sty 2010 08:46
    Dariusz Goliński
    Poziom 22  

    85 oznacza że układ nie przesyła ci temperatury, sprawdź czujniki czy aby DS18B20 są dobrze podłączone o ile to program ducha.
    Wystaw program w załączniku.

  • #308 23 Sty 2010 13:38
    IMEX
    Poziom 20  

    No i problem rozwiazany z 85

    Oczywiście czujniki sprawne - jest to błąd inicjalizacji temperatury

    wystarczy w programie wstawić Wait 1 i po problemie - odczekanie tej sekundy daje czas na odebranie danych przez 1wire i przekazanie dalej na lcd

    Podaje w 100% sprawny kod na 4 czujniki - ale potrzebuje przerobić część identyfikacji żeby wykluczyć programowanie na pozostale kanaly tego samego czujnika - ma pozostac tam poprostu 0.0 oC

  • #309 24 Sty 2010 16:54
    savve
    Poziom 9  

    Witam!

    Ostatnio zacząłem interesować się tym tematem i chciałbym zbudować taki termometr, ale chciałem go oprzeć na układzie atmega16- ze względu na większą ilość pamięci. Mam już schemat wykonany, ale nie jestem pewien czy wszystko jest dobrze podłączone.

    4x DS18b20 +LCD = Termometr

    Byłbym wdzięczny za pomoc.

  • #310 25 Sty 2010 11:06
    IMEX
    Poziom 20  

    savve - to jest tylko schemat poglądowy

    podaj konkrety i do zegara mega 16 - co ty tam zaprogramujesz - atmega 8 zalmuje z bajerami na 4 czujniki 30% a jeszcze ile da sie tam wrzucić - mega 16 to bajer i duza kosc - a moze 32 to gigant pamieci

    pozdrawiam
    podaj konkrety dla pomocy

  • #311 26 Sty 2010 20:27
    savve
    Poziom 9  

    Chcę po prostu zastosować ten cały układ do pomiaru temperatury podzespołów PC i jednocześnie dodać układ kontroli obrotów 4 wentylatorów niezależnie od siebie (tryb auto i manual). Dlatego nie byłem pewien czy wystarczy mi pamięci. Mój schemat oparłem na schematach we wcześniejszych postach. Pominąłem tylko stabilizator napięcia- 5V będę miał z zasilacza w kompie. Ale nie byłem pewien czy wszystko dobrze podłączyłem.

    Ale z tego co mi napisałeś wynika, że spokojnie powinna mi starczyć AtMega8.

  • #312 28 Sty 2010 07:44
    pepulos
    Poziom 10  

    Witam.
    na początku informacja żem zielony w tym temacie, ale mam pytanie
    czy na tym układzie da się zrobić obsługę zapisu pomiaru gdzieś?,
    np na kartę SD, albo do jakiegoś epromu, ale do epromu trzeba się podłączać kompem
    żeby zczytać pomiary.
    Ja bym to widział tak, że pomiary na wyświetlacz tak jak są,
    a zapis np. co 0,5 godziny.
    da się? :)

    Pozdrawiam
    PePe

  • #313 29 Sty 2010 01:03
    IMEX
    Poziom 20  

    Witam ponownie serdecznie

    Na podstawie tego DIY postanowiłem zrobić coś własnego- inni o to pytali ludzi

    Więc tak
    Konstrukcja posiada 4 x DS plus LCD 2x16 i Alarm beeper

    Sterowanie jest za pomocą 3 przycisków "+" "-" "menu"
    Programowanie DS-ów z poziomu menu

    Sygnalizacja jest za pomocą diod led i bepera realizującego funkcję Alarmu
    Led 1 sygbalizująca alarm kanału P - oraz dioda sygnalizująca pracę Przekaźnika (triaka)
    kolejne 2 wyjścia dla P to Beeper i Przekaźnik

    Led 2 sygbalizująca alarm kanału B - oraz dioda sygnalizująca pracę Przekaźnika (triaka)
    kolejne 2 wyjścia dla B to Beeper i Przekaźnik

    A tak wygląda widok LCD
    Ekran powitalny
    4x DS18b20 +LCD = Termometr

    Menu kolejne bez zapisanych do pamięci DS-ów
    4x DS18b20 +LCD = Termometr

    Menu podczas programowania 4 kolejnych DS-ów
    4x DS18b20 +LCD = Termometr
    4x DS18b20 +LCD = Termometr 4x DS18b20 +LCD = Termometr 4x DS18b20 +LCD = Termometr

    A tak wygląda menu z zaprogramowanymi DS-ami
    4x DS18b20 +LCD = Termometr

    jest jedna i ta sama temp a to dlatego że zaprogramowałem tylko jednego DS-a na wszystkie 4 kanały

    literowka jest dowolna ale oznaczenia z życia wzięte i oznaczone tak
    P-piec B-bojler Z-temp zewnętrzna W-temp wewnętrzna

    Kolejne menu to programowanie kanału P
    u góry to zakres temperatur załączenia Przekaźnika a w dolnej części załączenia alarmu - wstępnie zaprogramowane na 25oC - zakres ustawień to 1-99oC
    4x DS18b20 +LCD = Termometr 4x DS18b20 +LCD = Termometr

    kolejne 2 menu to włączenie lub wyłączenie Przekaźników - Beepery nadal będą działały jak dotychczas
    4x DS18b20 +LCD = Termometr 4x DS18b20 +LCD = Termometr 4x DS18b20 +LCD = Termometr 4x DS18b20 +LCD = Termometr

    Poruszanie sie po menu jest za pomocą sw MENU - wielokrotne nacisnięcie przechodzimy dalej, Natomiast jak chcemy zmienić wartość ustawień wciskamy w danym menu przycisk + lub - i miga nam kursor i zmieniamy ustawienia stopni C w dol lub gore
    Programowanie DS-ów jest na zasadzie takiej
    np - programujemy P - wciskamy przycisk menu i trzymamy go, wciskamy reset lub włanczany zasilanie - trzymamy przycisk menu aż ukaże sie komunikat o zapisanym czujniku
    4x DS18b20 +LCD = Termometr

    i tak kolejno 3 pozostałe - "-" i reset lub zasilanie "+" i rset lub zasilanie i ostatni wciskamy jednoczesnie "+ i -" i reset lub zasilanie

    Beeper daje sygnał sekundowy - musi być z generatorem własnym

    hmm co więcej
    Prosze o opinie sugestie i krytyke

    Niestety nic wiecej nie weszlo bo jest zajęte 99% pamięci atmega 8

    kolejne funkcję dopisze ale przy użyciu Atmega 16 lub 32
    wiecej pamieci i wiecej pinów

  • #315 05 Lut 2010 21:44
    savve
    Poziom 9  

    Wracając do tego układu zbudowanego na Atmega16.

    Chciałem po prostu podpiąć wszystkie elementy analogicznie do schematu z wcześniejszych postów:

    4x DS18b20 +LCD = Termometr => 4x DS18b20 +LCD = Termometr

    Wydaje mi się, że powinno być dobrze. Nie jestem tylko pewien czy dobrze jest wyprowadzone wejście na czujniki DS18b20 (PD5) i wyjście służące do kontroli wentylatorów (PA0).

  • #316 06 Lut 2010 09:42
    zgf1
    Poziom 23  

    @IMEX
    Moze wrzucisz schemat i kod zrodlowy programu?
    Bede niedlugo robil taki termometr wiec chetnie sie pobawie.

  • #317 06 Lut 2010 20:56
    akanaf
    Poziom 15  

    Gdzie w programie przesunąć znak stopni, znak minusa i temperatury?
    Ponieważ gdy w nocy jest poniżej zera, to cała temperatura przesuwa się o jedno miejsce (tak jak na 1 obrazku). A gdy w dzień jest temperatura dodatnia powraca do poprzedniego miejsca, i są wtedy pojawiają się dwa znaki stopni(jak na 2 obrazku).
    Jak to zmienić? Bo chcę przesunąć temperaturę do samego końca, aby zyskać jeden wolne miejsce na znak i żeby wyeliminować problem z podwójnym znakiem stopni.

    4x DS18b20 +LCD = Termometr4x DS18b20 +LCD = Termometr

  • #318 07 Lut 2010 12:13
    IMEX
    Poziom 20  

    Najprościej to dodać spacje na końcu.

    A jeśli chcesz, żeby minus był wcześniej to trzeba dodać zależność, że jak będzie - z przodu przesuń o jedno pole - ja tam mam u siebie zrobione.

  • #319 22 Lut 2010 18:50
    marcinwrc2
    Poziom 12  

    Witam.
    Zrobiłem właśnie ten termometr działa super.Tylko jest mały problem na wsadzie od kolegi Duch wszystko jest ok, zaś na wsadzie kolegi Imex pulsuje wyświetlacz co 1sek.Zrobiłem go na wyś. 2x16 i działa tylko na zegarze Atmegi.
    Co trzeba przekombinować?

  • #320 22 Lut 2010 19:10
    Gonza
    Poziom 27  

    Termometr Kolegi Ducha działa na wewn. oscylatorze 1MHz (w związku z czym nie trzeba nic kombinować z fusebitami w przypadku nowego uC prosto ze sklepu) natomiast w kodzie Kolegi IMEX widzę deklarację częstotliwości oscylatora 16MHz, czyli domyślam się, że jego Atmega działa z kwarcem 16MHz, który musiałbyś dołączyć do swojej Atmegi oraz odpowiednio ustawić fusy.

  • #321 11 Mar 2010 12:11
    piotruuch
    Poziom 14  

    A czy w tym układzie nie ma kwarcu? I co się stanie jak podłącze 3 czujniki?

  • #322 11 Mar 2010 21:07
    pepulos
    Poziom 10  

    To zależy ile zadeklarujesz czujników w programie, a dokładnie ile się ma wyświetlać.
    jak w program jest na 4xDS to ten z najniższym adresie będzie wyświetlany 2 razy (z tego co pamiętam),
    a jak program na 2xDS to ten ostatni zostanie pominięty.
    --
    Pozdrawiam
    PePe

  • #323 12 Mar 2010 16:42
    piotruuch
    Poziom 14  

    Witam!
    Mam jeszcze pytanie do tej wypowiedzi:

    Cytat:
    Tam jest użyte słowo "może" co znaczy że błąd może wystąpić ale nie musi. Ja u siebie nie dostrzegam błędów, porównywane z kilkoma termometrami rtęciowymi.

    Dodaje fotki i wsad nowej wersji termometru oraz schemat i wzór PCB. Dodałem obsługę 2 przycisków (wyświetlanie temp. maksymalnej i minimalnej, oraz resetowanie tych wartości). Płytka PCB powstała w Eaglu. Panel przedni w Corelu.

    4x DS18b20 +LCD = Termometr

    4x DS18b20 +LCD = Termometr

    4x DS18b20 +LCD = Termometr

    Wartość MAX i MIN dla każdej z temperatur przechowywana jest w zmiennej SRAM-owej. Soft może zawierać jeszcze błędy które postaram się w najbliższym czasie wyeliminować!!! Jak będzie mi się chciało to może zrobię wykres temperatury przy pomocy bargrafa.


    Wyeliminowano błąd pokazywania prawidłowej temperatury po kasowaniu pamięci SRAM-owej. Wsad poniżej jest poprawiony


    Ta wypowiedz jest w 7 zakładce (stronie) napisana przez Ducha.. Czy ktos wykonywalem ten projekt? Czukam jaki ma być tam wlutowany kwarc, R3, C1 i C2, co jeżeli kondensatiora C3 10mikro wlutuje 100mikro lub 47mikro?

    pozdrawiam prosze o odpowiedz bo od autora nie dostalem...

  • #324 12 Mar 2010 17:10
    Gonza
    Poziom 27  

    Kwarc wg. programu powinien mieć 8MHz, kondensatory C1 i C2 daj 22pF, R3 może być 10k. W miejsce C3 możesz dać większy kondensator.

  • #325 13 Mar 2010 10:47
    piotruuch
    Poziom 14  

    A co jeżeli dam kwarc 4MHz lub 12MHz? Mogę zamienić kwarc na inny?

    Pozdrawiam i proszę o odpowiedz.

  • #326 13 Mar 2010 11:27
    Duch__
    Poziom 31  

    Oczywiście, musisz tylko zmienić wtedy fusebity na odpowiedni kwarc, oraz zadeklarować to w programie.

  • #327 13 Mar 2010 11:44
    piotruuch
    Poziom 14  

    ok. A lepszy kwarc 4mhz czy 12mhz? W programie wiem jak zmienic... A czy ktos moglby mi pokazac jak maja byc ustawione fusebity zeby pasowalo do tego wybranego lepszego kwarcu (4mhz lub 12mhz...)

    Bede bardzo wdzieczny! I pytanie do ducha Te przyciski dwa są podłączane do gniazda na płytce poprzez 3 tzn goldpiny tak?

    Pozdrawiam

  • #328 16 Kwi 2010 09:23
    luki55
    Poziom 20  

    Witam
    Jak wyświetlać pełne stopnie ( nie chce dokładności do 0,1°C) na wyświetlaczu z Ds18B20? w prezentowanych programach, probowałem z formowaniem wyniku ale nie idzie...

    Pozdrawiam

    Z góry dzięki za odp.

  • #329 16 Kwi 2010 10:47
    IMEX
    Poziom 20  

    liki55

    wstaw kod w załącznik który chcesz bez dziesiętnych to ci przerobie tak na szybko

    Grzesiek