Elektroda.pl
Elektroda.pl
X
Renex
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[C][Atmega8] Efektywne sterowanie diodami LED

Fifi209 19 Lip 2012 20:13 2085 10
  • #1 19 Lip 2012 20:13
    Fifi209
    Poziom 7  

    Witam, zastanawiam się jak sterować diodami LED wykorzystując jak najmniej nóżek uC. Jeżeli dobrze myślę to za pomocą 3 nóżek mogę wysterować 7 diod, za pomocą 4 nóżek już 15. Dobrze myślę?

    3 piny, możliwe stany:
    000
    001
    010
    100
    011
    110
    101
    111

    Tylko jak podłączyć diody do uC, aby sterować w ten sposób? A może po prostu podłączyć drugi uC (bo mam ich kilka) i wysyłać sygnał do drugiego kontrolera, który będzie służył tylko do tego?

    0 10
  • Renex
  • Renex
  • #3 19 Lip 2012 20:33
    tronics
    Poziom 36  

    Wystarczą 3 nóżki (D, OE, CLK), kilka rejestrów przesuwnych i ULN. Kwestia jak szybko muszą Ci się zmieniać stany oraz jak bardzo możesz sobie skomplikować płytkę.

    0
  • #4 19 Lip 2012 20:37
    Fifi209
    Poziom 7  

    tronics napisał:
    Wystarczą 3 nóżki (D, OE, CLK)

    Mógłbyś opisać to dokładniej?

    tronics napisał:

    kilka rejestrów przesuwnych i ULN.

    Czy to już jest domyślnie w uC czy trzeba dokupić? (atmega8 jak w tytule)

    tronics napisał:

    Kwestia jak szybko muszą Ci się zmieniać stany

    Nie szybciej niż raz na sekundę, to tylko zabawa :)

    tronics napisał:

    jak bardzo możesz sobie skomplikować płytkę.

    j/w tylko zabawa, na płytkach stykowych obecnie bo nie mam dostępu do lutownicy ^^

    0
  • #5 19 Lip 2012 21:02
    LordBlick
    VIP Zasłużony dla elektroda

    Fifi209 napisał:
    tronics napisał:

    kilka rejestrów przesuwnych i ULN.

    Czy to już jest domyślnie w uC czy trzeba dokupić? (atmega8 jak w tytule)
    Po-Googlajmy: Rejestr przesuwny ULN2003

    0
  • #6 19 Lip 2012 21:29
    tmf
    Moderator Mikrokontrolery Projektowanie

    Najefektywniejszym sposobem bez dodatkowych elementów jest Charlieplexing. Poza porąbanym sterowaniem masz najlepszy stosunek liczbi pinów do diod. Jeśli możesz sobie pozwolić na elementy dodatkowe to SPI + rejestry przesuwnę, ew. na I2C dedykowane sterowniki LED.

    0
  • #8 19 Lip 2012 22:20
    tronics
    Poziom 36  

    Cytat:
    Mógłbyś opisać to dokładniej

    Typowy 8 bitowy rejestr ma 1 szeregowe wejście (czyli pin na który podajesz albo 0, albo 1). 1 pin na "zegar" gdzie (często) zbocze narastające inicjuje przesunięcie zawartości rejestru o 1 (i aktualny stan wejścia D wskakuje do rejestru). 2 szeregowe wyjścia (jedno zanegowane - do łączenia kilku urządzeń), jeden pin strobe/latch enable zatrzaskujący aktualny stan rejestru wewnątrz układu w drugim rejestrze - zatrzaskowym właśnie. I wreszcie pin /OE czyli output enable, który pozwala przenieść stan rejestru zatrzaskowego na wyjścia równoległe. To jak ktoś konkretnie chce wykorzystać rejestr jest jego sprawą. Nie lubię multipleksowania, ani wykorzystania za dużej ilości pinów, a czterema zrobiłem całkiem miłą obsługę wyświetlaczy 7seg z reg. jasności na rejestrach przesuwnych właśnie.

    0
  • #9 19 Lip 2012 23:28
    Fifi209
    Poziom 7  

    tronics dziękuję za szczegółowy opis, mógłbyś mi tylko jakie rejestry przesuwne będą odpowiednie do tego zastosowania? Ważne, żeby było łatwo dostępne, bo jedynym moim źródłem jest ebay.co.uk :P

    Innym też dziękuję za pomoc i różne pomysły ;)

    0
  • #10 20 Lip 2012 00:02
    oj
    Poziom 42  

    Ale rejestry też zajmują miejsca a można wykorzystać wspomnianą przez tmf sterowanie przez "Charlieplexing"

    Teoria:
    Link

    Przykład ze źródłami:
    Link
    Link

    0