Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Termometr na 89C2051 + DS18B20 by Miguel573

Miguel573 25 Jan 2011 19:36 14859 34
  • Termometr na 89C2051 + DS18B20 by Miguel573

    Witam !
    Po pierwsze chciałbym się przywitać ponieważ mało dotąd bywałem na forum.

    Chciałbym przedstawić wam moją konstrukcję którą jest termometr.Natchnieniem do zrobienia go była chęć nauki obsługi magistrali 1-wire oraz poznania nowych funkcji bascoma. Jest on oparty na procesorze 89C2051 oraz czujniku temperatury DS18B20. Czujnik ten jest podłączony do procesora za pomocą magistrali 1-wire. Program został napisany w BASCOMIE 8051 (niestety). Niestety dlatego że zajmuje on dużo pamięci mikrokontrolera. Procesora taktowany jest kwarcem 12MHz. Temperatura jest wyświetlana z rozdzielczością 0.1 C. Całość zasilana jest z jakiegoś uniwersalnego zasilacza + 7805 na płytce. Zmontowałem to na uniwersalce aby można było wprowadzać ewentualne zmiany np. większa ilość czujników. Planuję także wykorzystać procesor 89C4051 ze względu na większą pamięć. Jeśli ktoś chcę podam schemat oraz program na PW. Termometr jest wykorzystywany w pokoju. Jeśli kogoś interesuje to użyłem wyświetlacza Winstar WDH0084. Proszę o opinie. Wiem że projekt nie jest profesjonalny ale to miało przede wszystkim służyć nauce :D

    Koszty:
    89C2051 - ok. 5.50 zł
    płytka - miałem
    DS18B20: ok. 6.50 zł
    Wyświetlacz - miałem
    Reszta elementów - ok. 5 zł



    Termometr na 89C2051 + DS18B20 by Miguel573 Termometr na 89C2051 + DS18B20 by Miguel573 Termometr na 89C2051 + DS18B20 by Miguel573

    Pozdrawiam

    Cool? Ranking DIY
    About Author
    Miguel573
    Level 11  
    Offline 
    Miguel573 wrote 43 posts with rating 46. Live in city Bytom. Been with us since 2009 year.
  • #2
    Dragas
    Level 26  
    Projekt może nie jest zaawansowany technicznie, ale najważniejsze, że działa i masz chęci do nauki Bascoma. Szkoda, że nie bierzesz się za C.
  • #3
    Miguel573
    Level 11  
    Za C się biorę. Ale teraz nie mam czasu bo szkoła a poza tym chcę poznać jak to wszystko działa a następnie przejść do C.
    Dziękuje za opinie

    Zapomniałem dopisać: Temperatura jest z małej litery - literówka. Już poprawione
  • #4
    Kysiu
    Level 12  
    Wyświetlacz wygląda na 2*16 więc można dorzucić drugi czujnik, lub zegarek.

    Jakim programatorem zaprogramowałeś ten układ?
  • #5
    Miguel573
    Level 11  
    To prawdopodobnie ten programator (ktoś inny go składał). Wygląda podobnie do mojego scalaki te same, oprogramowanie też

    http://www.kmitl.ac.th/~kswichit/89prog/index.html

    Można by dodać ale muszę zastosować wtedy 89c4051 ponieważ mało pamięci zostało.
  • #6
    djoy
    Level 15  
    Wszystko bardzo ładnie i estetycznie, jeśli to ma być tyko stacjonarny termometr, to dobrze że nie pakowałeś, jakiegoś procka typu Mega16, tylko po taniości, czyli ekonomicznie, a teraz to się liczy głównie.
  • #7
    Miguel573
    Level 11  
    Dziękuje.
    Tu nawet nie chodziło o taniość - Bascom 8051 to mój pierwszy język. Korzystałem z 89C2051 ponieważ miałem go pod ręką. Są poza tym tak jak piszesz - tanie. Zwłaszcza w porównaniu do AVR'ów. Trochę mniej możliwości ale taniej. Tak to termometr stacjonarny. Mnie mega16 chyba by przerosło. :)
    Schemat i program na PW
  • #8
    atek000
    Level 17  
    jak na pierwszy projekt to bardzo fajnie. Mam tylko małą uwagę do Bascom-a. Ja także uczyłem się go z myślą, że później przesiądę się na C - to był błąd. C jest zupełnie inny. Radzę od razu spróbować jakieś proste programy z C a zobaczysz, że ten sam program na pozór zajmie połowę miejsca w procku.
  • #9
    olinek2
    Level 23  
    Atek, ale prawda jest taka, że Bascom na szybkie akcje nie jest taki zły ;)

    Do dodatkowego czujnika daj sobie może zasilanie po linii danych, trzeba trochę program zmodyfikować, ale za to kabli mniej ;)

    Wykorzystujesz jakieś możliwości przejścia w tryb oszczędzania energii?
  • #10
    drzasiek
    CNC specialists
    Miguel573 wrote:
    Za C się biorę. Ale teraz nie mam czasu bo szkoła a poza tym chcę poznać jak to wszystko działa a następnie przejść do C.

    Błąd. Bascom jest taki prosty że aż skomplikowany, zaś C jest taki skomplikowany, że aż prosty. Połapiesz bascoma, będziesz chciał przejść na C to nie dość, że praktycznie wszystko musisz od nowa się uczyć to jeszcze będzie ci się myliło.
  • #11
    gemiel
    Level 25  
    Wyświetlacz tego typu jest tutaj mało trafiony. Rozumiem, że taki miałeś pod ręką. Skoro to jest termometr to wystarczy wyświetlanie cyfr. Innych informacji i tak nie pokazuje. Efekt jest taki, że na dużym polu wyświetlacza widzimy malutkie cyferki. Lepiej zastosować duży LCD 7mio segmentowy a nawet wyświetlacz od poczciwej Nokii 3310. Przy okazji może być podświetlany.
  • #12
    riger
    Level 24  
    Quote:
    Temperatura jest wyświetlana z dokładnością 0.1 C.

    Nie kolego :) Tempteratura jest wyswietlana z rozdzielczoscia 0.1*C, natomiast dokladnosc wciaz wynosi 0,5*C.
  • #13
    Miguel573
    Level 11  
    riger wrote:
    Quote:
    Temperatura jest wyświetlana z dokładnością 0.1 C.

    Nie kolego :) Tempteratura jest wyswietlana z rozdzielczoscia 0.1*C, natomiast dokladnosc wciaz wynosi 0,5*C.


    Przepraszam moja pomyłka :) Już poprawione.

    Co do wyświetlacza to w najbliższym czasie kupię 2x8 LCD i dodam jeszcze jeden czujnik. Wtedy powinno lepiej wyglądać. Jakie kolory podświetlenia są według was najbardziej czytelne ? Niebieski czy może zielony ?

    Co do oszczędzania energii nie robię tego bo tak jak już pisałem wykorzystuje tu zasilacz sieciowy.

    A jak wygląda obsługa wyświetlacza LCD w C ?
  • #14
    emmett brown
    Level 12  
    Przepraszam, jeśli kogoś uraziłem, nie chciałem tego. Po prostu wyraziłem swoją myśl i tyle. Po to są fora żeby dyskutować, pochwalać i krytykować i co w tym złego.
    Pisząc:
    "Atmel + Bascom + wyświetlacz + cokolwiek in/out = temat oklepany od lat na wszystkich forach o podobnej tematyce"
    pomyślałem sobie:
    "czy większość pierwszych projektów tak właśnie ma wyglądać"?
    Owszem, jest to najłatwiej dostępne rozwiązanie dla nowicjuszy, w tym także i dla mnie.
    I tu jest sedno sprawy: :D
    "Czekamy, aż pokażesz swoje ambitne konstrukcje.."

    Sam przymierzałem się do zbudowania i publikacji czegoś podobnego.
    Pisząc wcześniejszy mój post, chciałem sobie zasadzić "kopa", żeby zabrać się za coś mniej oklepanego. Jeśli kogoś tym uraziłem, jeszcze raz przepraszam.
    Nie chciałem nikogo skrytykować, w negatywnym znaczeniu.
  • #15
    piotrva
    VIP Meritorious for electroda.pl
    Cóż, projekt, pomimo, ze na płytce uniwersalnej, to wykonany bardzo schludnie.
    Moim zdaniem jednak lepiej byłoby zastosować wyświetlacz 7-seg. Można znaleźc nawet takie 2 kolorowe i wtedy masz 2 temp w różnych kolorach.
    Co do samej nauki, to koledzy mają rację, ja też zaczynałem do bascom i cóż, owszem, język bardzo przyjemny na pierwszy rzut oka, o nic się nie troszczysz i prawie wszystko działa... Do prostszych rzeczy się nadaje, ale do zaawansowanych nie.
    Jak miałbyś czas to na prawdę polecam naukę C, bo zobaczysz wtedy ile tracisz korzystając z bascom, który nie pozwala na wykorzystanie niektórych funkcji procesora...
    A tak na marginesie, nie myślałeś nad przejściem na AVR? Ceny nawet niewiele wyższe (odpowiednik Twojego uP, attiny2313 znalazłem w elektronicznym "za rogiem" po 7,00 zł), a możliwości większe (w tym przypadku np. pamięć eeprom itp.)
  • #16
    Miguel573
    Level 11  
    Myślałem ale u mnie kosztuje 8,90 :( Poza tym nie wiem jak jest z programatorami. Atmega 8 u mnie po 20. Nie wiem czy to normalne ceny u Ciebie ale u mnie tak jest. Jakiś kurs C polecacie ? Zaczynam się do tego przekonywać :)
  • #17
    guuciek
    Level 14  
    Witam .
    Projekt całkiem niezły , w końcu od czegoś trzeba zacząć :)
    Co do wyboru procesora to jednak lepiej przesiąść się na AVR jako że ma większą moc obliczeniową a ceny nie są aż takie straszne i z czasem coraz tańszy będzie .
    Co do BASCOMA to nie zgodzę się z kolegami że jest zły na początek .
    Może rzeczywiście maskuje wszystko co się dzieje w procesorze ale dzięki niemu łatwo zrobić jakieś niewygórowane programiki i co najważniejsze jeśli zrobimy coś w prosty i szybki sposób a będzie działać jak tego chcemy to nas to nie zniechęci już na początku nauki i coraz głębiej będziemy wnikać w świat cyferek.

    Sama przesiadka z BASCOMA na C lub asamblera też nie jest w cale tak niezwykle trudna . Może przez pierwszy okres rzeczywiście przyzwyczajenia biorą górę ale nie jest trudno się ich oduczyć . Mogę to spokojnie potwierdzić na swoim przykładzie .
    Sam na początku pisałem w bascomie ponieważ był składniowo podobny do DELPHI z którym miałem styczność . Po pewnym czasie przerzuciłem się na asm i nie było to dla mnie jakimś niezwykłym szokiem ( co prawda potrafię przetłumaczyć sobie notę katalogową więc jest to spore ułatwienie )

    Jeśli mówisz że masz mało miejsca to nie kupuj większego uC tylko spróbuj teraz przyjrzeć się swojemu programowi , i poszukać czy coś się dużo razy nie powtarza , czy coś nie napisał byś teraz prościej . Myślę że jeśli przeglądniesz kod pod tym kątem to uda ci się wykrzesać jeszcze trochę miejsca na dodatkowe bajery :)
  • #18
    Miguel573
    Level 11  
    Dziękuje :)
    Jeśli chodzi o angielski to tu nie ma problemu - rozumiem go, zarówno potoczną mowę jak i datasheety. Zobaczymy ;)
  • #19
    adam cs
    Level 14  
    Miguel573 wrote:
    Natchnieniem do zrobienia go była chęć nauki obsługi magistrali 1-wire oraz poznania nowych funkcji bascoma


    Bardzo ciekawe stwierdzenie, przecież jedno wyklucza drugie:)
    Niewiem jak można poznawać interfejsy szeregowe korzystając z bascoma, jak byś naspisał obsługę w asemblerze to wtedy tak.
  • #20
    farrix
    Level 17  
    Eee tam.

    Za C na 89 nawet nie warto się zabierać, bo jest takie dość "powalone", co innego avr bo tam to nawet asm jest prosty. (nie wierzyłem, ale kiedyś usiadłem przed mnemonikami i sam się zdziwiłem)

    Co do projektu to mógł być na avr, różnica cenowa praktycznie żadna a może się zjawić ktoś kto będzie chciał mieć termometr, a wtedy z 89 milion pytań o prgramator, a na avr to jak się uprze 4 rezystory (wtyczkę i podstwkę można sobie nawet darować).
  • #21
    Miguel573
    Level 11  
    adam cs No OK źle to zdanie sformułowałem :)
    Dla mnie duża różnica Farrix ponieważ nie mam programatora AVR a tym bardziej portu LPT. Miałem po prostu pod ręką ten procesor i go wykorzystałem.

    Ja nie robię projektów pod forum i czytelników. Robię je dla własnej satysfakcji i praktycznego wykorzystania.
  • #22
    adam cs
    Level 14  
    Miguel573 wrote:
    Myślałem ale u mnie kosztuje 8,90 Sad Poza tym nie wiem jak jest z programatorami. Atmega 8 u mnie po 20. Nie wiem czy to normalne ceny u Ciebie ale u mnie tak jest

    Masz racje, AVR-y mocno podrożały i dobrze że wykorzystujesz to co masz pod ręką, w internecie 89C2051 są nawet po 3zł:) Dobrze jest nie być zaleznym tylko od jednej rodziny uP.


    atek000 wrote:
    jak na pierwszy projekt to bardzo fajnie. Mam tylko małą uwagę do Bascom-a. Ja także uczyłem się go z myślą, że później przesiądę się na C - to był błąd. C jest zupełnie inny. Radzę od razu spróbować jakieś proste programy z C a zobaczysz, że ten sam program na pozór zajmie połowę miejsca w procku.


    C jest tak samo językiem wysokiego poziomu jak i bascom, a program jest "mniejszy" nie o połowe tylko o jakieś 20% w stosunku tego napisanego w bascomie.
    druga rzecz, procesor- jest wystarczający do tego zadania. Niewiem po co wspominacie w co drugim poście o AVR-ach jak ten uP jest o połowę tańszy od attiny a zrobi to samo(w tym projekcie).

    farrix wrote:

    Za C na 89 nawet nie warto się zabierać, bo jest takie dość "powalone", co innego avr bo tam to nawet asm jest prosty. (nie wierzyłem, ale kiedyś usiadłem przed mnemonikami i sam się zdziwiłem)

    Ja bym powiedział że AVR-asm jest "dość złożony" jak na architekture RISC , prosty to jest w '51 a w PIC-ach to aż przyjemny(35 instrukcji)
  • #23
    Miguel573
    Level 11  
    AVRy podrożały a poza tym tak jak wyżej - po co do tego projektu pchać taki procek.
    Zmierzę dzisiaj jeszcze pobór prądu.

    Pozdrawiam
  • #24
    wojtek2812
    Level 22  
    A czy bascom obsługuje wyświetlacz o organizacji 2*8? Coś mi się wydaje że chyba nie, przynajmniej Bascom AVR, nie wiem jak 8051
  • #25
    Miguel573
    Level 11  
    wojtek2812 wrote:
    A czy bascom obsługuje wyświetlacz o organizacji 2*8? Coś mi się wydaje że chyba nie, przynajmniej Bascom AVR, nie wiem jak 8051


    Niestety masz rację. Wpisałem w helpie Bascoma i są typy. Minimum 16*1
  • #26
    joy_pl
    VIP Meritorious for electroda.pl
    16*1A tak w Bascom'ie oznacza się wyświetlacz 2x8, z tego względu, że niektóre wyświetlacze 1x16 to tak naprawdę 2x8.
  • #27
    Miguel573
    Level 11  
    Da się :) Masz rację przeczytałem i rzeczywiście.
    Dzięki za pomoc.
  • #28
    Miguel573
    Level 11  
    Zmierzyłem pobór prądu - 12 do 13mA
  • #29
    sysio10
    Level 16  
    Pamiętam Bascom College Zbigniewa Raabe (właśnie na 89c2051). Genialny w swej prostocie i wciągający tak że chodziło się spać nad ranem. Mnie w pewnym momencie zaczęło denerwować to, że ciągle trzeba było przekładać procka do programatora, co w zasadzie uniemożliwiało stałe wlutowanie układu (jeżeli przewidywało się nawet drobne poprawki programu). Zaletą AVRów jest jednak programowanie w układzie i to że nie potrzebują kwarcu (przynajmniej przy układach które nie wymagają precyzyjnego odliczania czasu). Szczęście że jest alledrogo, bo ta cena 20 zł za atmegę8 to chyba kogoś popieściło.

    Gratuluję zaparcia i życzę powodzenia w dalszych pracach.

    A na marginesie: jeżeli chcesz programator na USB do AVRów (kiedyś kupiłem drugi bo wydawało mi się że będę mógł łatwiej ustawiać fusebity z poziomu bacoma ale pozostałem przy starym) oddam gratis - leży nieużywany w szafce od kilku lat, niechaj służy.
  • #30
    Miguel573
    Level 11  
    Dzięki ale jednak odmówię przyjęcie tego programatora ponieważ myślę także nad zestawem do nauki C ze pewnego sklepu (programator płytka testowa i kurs) no i jak już pisałem nie mam czasu. Mam kolegę z programatorem na USB do AVR i jak będę chciał to pożyczę od niego (może komuś innemu zaoferuj ?)

    Pozdrawiam
    College Zbigniewa Raabe naprawdę świetny.