Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Farnell IoTFarnell IoT
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Termometr cyfrowy + sterownik co

hubertfab 04 Jan 2009 13:22 19351 36
  • Termometr cyfrowy + sterownik co

    Witam.

    Dziś chciałem zaprezentować wam termometr własnej konstrukcji
    Najpierw zapraszam do oglądnięcia filmiku:


    Termometr został zrealizowany na układzie LM35 (czujnik analogowy liniowy 220mV = 22°C)
    ATmega8 która steruje wszystkim pracuje na wew. oscylatorze RC 8MHz.
    Wyświetlacz jest sterowany za pośrednictwem dekodera 4543.
    Program napisany w BASCOM.

    W załączniku plik zródłowy BASCOM do termometra.
    Schematu nie ma i nie będzie bo nie chce mi się rysować.


    Link




    Umieściłem zdjęcie na początku a resztę widać na filmie.
    Attachments:

    Cool! Ranking DIY
    Can you write similar article? Send message to me and you will get SD card 64GB.
    About Author
    hubertfab
    Level 21  
    Offline 
    hubertfab wrote 552 posts with rating 448, helped 31 times. Been with us since 2008 year.
  • Farnell IoTFarnell IoT
  • #2
    lord_blaha
    Level 33  
    Wszytsko bardzo w porządku, szkoda tylko, że nie pomyślałeś nad dedykowaną płytką (i może obudową).
    Aha, ta ankieta wygląda, jakby dorzucona została "na siłę". Miałeś jakiś przymus jej dodania?
  • #3
    FastProject
    Level 28  
    Działa i fajnie, ale przy tak małej ilości wykorzystywanych pinów uP sterowanie wyświetlacza można było by wykonać bezpośrednio z jednego z portów ATmega8 i 2 dodatkowych tranzystorów, a nie zaprzęgać dodatkowy układ dekodera.
  • #4
    Madman07
    Level 19  
    Zgodzę się z poprzednikiem.

    Nie znam bascoma (jedynie basic i c) ale na moje oko kod można by troszeczkę uprościć, usunąć to opóźnienie.

    Mogłeś zastosować wyświetlacz 3 cyfrowy - lepszy był by efekt :)

    P.S. Co do ankiety - nie, nie lubię atmela, wole microchipa :D
  • #5
    Galareta
    Level 22  
    Osobiście nie lubię języków paskalo pochodnych;) A co do projektu faktycznie ten dekoder i połowa nóżek uC wolnych - razi;) chyba że chcesz to rozbudować to co innego:) Np jakiś sterownik CO:) A no i jeszcze ten zegar 8MHz nie szkoda prądu? :D Im wyższy zegar tym większy pobór prądu:)

    1MHz = 2,5mA (Przy 5V)
    8MHz = 11,4mA @ 5V

    To jest duża różnica np na zasilaniu z baterii:)

    Ps. Jeżeli chcesz się pobawić już koniecznie jakimiś układami TTL to polecam 74HC595 (Odpowiednik CMOS CD4094) ewentualnie 74HC164 Oba układy się przydają przy większych projektach:)
  • Farnell IoTFarnell IoT
  • #6
    Sobota
    Level 26  
    Jaki jest zakres temperatur tego termometru? A tak w ogóle co to za projekt elektroniczny bez schematu budowy ;-)
  • #7
    marek-c
    Level 19  
    A atmega8 to ma wewnętrzny oscylator 8MHz?
  • #8
    Galareta
    Level 22  
    LM35
    Code:
    Rated for full -55° to +150°C range

    czyli -55 do 150:) A ten co tutaj jest zrobiony to 0 do 99:) bo na tyle mu wyświetlacz pozwala
    marek-c wrote:
    A atmega8 to ma wewnętrzny oscylator 8MHz?

    Tak ma
    Code:
    The calibrated internal RC Oscillator provides a fixed 1.0, 2.0, 4.0, or 8.0 MHz clock.
  • #9
    Jjacenty
    Level 12  
    Mam duże doświadczenie z LM35 i widzę, że ten termometr nie będzie działał poprawnie przy dłuższych przewodach. Przerobiłem już ten temat przy budowie sterowników do kolektorów słonecznych. Bez zastosowania filtra składającego się z rezystora i kondensatora (patrz nota katalogowa) będzie się wzbudzał i niepoprawnie będzie odczytywana temperatura.

    Kod programu też zmieniłbym ponieważ zastosowanie faktora nie jest najszczęśliwszym rozwiązaniem. Moja propozycją to wykorzystanie wewnętrznego źródła odniesienia

    Config Adc = Single , Prescaler = Auto , Reference = Internal

    i w procedurze odczytującej temperaturę zastosować wzór podany w nocie katalogowej ATmegi oczywiście po przekształceniu

    ADC=(Vin x 1024)/Vref

    Z drugiej strony przy dwóch cyfrach nie jest potrzebna taka dokładność.
  • #10
    Soho
    Level 12  
    Takie sprostowanie ad LM35
    LM35CZ jest jakieś 4x droższy i ma zakres tak jak wyżej napisano, od -55 do 150*C
    LM35DZ jest dużo tańszy i posiada zakres właśnie od 0 do 100*C...
  • #11
    andrew1969
    Level 12  
    Może to to i działa tylko co z dokładnoscią
  • #12
    Galareta
    Level 22  
    No ale np porównajcie dokładność tego do chińskich termometrów w marketach jest ich np 10 na półce załączonych i rozbieżność rzędu 10*C
  • #13
    hubertfab
    Level 21  
    Termometr będzie rozbudowany o tak jakby termostat i przekaźnik który będzie sią załączał po ustawieniu zadanej temperatury poprzez 2 przyciski. Myślę kupić LM35CZ i mieżyć temperaturę na mrozie czyli poniżej zera tylko nie wiem jak odczytać ujemną temperaturę ADC ATmegi8.

    ATmega8 jest ustawiona na 8MHz ponieważ szczeże mówiąc nie pomyślałem o zmianie fusebitów.

    Na tej płytce nie wygląda to za orginalnie ale po poprzednim projekcie minutnika w obudowie i na PCB projekt został przeniesiony do Niedokończonych więc nawet się więcej nie będę wysilał.

    andrew1969: Termometr będzie wzbogacony o malutki wyświetlacz 7segmentowy pokazujący części dziesiąte.

    Gdybym użył LCD to projekt był by za prosty aby umieszczać go na elektrodzie. Umieszczam w Internecie tylko projekty według mnie orginalne. :D

    Polecam mój kanał YouTube:
    http://pl.youtube.com/user/Hubert7323


    A teraz zabieram się za projekt którego na elektrodzie chyba jeszcze nie było. Ale nie powiem co to aż nie wykonam bo nie chcę się chwalić.

    PS: Przy okazji Jakie mikrokontrolery da się zaprogramować w BASCOM-AVR Tylko AVR???
  • #14
    kundzios
    Level 19  
    Witam
    hubertfab wrote:
    PS: Przy okazji Jakie mikrokontrolery da się zaprogramować w BASCOM-AVR Tylko AVR???

    Tak tylko AVR pełną listę możesz znaleźć w ustawieniach zakładka chip, albo w pliku pomocy.
  • #15
    Galareta
    Level 22  
    hubertfab wrote:
    ATmega8 jest ustawiona na 8MHz ponieważ szczerze mówiąc nie pomyślałem o zmianie fusebitów.

    Jak nie zmieniałeś to 1MHz jest chyba oryginalnie:) A co do LDC zawsze można było LCD bez sterownika (np taki jak w mierniku) dać:P Zawsze mniej prądu żre - tylko mniej czytelny:] Ja czekam na przesyłkę z elektroniką i też się biorę za wymyślanie:) Tylko nie rozumiem po co ten dekoder BCD ;)
  • #16
    kundzios
    Level 19  
    hubertfab wrote:
    Myślę kupić LM35CZ i mierzyć(ortograf) temperaturę na mrozie czyli poniżej zera tylko nie wiem jak odczytać ujemną temperaturę ADC ATmegi8.


    Tutaj będzie Ci potrzebne ujemne napięcie, skomplikuje trochę układ. Może łatwiej będzie zastosować cyfrowy czujnik DS18B20. Dane wysyłane w 2 bajtach, a cena podobna do LM35.

    Galareta wrote:
    hubertfab wrote:
    ATmega8 jest ustawiona na 8MHz ponieważ szczeże mówiąc nie pomyślałem o zmianie fusebitów.

    Jak nie zmieniałeś to 1MHz jest chyba oryginalnie:)


    Zgadza się oryginalnie jest ustawiona na wewnętrzny RC 1MHz
  • #17
    CZEMASTA
    Level 12  
    a mógłby ktoś tak prowizorycznie narysować schemat bo dopiero zaczynam.
  • #18
    Galareta
    Level 22  
    Zaraz spróbuje narysować i będzie edit:)
  • #20
    kundzios
    Level 19  
    Wyręczyłem kolegę, komentować nie trzeba wszystko opisane :)
    Termometr cyfrowy + sterownik co

    PS: Jeśli ktoś jest zainteresowany podobnym termometrem na DS1820 to mogę udostępnić schematy(3 wyświetlacze 7-segmentowe, ATMEGA8 smd, segmenty sterowane przez ULN28**, dużo zwór, bo upchane w małej obudowie)
  • #21
    Madman07
    Level 19  
    Tylko, że projekt autora tematu jest na LM35 a nie DS18(b)20.
  • #22
    Galareta
    Level 22  
    Chyba to powinno działać pod tym softem -> (zasilanie 5V)

    NOWY POPRAWNY - DOPASOWANY DO PROGRAMU!

    Termometr cyfrowy + sterownik co

    ps. niech ktoś sprawdzi:) - tranzystory wywaliłem bo ATmega ma 40mA wyjścia:] więc nie widzę potrzeby stosowania tych tranzystorów tam;)
  • #23
    kundzios
    Level 19  
    Mój błąd, myślałem że marcinczernek chce schemat podłączenia DS18B20.
  • #24
    hubertfab
    Level 21  
    Galareta: Twój scheamt jest nie poprawny wejście A dekodera jest podłączone pod PD.0 B pod PD.1 C pod PD.2 D pod Pd.3
    Ale to można zmienić programowo :D

    Pisząc nie zmieniałem fuse bitów maiłem na myśli nie zmienianie Fuse Bitów z poprzedniego projektu. Ta ATmega8 przeszła ponad 1tys. Porgramowań. A pozatym wiem, że nowa ATmega ma Fusy na 1MHz.

    Nie umiem się obsługiwać 1-Write :cry: Ale się naucze :D

    Dekoder piszę jeszcze raz jest zastosowany przyszłościowo!!!
  • #25
    Madman07
    Level 19  
    Galareta wrote:
    Chyba to powinno działać pod tym softem -> (zasilanie 5V)

    NOWY POPRAWNY - DOPASOWANY DO PROGRAMU!

    Termometr cyfrowy + sterownik co

    ps. niech ktoś sprawdzi:) - tranzystory wywaliłem bo ATmega ma 40mA wyjścia:] więc nie widzę potrzeby stosowania tych tranzystorów tam;)


    Te tranzystory bylo trzeba zostawić, bo jeszcze ktośto zrobi i uwali sobie procka.

    Quote:
    Zanim jednak przejdziemy dalej załóżmy, że zapalamy wszystkie diody w wyświetlaczu. Przez każdą diodę płynie prąd około 0.02A (dla zasilania 5V i rezystora 250R). Łatwo policzyć, że dla 8 zapalonych diod (A-G plus kropka), prąd na przykładowo katodzie będzie równy 8x0.02A = 0.16A = 160mA. Obciążalność portu mikrokontrolera to wartość około 30mA więc od razu widać, że po podłączeniu wspólnej katody do nóżki mikrokontrolera możemy spodziewać się atrakcji w postaci spalonego portu. Dlatego też nie można podłączać bezpośrednio wspólnej katody czy anody do mikrokontrolera. wkrętak.pl


    P.S. nie 1-write a 1-wire.
  • #26
    Galareta
    Level 22  
    Ten procek jest zwarcio odporny z tego co zauważyłem:) ps. zauważ ten rezystor 1k na portach :D ale zaraz zmienię i dam rezystory na każdą diodę w wyświetlaczu raczej bo tak chyba powinno być a nie na katody racja? Chodź tak jest na płytce... przez 1 lub przez 8 kropek płynie tyle samo...
  • #28
    Galareta
    Level 22  
    Niby to wiem a jednak nie:P Tak to jest jak się czegoś długo nie używa a potem zobaczy że ktoś zrobiła jakoś i człowiek się zasugeruje:) 1 myśl to było prawo Kirchhoffa:] ale 2 - tam jest inaczej i działa więc chyba tak ma być. A teraz zauważyłem na YouTube że w innym projekcie - tym do odliczania 1 mocniej od 8 świeci:] czyli to nie 1 taki błąd w projekcie hubertfab
  • #29
    ashpl
    Level 12  
    Mały błąd w schemacie piny 1 i 6 w układzie 4543 powinny być podłączone do plusa a nie masy :)
  • #30
    ciapciok
    Level 20  
    Quote:
    Takie sprostowanie ad LM35
    LM35CZ jest jakieś 4x droższy i ma zakres tak jak wyżej napisano, od -55 do 150*C
    LM35DZ jest dużo tańszy i posiada zakres właśnie od 0 do 100*C...


    Alternatywą może być czujnik LM335, jego cena zbliżona jest do LM35DZ, ale zakres większy, od -40 do 100*C. Czujnik wycechowany jest w Kelvinach, ale to nie problem dokonać konwersji programowej.

    Pozdrawiam