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.

Termometr na 89C2051 + DS18B20 by Miguel573

Miguel573 25 Sty 2011 19:36 14154 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


    Fajne!
  • #2 25 Sty 2011 21:56
    Dragas
    Poziom 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 25 Sty 2011 22:00
    Miguel573
    Poziom 10  

    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 25 Sty 2011 22:28
    Kysiu
    Poziom 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 25 Sty 2011 22:36
    Miguel573
    Poziom 10  

    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 25 Sty 2011 22:42
    djoy
    Poziom 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 25 Sty 2011 22:49
    Miguel573
    Poziom 10  

    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 26 Sty 2011 00:06
    atek000
    Poziom 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 26 Sty 2011 00:36
    olinek2
    Poziom 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 26 Sty 2011 06:53
    drzasiek
    Specjalista - Mikrokontrolery

    Miguel573 napisał:
    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 26 Sty 2011 08:25
    gemiel
    Poziom 21  

    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 26 Sty 2011 09:39
    riger
    Poziom 24  

    Cytat:
    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 26 Sty 2011 09:58
    Miguel573
    Poziom 10  

    riger napisał:
    Cytat:
    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 26 Sty 2011 16:24
    emmett brown
    Poziom 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 26 Sty 2011 17:01
    piotrva
    Moderator na urlopie...

    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 26 Sty 2011 17:07
    Miguel573
    Poziom 10  

    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 26 Sty 2011 17:31
    guuciek
    Poziom 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 26 Sty 2011 17:38
    Miguel573
    Poziom 10  

    Dziękuje :)
    Jeśli chodzi o angielski to tu nie ma problemu - rozumiem go, zarówno potoczną mowę jak i datasheety. Zobaczymy ;)

  • #19 26 Sty 2011 19:14
    adam cs
    Poziom 14  

    Miguel573 napisał:
    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 26 Sty 2011 19:32
    farrix
    Poziom 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 26 Sty 2011 20:25
    Miguel573
    Poziom 10  

    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 26 Sty 2011 21:30
    adam cs
    Poziom 14  

    Miguel573 napisał:
    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 napisał:
    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 napisał:

    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 27 Sty 2011 11:48
    Miguel573
    Poziom 10  

    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

  • #25 27 Sty 2011 17:34
    Miguel573
    Poziom 10  

    wojtek2812 napisał:
    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 27 Sty 2011 18:10
    joy_pl
    VIP Zasłużony dla elektroda

    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 27 Sty 2011 18:42
    Miguel573
    Poziom 10  

    Da się :) Masz rację przeczytałem i rzeczywiście.
    Dzięki za pomoc.

  • #28 27 Sty 2011 19:49
    Miguel573
    Poziom 10  

    Zmierzyłem pobór prądu - 12 do 13mA

  • #29 27 Sty 2011 20:00
    sysio10
    Poziom 15  

    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 27 Sty 2011 20:46
    Miguel573
    Poziom 10  

    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.