Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 26 sty 2025, o 21:33


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 10 ] 
Autor Wiadomość
PostNapisane: 12 sie 2013, o 13:55 
Offline
Nowy

Dołączył(a): 11 sie 2013
Posty: 11
Pomógł: 0

Witam
Z okazji tego że aktualnie posiadam bardzo dużo czasu, postanowiłem coś z tym czasem zrobić. Mianowicie robię prosty termometr właśnie z tym układem DS18B20. Podłączyłem go zgodnie z datasheet'em, tj przez rezystor do zasilania i do uC. Wynik który zarówno przy wyjęciu i wpieciu wyświetlany na LCD to -0,1C. I nic nie jestem w stanie z tym zrobić. Znalazłem podobny wątek na elektrodzie, ale niestety temat nie został rozwiązany. Wewnętrzne taktowanie 1MHz. Z góry dziękuje za pomoc. Pozdrawiam

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 sie 2013, o 14:36 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27351
Lokalizacja: Szczecin
Pomógł: 1042

Po pierwsze to proponuję pokazać dokładny schemat jak to podłączyłeś a nie opis - bo na podstawie takich opisów to zwykle wychodzi później że ktoś myślał inaczej a zrobił całkiem inaczej niż trzeba. My elektronicy posługujemy się schematami. Bo już tu mogłeś strzelić babola ...

A jeśli chodzi o obsługę tych fajnych czujniczków to polecam książkę:

http://atnel.pl/mikrokontrolery-avr-jezyk-c.html

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 sie 2013, o 15:00 
Offline
Nowy

Dołączył(a): 11 sie 2013
Posty: 11
Pomógł: 0

Tak na szybko.

Obrazek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 sie 2013, o 15:20 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27351
Lokalizacja: Szczecin
Pomógł: 1042

ok fajnie, nie wiem wprawdzie jeszcze na jak długich kabelkach masz podłączony czujnik czy może siedzi w stykówce ale możesz śmiało na wszelki wypadek zmniejszyć rezystor podciągający do 2,2K i już będziemy pewni że jeśli chodzi o stronę sprzętową to "mucha nie siada" ;) zakładając też, że nie podłączyłeś odwrotnie czujnika - ale to raczej poczułbyś fizycznie bo zacząłby parzyć w palce od nagrzania się.

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 sie 2013, o 15:32 
Offline
Nowy

Dołączył(a): 11 sie 2013
Posty: 11
Pomógł: 0

Cały układ siedzi w stykówce. Zamieniłem ten rezystor , bez zmian. Podłączyłem zgodnie z datasheet'em czujnika.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 sie 2013, o 15:45 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27351
Lokalizacja: Szczecin
Pomógł: 1042

No to teraz ew musimy poczekać aż ktoś będzie miał czas analizować ten kod - ja go niestety za dużo nie mam :( a widzę, że próbujesz pisać sam od podstaw wszystko ... z jednej strony dobrze, ale z drugiej z takimi bibliotekami czasem nie ma co wyważać głową drzwi, gdy nawet w internecie znajdziesz sporo różnych gotowych i działających Libsów w tym zakresie. Z drugiej strony jak się samemu zrobi od podstaw to na pewno zrozumie się to o wiele lepiej.

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 sie 2013, o 16:04 
Offline
Użytkownik

Dołączył(a): 15 lut 2012
Posty: 344
Lokalizacja: Bydgoszcz
Pomógł: 11

Witaj!



Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


W tym fragmencie jedna rzecz mi się rzuciła w oczy tj. masz opóźnienie 480 ms a datasheet mówi tylko o 480us http://datasheets.maximintegrated.com/en/ds/DS18B20.pdf - strona 15. Jeszcze zobaczę czy ze starego workspace'a uda mi się wydobyć program do ds18b20 który dawno temu pisałem i jeszcze porównam z twoim kodem czy nie ma innych babolków ;) .

Tego mojego starego programu jeszcze nie znalazłem ale zauważyłem że gdzieś się pojawiło opoźnienie 500ms 30ms to zamień to na 500us(albo 480 ktore jest wartością minimalną) i 30us bo te milisekundy to za dużo. Te same błedy masz w odczycie pojedynczych bitów bo gdzieś widziałem że dałeś opóźnienie 80 ms gdzie powinno być 60us. O ile mnie pamięć nie myli to jedynie przy inicjowaniu czujnika dajesz opóźnienia w milisekundach.



Ostatnio edytowano 12 sie 2013, o 16:23 przez MichalXY, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 sie 2013, o 16:21 
Offline
Nowy

Dołączył(a): 11 sie 2013
Posty: 11
Pomógł: 0

byłbym Ci za to bardzo wdzięczny:) zauwazyłem że wszędzie mam błędy z tymi czasami. zaraz to poprawię. Wydaje mi się że teraz jest już dobrze , z czasami. Ale wynik nadal ten sam.

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 sie 2013, o 17:06 
Offline
Użytkownik

Dołączył(a): 15 lut 2012
Posty: 344
Lokalizacja: Bydgoszcz
Pomógł: 11

Uff udało się jakoś znaleźć poniżej masz kod źródłowy programu:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Teraz parę słów komentarza: ten kod wcześniej wykorzystywał jakieś własne procedury opóźniające a ja je zastąpiłem takimi standardowymi z bibliotekami <util/delay.h> . To ma jednak swoje wady - bo aby to dobrze działało trzeba w eclipse/avr studio 4 ustawić sobie odpowiednią optymalizację - ja w eclipsie ustawiłem na optymalizacje rozmiaru i program zadziałał na symulatorze - nie chciało mi się zbytnio wyjmować wszystkich bambetli elektronicznych i montować układ w "realu".
Druga sprawa to taka abyś w żadnym razie nie traktował tego jako gotowiec(no chyba że bardzo chcesz...) tylko jako porównanie ze swoimi funkcjami 1-wire.
Trzecia sprawa ten kod jest z przed ponad dwóch lat - wtedy jeszcze książki Mirka nie było(bynajmniej ja jej jeszcze nie miałem) i po prostu na przysłowiowy swój rozum programowałem.


Załączniki:

Aby zobaczyć załączniki musisz się zalogować. Tylko zalogowani użytkownicy mogą oglądać i pobierać załączniki.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 sie 2013, o 17:31 
Offline
Nowy

Dołączył(a): 11 sie 2013
Posty: 11
Pomógł: 0

poprzerabiałem czasy na twoje , jedyna różnica jaką zauważyłem to że jeśli kabelek jest wpięty wynik=-0.1 jesli wypięty wynik=0.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 10 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO