Elektroda.pl
Elektroda.pl
X

Search our partners

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

Wyświetlacz 7seg LED słabo świeci (Atmega8)

09 Sep 2007 16:32 5629 18
  • Level 13  
    Witajcie! Jakoś niedawno zacząłem się bawić z mikrokontrolerami i nadszedł czas, żebym popróbował z wyświetlaczem 7-segmentowym LED. Więc kupiłem sobie wyswietlacz ze wspólną katodą (Kingbright), podłączyłem pod AtMega 8 i działa, tylko jakoś tak niezbyt jasno świeci. Jaka moze być tego przyczyna?

    trochę danych:
    procesor zasilam 5v wyprowadzonym bezpośrednio z peceta,
    uP taktuję kwarcem 4MHz,
    segmenty wyświetlacza są podpięte bezpośrednio pod piny portD (bez rezystorów, bo chcialem sprawdzic tylko czy działa)

    Ktoś ma jakiś pomysł? Zasilanie? Brak rezystorów pomiędzy segmentami a prockiem?

    I przy okazji... O co biega z rezystorami podciągającymi? Do czego to służy?

    Będę wdzięczny za pomoc
  • Level 17  
    Ja bym nie podłączał wyświetlacza bezpośrednio do portu.

    Do mojego procka Atmega128 podpiąłem zieloną diodę LED (różne kolory mają różne napięcia złącza) przez rezystor 120Ω do masy i uzyskałem prąd 17mA gdzie prąd max. portu wynosi 20mA.
    Procka zasilam napięciem 4,9V a na wyjściu gdzie jest podpięta dioda mam 4,4V.

    Dioda świeci dosyć jasno.

    Podłącz katodę wyświetlacza do masy a anody podłącz przez rezystory 150-180Ω, będziesz widział czy jest jakaś różnica. Może w Twoim wypadku zadziałało jakieś wewnętrzne zabezpieczenie przeciążeniowe na porcie, może ktoś ma większe doświadczenie z tego typu sprawami.
    Sam zaraz spróbuję podpiąć cały wyświetlacz ale ja mam ze wspólną anodą i czerwone. Chciałem zrobić zegarek na 4 takich i nie wiem jaka będzie jasność po multipleksowaniu a wartości rezystora z portu nie można obniżyć za bardzo żeby nie przekroczyć katalogowych 20mA z procka.

    Trochę chaotycznie ale szczerze :)
    Pozdrawiam, Janusz
  • Level 20  
    Port daje dużo większy prąd, gdy jest w stanie 0, czyli musiałbyś mieć wyświetlacze ze wspólną anodą. A jeśli chcesz te, to daj jakiś bufor ttl, na każdy segment, ew BCD driver (74ls47). Uzyskasz przez to zmniejszenie ilości wyprowadzeń potrzebnych do obsługi wyśw. (z 7 do 4) dla jednego, + ew jakieś wyjścia do sterowania anodami, dla multipleksowania tego.
  • Level 13  
    Hm... Zaopatrzyłem się w wyświetlacz ze wspólną katodą, bo myślałem, że tak bedzie prościej nim sterować. No i rzeczywiście jest łatwo. Tylko martwi mnie ta mała jasność segmentów. Spróbowałem z rezystorami 220 i nie widze różnicy. A driver typu 74ls47 raczej odpada, bo będę potrzebował jeszcze obsługę kropki dziesiętnej, czyli nieszczęsnego ósmego segmentu...
  • Level 20  
    Do przecinka możesz zastosować tranzystor i jedno wyprowadzenie uC.
    Co do "łatwości" - jeżeli podłączasz je bezpośr. do portu to jest tak samo (pomijając ciemne świecenie), tyle że trzeba odwrócić stany logiczne.
    A jeżeli nie chcesz drivera (choć to dobre rozwiązanie, tyle że ten który podałem współpracuje ze wspólną anodą) możesz zastosować jakieś bramki NAND, buforki czy co tam masz pod ręką. Wtedy będzie napewno świecić jaśniej.
  • Level 13  
    Spróbuję w takim razie z wyświetlaczem wspólnej anody, bo mam jakiś stary w szufladzie. Dobrze rozumiem, że mam podłączyć ogólne VCC do anody, katody podłączyć do nóżek uP, i to bedzie świecić jak na pinach dam 0?
  • Level 20  
    Tak, tylko dobrze by było dodać rezystor na każdy pin uC (nie jeden od strony anody, bo to nie to samo).
    Pozatym, dalej namawiam na zastosowanie jakiegoś sterowania tym przez inne scalaki, bo przy większej ilości wyświetlacza, albo braknie wydajności prądowej uC, albo skończą ci sie nóżki.
    Ja ostatnio zrobilem moduł 8 wyśw Led + 2 scalaki ttl, i wszystko ładnie łączy sie poprzez 6 pinów. Oczywiście wyświetlacze są multipleksowane.
  • Level 13  
    Ja w załozeniu mam multipleksowany podwójny wyświetlacz i spokojnie moge przeznaczyć 10 nóżek na to (8 segmentów + 2 na multipleksowanie). A dlatego omijam szerokim łukiem rozwiazania z dodatkowymi driverami czy innymi bajerami, bo w tym załozeniu jest też jak najmniejsza ilość elementów i jak najmniejsza powierzchnia płytki :)
  • Level 13  
    Wszystkie piny portu D tego mikroprocesora, zgodnie z notą katalogową Atmel'a, są podciągnięte do napięcia zasilającego poprzez wewnętrzne rezystory. Ich rezystancja jest dosyć duża, więc wydajność prądowa wejścia w stanie logicznej jedynki jest niewielka. Pomoże tu podłączenie do każdego pinu portu D zewnętrznego rezystora podciągającego (łączącego pin z zasilaniem mikroprocesora) o wartości tak dobranej, aby po pierwsze wysterować diodę wyświetlacza, po drugie przy logicznym 0 'na pinie' mikroprocesora ograniczyć natężenie prądu wpływającego do portu do wartości bezpiecznej. Proponuję zastosować R z zakresu od 300 do 500 ohm. Przy 1 logicznej prąd diody będzie wynosił odpowiednio 9.3 mA do 5.6 mA, a przy 0 logicznym prąd wpływający do każdego z wyprowadzeń wyniesie odpowiednio od 16.7 mA do 10 mA.
  • Level 13  
    Niezbyt dobrze stoję z elektroniką i jak napisałem w pierwszym poście, raczej nic nie wiem o rezystorach podciągających. Z powyższego postu zaczyna mi sie rozjaśniać ich z ich przeznaczeniem, ale jeszcze mam pytanie, jak ten badziew się podłącza? Mógłbym poprosić o jakąś małą przykładową grafikę ze schematem?
  • Level 20  
    Każdy rezystor podciągający (pull-up) podłączasz do pinu uC odpowiedzialnego za jeden segment wyśw i plusa zasilania.
  • Helpful post
    Level 13  
    Poniżej podaję zrobiony na szybko szkic proponowanego przeze mnie podłączenia rezystorów podciągających do portów mikroprocesora, w sytuacji sterowania wyświetlaczem LED ze wspólną katodą (problem opisany przez autora tematu). Oczywiście pominięte są na rysunku wszystkie inne elementy niezbędne do poprawnej pracy mikroprocesora. Zastosowanie takich rezystorów powinno pomóc i wyświetlacz się 'rozjaśni', ale to nie jest optymalne rozwiązanie sterowania wyświetlaczem LED z CC przez µC.
    Wyświetlacz 7seg LED słabo świeci (Atmega8)
  • Level 13  
    Dziękuję za czytelny rysunek, jeszcze dzisiaj to wypróbuję. I przepraszam, że tak marudzę, ale mam jeszcze dwa pytania:

    1) czy jest jakaś zasada przy określaniu wartości rezystorów podciagających, czy wystarczy dowolnie z przedziału 300-500, jak przeczytałem wyzej?

    2) czy dobrze rozumiem teorię rezystorów podciągających: wyświetlacz jest na stałe podpięty pod zasilanie, ale przez rezystor postawiony pod progiem wysterowania, natomiast ustawienie stanu niskiego/wysokiego (odpowiednio jaki potrzebujemy) jest "dopalaczem" pomagającym wysterować światełka?
  • Level 28  
    Po co wogóle rezystory podciągające przy wyświetlaczu led?
    Aha, po to aby zwiększyć prąd wyświetlacza.
  • Helpful post
    Level 20  
    mgsk8er wrote:

    2) czy dobrze rozumiem teorię rezystorów podciągających: wyświetlacz jest na stałe podpięty pod zasilanie, ale przez rezystor postawiony pod progiem wysterowania, natomiast ustawienie stanu niskiego/wysokiego (odpowiednio jaki potrzebujemy) jest "dopalaczem" pomagającym wysterować światełka?


    W stanie 1 przez rezystor płynie prąd do wyśw (przez wew rezystor atmegi też).
    W stanie 0 atmega zwiera rezystor do masu i cały prąd wpływa do portu omijając wyświetlacz.

    Quote:
    1) czy jest jakaś zasada przy określaniu wartości rezystorów podciagających, czy wystarczy dowolnie z przedziału 300-500, jak przeczytałem wyzej?

    Jest. R = U/I :)
    W datasheecie są podane maksymalne prądy dla portów i nie można ich przekroczyć, więc musisz tak dobrać rezystor aby prąd był w stanie zaświecić wyświetlacz, ale na tyle mały, by w stanie 0 nie upalił portu.
  • Level 13  
    ah, stare dobre prawo Ohma :)

    zaraz popróbuję z tymi rezystorami
  • Level 17  
    Jeżeli wyświetlacz nadal słabo świeci, to zmierz jaki prąd płynie przez każdy segment wyświetlacza. Na początek bez multipleksowania. Może to pomoże wyciągnąć odpowiednie wnioski i pokierować Cię dalej.
  • Level 13  
    Podłączyłem z tymi rezystorami podciagającymi i działa jak natura chciała!
    Dzięki ogromne!

    Problem rozwiazany, efekt osiągnięty, i myślę, ze temat już zamknięty.
    Jeszcze raz ogromne dzięki :)
  • Level 13  
    mgsk8er wrote:

    1) czy jest jakaś zasada przy określaniu wartości rezystorów podciagających, czy wystarczy dowolnie z przedziału 300-500, jak przeczytałem wyzej?


    Wartości rezystorów dobieramy odpowiednio do aplikacji. Podane wcześniej przeze mnie wartości są jedynie przykładowe i spełniają założenia układu.

    mgsk8er wrote:

    2) czy dobrze rozumiem teorię rezystorów podciągających: wyświetlacz jest na stałe podpięty pod zasilanie, ale przez rezystor postawiony pod progiem wysterowania, natomiast ustawienie stanu niskiego/wysokiego (odpowiednio jaki potrzebujemy) jest "dopalaczem" pomagającym wysterować światełka?


    Wyjście mikroprocesora jest typu otwarty dren. Znaczy to, że gdy zapisujemy do portu '0' logiczne to pin jest zwarty do masy, Natomiast gdy '1' logiczną to pin jest wewnętrznie od masy 'odcięty'. Inaczej mówiąc dla '0' do pinu portu może wpływać prąd, a dla '1' nie może. W opisanej konfiguracji każdy pin portu D powinien mieć możliwość stać się też źródłem prądu. I to jest rola rezystorów podciągających. Gdy zapisujemy '1' to prąd płynie od zasilania poprzez rezystor podciągający przez diodę LED do masy powodując, że dioda świeci. Gdy mamy '0' to pin jest zwarty do masy, a więc różnica potencjałów na zaciskach diody jest równa 0V i dioda nie świeci. Pamiętajmy jednak, że prąd poprzez rezystor podciągający popłynie teraz do macy poprzez pin mikroprocesora.
pcbway logo