logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Cyfrowy termometr z zastosowaniem trzech układów scalonych?

zasoby 12 Lis 2005 10:32 9285 16
REKLAMA
  • Cyfrowy termometr z wyświetlaczem LED umożliwiający pomiar od 0°C do 150°C z rozdzielczością 1°C i dokładnością +/-0,4°C zaprezentowano w załączniku. Bardzo dużą zaletą jest zastosowanie tylko trzech układów scalonych - mikrontrolera PIC16F872, scalonego czujnika temperatury LM35 od National Semiconductor oraz wzmacniacza operacyjnego LM6134. Czujnik LM35 zapewnia dużą liniowość w całym zakresie pomiaru. Wyjście czujnika podłączone jest do nieodwracającego wzmacniacza operacyjnego LM6134 o wzmocnieniu równym idealnie 2. Sygnał musi zostać wzmocniony, ponieważ w mikrokontrolerze PIC jest wbudowany przetwornik 8 bitowy o rozdzielczości 20mV. Dzięki odpowiedniemu oprogramowaniu mikrokontrolera (w załączniku źródło) nie są potrzebne żadne konwertery do podłączenia wyświetlaczy segmentowych LED.

    Electronic Design, July 2002

    Fajne? Ranking DIY
    O autorze
    zasoby
    Poziom 23  
    Offline 
    zasoby napisał 784 postów o ocenie 432, pomógł 4 razy. Jest z nami od 2002 roku.
  • REKLAMA
  • #2 1975955
    Jarema
    Użytkownik obserwowany
    Stosując DS18B20 można zredukować ilość potrzebnych układów scalonych do 2 natomiast stosując wyświetlanie multipleksowane obniżyć pobór prądu przez układ.
  • REKLAMA
  • #3 1978210
    koval_s
    Poziom 18  
    Uważam że multiplex niezbyt ma coś wspólnego z poborem prądu, tylko ilością elementów i połączeń, jeśli to w ogóle było by możliwe jak braknie portów w procu, i jeszcze istnieje LM335 i wiele innych przetworników, ale......., pozdrawiam...
  • REKLAMA
  • #4 1978577
    Dariusz Goliński
    Poziom 22  
    Mamy proca dorzucić sterowanie multipleksowe + czujnik dallasa, 2 przyciski i jedno wyjście na przekaźnik i będzie termostat.
    Kto się podejmie. Przydało by się takie coś.
  • #5 1980074
    tomahawk_
    Poziom 18  
    koval_s napisał:
    Uważam że multiplex niezbyt ma coś wspólnego z poborem prądu, tylko ilością elementów i połączeń, jeśli to w ogóle było by możliwe jak braknie portów w procu, i jeszcze istnieje LM335 i wiele innych przetworników, ale......., pozdrawiam...


    multipex właśnie pozwala na użycie mniejszej ilości portów a ilość elementów się nie zmienia (no, może mniej rezystorków), a pobór prądu raczej by się zmniejszył bo tylko jeden segment naraz wyświetlany jest


    edit.
    właśnie przypomniałem sobie o tranzystorkach ale kolega poniżej mnie uprzedził
  • #6 1981900
    Jarema
    Użytkownik obserwowany
    Dziękuję mojemu przedmówcy za oświecenie kolegi koval_s.
    Przy okazji dodam iż wyświetlanie multipleksowe wymaga dołożenia do układu jedynie tranzystorów sterujących katody wyświetlaczy czyli w tym przykładzie 4 szt.
    Wtedy możliwe jest wykonanie takiego układu na tańszym procku PIC16F628A :D
    Oczywiście zastosowanie czujników DS18B20 itp. umożliwia ominięcie procedury kalibracji o której ze względu na rozdzielczość pomiaru autor nie wspomniał.
  • REKLAMA
  • #7 1986578
    koval_s
    Poziom 18  
    Co do ilości elementów to właśnie chodziło mi o ilość rezystorków jak kolega wyżej zauważył również, no i ilości portów a w sumie ilości prowadzonych linii, ale do prądu to Panowie nie jest tak, moc emitowana przez wyświetlacz musi być taka sama, więc się te wyświetlacze steruje większym prądem, aby moc była taka sama, czyli przy tych czterech będzie to około cztery razy większy prąd, aczkolwiek uzyskuje się podobny efekt już przy mniejszych prądach, reasumując ten temat prąd wyświetlacza = (ilość wyświetlaczy * prąd znamionowy wyświetlacza), co do tego tematu w którymś momencie proc może polecieć, a tranzystory się daje bo proc prawdopodobnie już poleci, ale chodzi o to że daje się wyświetlacze o wspólnej anodzie i tam w kolektorze PNP jest możliwe w ogóle osiągnięcie takiego prądu co to nie puści proca z dymem, a nawet proce i inne układziki TTL itp. zawsze miały problem ze stanem wysokim, więc wszystko się dawała "od masy", a nie od wysokiego, np. stary xx'51 ma możliwość tylko od masy i to kilka mA, bo w plusie ma tylko rezystorki podciągające, koniec teorii..., co do termostatu to lepszym rozwiązaniem byłby regulator PID, a nie termostat do akwarium czy żelazka (chociaż te nowe to mają już regulator PID), bardziej by się przydał, no i LUMEL padnie ze względu na koszt tego regulatora, a nie takich rozwiązań przemysłowych, pozdrawiam...
  • #8 1987732
    Jarema
    Użytkownik obserwowany
    Mogę jedynie powiedzieć, że każdy ma własną teorię a praktyka ją weryfikuje...
    Proponuję zapoznać się z budową portów w procesorach PIC.
  • #9 1998673
    Beetle
    Poziom 12  
    tomahawk_ napisał:
    a pobór prądu raczej by się zmniejszył bo tylko jeden segment naraz wyświetlany jest


    Taaa, ale nie zapominajmy, ze prawie zawsze wtedy wymusza się wiekszy przepływ prądu przez segment tak, żeby cokolwiek było widać :) wieć moc bedzie taka sama :) (no chyba, że zmiejszymy jasność, ale przecież nie o to chodzi)

    Beetle
  • #10 1998737
    Jarema
    Użytkownik obserwowany
    Mimo wszystko wyświetlanie multipleksowe ma sporo zalet m.in. mniejsza ilość linii potrzebna do sterowania takiego wyświetlacza a co z tym idzie można zastosować tańszy procesor, mniej połączeń między płytką wyświetlacza i procesora (jeśli wyświetlacz jest na osobnej płytce np. frontowej), prostszy projekt płytki wyświetlacza.

    Jeśli zaś chodzi o schemat tego termometru to jest na nim ewidentny błąd, który dotyczy zasilania segmentów wyświetlacza *C.
    Przy wartości 100Ω wyświetlacz ten będzie świecił ciemniej niż pozostałe.
  • #11 2009856
    Urlyk
    Poziom 13  
    Beetle ty chyba jako jeden z niewielu w tym poście wiesz o co chodzi z wyświetlaniem multipleksowym. Rzeczywiście chcąc uzyskać taki sam efekt jasności trzeba zwiększyć natężenie prądu tyle razy ile wyświetlaczy multipleksujemy. Tranzystory w wyświetlaniu multipleksowym stosuje się głównie do zasilania i przełączania wyświetlaczy. W przypadku dużej liczby cyfr trzeba również zastosować tranzystory do każdej z linii, bo procek nie wydoli takiego prądu.
    Jarema ma racje wyświetlacz *C będzie świecił ciemniej aby tego uniknąć trzeba zastosować mniejszy rezystor albo każdą z linii wyposażyć w osobny.
    Koval_s tak jak Jarema napisał proponuje zapoznać się z notą procesorów PIC i bo sam piszesz że ma Pull-Up a nie wiesz po co to jest.
  • #12 2010306
    Jarema
    Użytkownik obserwowany
    Chciałbym zauważyć, że niektóre porty w procach PIC nie mają pullupów tylko tranzystory zamiast nich mogące dostarczyć prądu ok. 25mA :D
    Natomiast rodzina '51 np. 89Cx051 w portach P1 i P3 (piszę o nich bo tylko je poznałem ;( ) ma żałosne oporniki dające max. 5mA z wielkim trudem.
  • #13 2035360
    Fisiak
    Poziom 12  
    Należy wspomnieć o całkowicie innym podejściu do pisania programu na procka z obsługą multiplesowanych wyświetlaczy. Należy zachować jednakowe odstępy czasowe między sterowaniem poszczególnych kostek LED oraz zapewnić conajmniej 25Hz odświerzania całości. Najlepiej skorzystać z przerwania od jakiegoś Timera sprzętowego. W przypadku sterowania bezpośredniego wyświetlaczy LED, procedura obsługi LED jest znacznie prostrza a czas nie jest krytyczny.

    Pozdrowienia dla Wszystkich Forumowiczów
  • #14 2036341
    Jarema
    Użytkownik obserwowany
    Drogi kolego Fisiak:
    Czy aż tak trudnym do wykonania jest napisanie pętli w czasie której zaświecamy dany wyświetlacz - ilość linii w asm można policzyć na palcach jednej ręki.
    A podejście o którym piszesz to ułatwienie sobie zadania, gdyż z bajtu np. jednostek stopni pobieramy wartość, skaczemy do tablicy a następnie ustawiamy dane na port - to żaden problem.
    Można obejść się bez timera i mieć odświeżanie o wiele wyższe niż 50Hz.
  • #15 2036397
    Fisiak
    Poziom 12  
    Drogi kolego Jarema!
    Obsługa multipleksu w głównej pętli programu bez wykorzystania przerwań ma rację bytu przy prostych projektach podobnych do tego termometru (gdzie cała pętla wykonuje się zawsze w jednakowym czasie) ale gdy układ jest bardziej skąplikowany z koniecznością obsługi peryferiów np. RS232, zewnętrzy EEprom oraz moduł transivera. Wówczas trudno jest zachować jednakowe odstępy czasowe między odświeżeniem poszczególnych kostek wyświetlacza i tu polecam przerwanie od Timera. Co do wykorzystania tablicy w celu konwersji wartości np. BCD lub bin na kod dla konkretnego LED to jest to dobry klasyczny i pewny sposób i z tym się zgadzam.

    Pozdrowienia.

    Ps. Polecam układy rodziny PIC jak do tej pory jeszcze mnie nie zawiodły i są cholernie odporne na zakłócenia.
  • #16 2036488
    zatiro
    Poziom 17  
    Witam.
    A nie prościej zastosować SAA1064 (komunikacja po I2c) i sprawa z multipleksowaniem jest z głowy, no i można programowo sterować jasnością świecenia wyświetlaczy.
  • #17 2036704
    Jarema
    Użytkownik obserwowany
    Fisiak napisał:
    Drogi kolego Jarema!
    Obsługa multipleksu w głównej pętli programu bez wykorzystania przerwań ma rację bytu przy prostych projektach podobnych do tego termometru (gdzie cała pętla wykonuje się zawsze w jednakowym czasie) ale gdy układ jest bardziej skąplikowany z koniecznością obsługi peryferiów np. RS232, zewnętrzy EEprom oraz moduł transivera. Wówczas trudno jest zachować jednakowe odstępy czasowe między odświeżeniem poszczególnych kostek wyświetlacza i tu polecam przerwanie od Timera. Co do wykorzystania tablicy w celu konwersji wartości np. BCD lub bin na kod dla konkretnego LED to jest to dobry klasyczny i pewny sposób i z tym się zgadzam.

    Pozdrowienia.

    Ps. Polecam układy rodziny PIC jak do tej pory jeszcze mnie nie zawiodły i są cholernie odporne na zakłócenia.


    Oczywiście, zgadzam się z tym co napisałeś aczkolwiek temat ten dotyczy konkretnego termometru toteż napisałem iż użycie timera nie jest potrzebne :)
    Jeśli chodzi o PIC'e to akurat mnie nie musisz przekonywać - przekonałem się sam - nie wspomnę już o konkurencyjności pod względem zarówno cenowym jak i posiadanych peryferiów w stosunku do podobnych wyrobów np. firmy atmel, której procesorów kiedyś używałem (dzięki bascomowi z resztą :( )

    -> zatiro:
    Wszystko można - można wsadzić MAX7219, SAA1064 tylko pytanie PO CO ? skoro układ ma być tani i prosty a skomplikowanie jak zwykle ma być w tym czymś co na własne potrzeby robi się za darmo czyli w oprogramowaniu.
    Równie dobrze można by wsadzić ICL7107 - temat oklepany no i tylko 1 funkcja.
REKLAMA