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.

Multipleksowanie LED - kiepska jasność

wojciechin 13 Mar 2015 22:04 1356 11
  • #1 13 Mar 2015 22:04
    wojciechin
    Poziom 9  

    Witam.
    Ostatnio zająłem sie multipleksowaniem ledów lecz pojawił się problem iż ledy ledwo co świeciły.
    Przyczyną na pewno nie jest zbyt mała wydajność zasilania bo moge zaświecić dwa wyświetlacze w tym samym czasie (bez multi) i jasność jest w 100% zadowalająca.

    Oto mój kod:

    Kod: c
    Zaloguj się, aby zobaczyć kod



    Plus uproszczony schemat.

    Multipleksowanie LED - kiepska jasność

    Proszę o pomoc i z góry dziękuje.

    PS.Jeśli źle wkleiłem kod prosze powiedzieć.

    0 11
  • #2 13 Mar 2015 22:15
    janek1815
    Poziom 38  

    Rezystory nie po stronie wspólnej anody tylko po stronie segmentów o wartości 100-390 om. W Twoim przypadku nie ma się co dziwić że tak słabo świecą

    Pomiędzy tranzystorami a UC nie masz rezystorów ograniczających prąd bazy?

    0
  • #3 13 Mar 2015 22:17
    xdiax
    Poziom 22  

    Wszystko jest dobrze, tylko nie uwzględniłeś, że każdy z wyświetlaczy jest zapalany na kilka-kilkanaście ms. Powstaje przez to złudzenie, że wyświetlacz świeci słabiej (w ciągu 1s jest emitowanych mniej fotonów niż gdyby wyświetlacz działał bez przerwy). Należy podnieść napięcie anod.

    Dodano po 29 [sekundy]:

    O, przepraszam, ktoś mnie już wyprzedził ..

    -1
  • #4 13 Mar 2015 22:19
    janek1815
    Poziom 38  

    xdiax napisał:
    Wszystko jest dobrze, tylko nie uwzględniłeś, że każdy z wyświetlaczy jest zapalany na kilka-kilkanaście ms.


    Tylko im więcej segmentów zapalonych to dana cyfra będzie słabiej świeciła. Porównaj jasność gdy wyświetlisz cyfre 1 a 8.

    0
  • #5 13 Mar 2015 22:21
    Wojtek75
    Poziom 23  

    Rezystory o takiej wartości to raczej między wyjściem uC a bazą tranzystora powinieneś mieć. Skąd pomysł żeby je wcisnąć między kolektorem tranzystora a anodą wyświetlacza?

    0
  • #6 13 Mar 2015 22:21
    tmf
    Moderator Mikrokontrolery Projektowanie

    No to po kolei - zacznijmy od schematu. Rezystor ograniczający prąd nie możesz umieścić na wspólnej elektrodzie - każdy segment musi mieć własny rezystor. Policz jakie są na nim spadki napięcia w zależności od liczby włączonych LEDów. Oczywiście jak koledzy zauważyli rezystor 2k2 to raczej na bazę tranzystora (coś musi ograniczać prąd bazy), na segmenty, to raczej 220-330 om.
    A teraz program - dla zmiennej licznik równej 1 i 2 coś próbujesz wyświetlić, ale dla wartości 3 i 4 nie wyświetlasz nic - więc na wstępie wyświetlacz przez 50% czasu jest wyłączony. Kolejny błąd - do PORTD wpisujesz stan segmentów po czym natychmiast je wyłączasz przez wpisanie do PORTD wartości 0xFF - dziwne, że w ogóle coś na wyświetlaczu widzisz. Analogicznie ze sterowaniem tranzystorami - włączasz je i natychmiast wyłączasz. Warto też najpierw wyłączyć wyświetlacz, wpisać nową wartość segmentu i dopiero włączyć kolejny - unikniesz problemu duchów.

    0
  • #7 13 Mar 2015 22:25
    wojciechin
    Poziom 9  

    O programie wiem skróciłem go specjalnie gdyż wykorzystuje 2 cyfrowy wyświetlacz,
    a jak chodzi o schemat to musze dać rezystor dla każdego segmetu ale czy dawać też na baze?

    0
  • #8 13 Mar 2015 22:27
    tmf
    Moderator Mikrokontrolery Projektowanie

    Oczywiście i na bazę i na każdy segment. A program po skróceniu jest po prostu błędny, zapewne takie same błędy masz w "oryginale".

    0
  • #9 13 Mar 2015 23:07
    michalko12
    Specjalista - Mikrokontrolery

    W necie jest dużo schematów jak podłączyć wyświetlacz 7 segmentowy np.
    Multipleksowanie LED - kiepska jasność


    Zacznij od poprawienia schematu a potem walcz z programem

    1
  • #10 16 Mar 2015 20:52
    wojciechin
    Poziom 9  

    Zrobiłem tak jak napisał kolega wyżej niestety efekt ten sam - bardzo kiepska jasność, nie rozumiem tego. Oczywiście program poprawiłem zmieniając warunek

    Kod: c
    Zaloguj się, aby zobaczyć kod
    na
    Kod: c
    Zaloguj się, aby zobaczyć kod


    Prosze o pomoc!

    0
  • Pomocny post
    #11 16 Mar 2015 21:04
    tmf
    Moderator Mikrokontrolery Projektowanie

    Błąd, który poprawiłeś jest raczej natury kosmetycznej. Popraw inne błędy o których pisałem.

    0
  • #12 16 Mar 2015 21:27
    wojciechin
    Poziom 9  

    No racja poprawiłem poprzez danie zerowania wyświetlacza na początek przerwania i wszystko śmiga jak powinno. Nie doczytałem do końca twojego poprzedniego postu. Gapa ze mnie :) A widziałem cokolwiek bo pracuje na 1 MHz (mania energooszczędności :)).Jeszcze dużo się pomęcze z timerami sprzętowymi i przerwaniami zanim będe obeznany w tym temacie. A tak po za tym to wielkie dzięki wszystkim za pomoc!

    0