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

[Atmega32][Bascom]Sterowania multipleksowe wyświetlaczami matrycowym 7x5 led

dzik9999 06 Lut 2012 17:54 5197 26
  • #1 10504835
    dzik9999
    Poziom 14  
    Witam
    Zmontowałem sobie układ Atmega32 z pojedynczym wyświetlaczem 5x7 i wszystko działa tak jak należy ale problem zaczyna się w innym miejscu. Potrzebuję połączyć 3 takie wyświetlacze, lecz nie mam pojęcia w jaki sposób to zrobić.
    Proszę o pomoc

    Tutaj podaję listing programu
    Kod: text
    Zaloguj się, aby zobaczyć kod

    [Atmega32][Bascom]Sterowania multipleksowe wyświetlaczami matrycowym 7x5 led
  • #2 10504938
    Pev4
    Poziom 12  
    Cześć,
    Musisz dołożyć dwa kolejne wyświetlacze i:
    - linie W1-W7 podłączyć do nich równolegle z pierwszym wyślwietlaczem
    - dorobić wyjścia C6-C15 analogicznie do tych co już istnieją (każde do osobnego portu kontrolera - w Mega32 wystarczy wyjść)
    - w programie zmienić:
    Dim Kol(5) As Byte na Dim Kol(15) As Byte

    C1 Alias Portb.0 'przypisanie linii PB0 nazwy C1
    ...
    C5 Alias Portb.4 'przypisanie linii PB4 nazwy C5
    i przypisać tak kolejne do Twoich nowych wyjść aż do C15

    wszystkie Kol(5) na Kol(15)

    For I = 1 To 5 na For I = 1 To 15

    analogicznie rozwinąć wszystkie Case - do 15
    dodać kolejne tablice na końcu programu.
  • #3 10523936
    heyka
    Poziom 17  
    Witam, bardzo interesuje mnie poruszony tutaj temat. Wlaśnie jestem na etapie zdobywania wiedzy na temat sterowania tego typu tablic. Podłaczenie 2 kolejnych wyświetlaczy led to jedno, wystarczy protów w procesorze, ale co gdyby trzeba było zrobić tablicę led np z 20 takich tablic?
  • #4 10524271
    Pev4
    Poziom 12  
    Wtedy najlepiej używać rejestrów przesuwających, które będą podłączały kolejne kolumny.
    Liczba wierszy się nie zmienia.
  • #5 10531399
    heyka
    Poziom 17  
    Pev4 napisał:
    Wtedy najlepiej używać rejestrów przesuwających, które będą podłączały kolejne kolumny.
    Liczba wierszy się nie zmienia.



    Masz może jakiś schemat z zastosowaniem rejestrów?
  • #6 10540349
    Pev4
    Poziom 12  
    Nie mam, ale to żadna filozofia raczej...
    Zajrzyj do noty jakiegoś rejestru SIPO, np 74595. Reguła jest taka, że wrzucasz na taki rejestr jedną "jedynkę" i przesuwasz ją aż na sam koniec linii, po czym wrzucasz kolejną "1". Rejestry możesz łączyć szeregowo, tj. z ostatnie wyjście rejestru podajesz na wejście kolejnego. Sygnał zegarowy wszystkich rejestrów łączysz. Przemiatanie musi być odpowiednio szybsze, żeby wyświetlacz nie migał.
  • #7 10540448
    heyka
    Poziom 17  
    Pev4 napisał:
    Nie mam, ale to żadna filozofia raczej...
    Zajrzyj do noty jakiegoś rejestru SIPO, np 74595. Reguła jest taka, że wrzucasz na taki rejestr jedną "jedynkę" i przesuwasz ją aż na sam koniec linii, po czym wrzucasz kolejną "1". Rejestry możesz łączyć szeregowo, tj. z ostatnie wyjście rejestru podajesz na wejście kolejnego. Sygnał zegarowy wszystkich rejestrów łączysz. Przemiatanie musi być odpowiednio szybsze, żeby wyświetlacz nie migał.


    Rozwiązanie proste, ale przy np 20 wyświetlaczach po 7 lini każdy potrzeba bardzo dużo rejestrów.
  • #8 10540513
    Pev4
    Poziom 12  
    Takie wyświetlacze mają typowo 5 lub 8 kolumn.
    To nie liczba rejestrów jest tutaj problemem (bo kosztują one grosze) tylko czas świecenia jednej kolumny. Przy dużej liczbie wyświetlaczy będzie on bardzo krótki. Żeby zachować odpowiednią jasność będziesz musiał zwiększać prąd diod.
    Nie wiem jak się to realizuje w komercyjnych rozwiązaniach, bo nigdy się tym nie interesowałem, ale wydaje mi się, że właśnie w ten sposób.

    Jeśli byłoby aż tak dużo kolumn, że nie dałoby się tego ogarnąć jedną linią, to podzieliłbym urządzenie na dwa identyczne moduły i przemiatał równolegle dwie części wyświetlacza.
  • #9 10685254
    dzik9999
    Poziom 14  
    witam
    dzięki za odpowiedz. Mozna powiedziec ze prawie wszystko działa tylko jest jeden problem. jak chcę wyświetlic napis "test" to wyświetla się ttteeesssttt.
  • #11 10685609
    Krauser
    Poziom 26  
    Schemat jest z książki "Programowanie mikrokontrolerów AVR w języku Bascom".
  • #13 10685751
    dzik9999
    Poziom 14  
    Schemat jest poprawny bo ja nie korzystam z układow tylko z tranzystorów. tak jak napisał kolega Pev4
  • #14 10685776
    dondu
    Moderator na urlopie...
    dzik9999 napisał:
    Schemat jest poprawny bo ja nie korzystam z układow tylko z tranzystorów. tak jak napisał kolega Pev4

    Nie pisałem o tranzystorach tylko o mikrokontrolerze.
    Podaj proszę autora książki.
  • #15 10685802
    dzik9999
    Poziom 14  
    Marcin Wiązania
    W pierwszym poscie jest kod zródłowy tego programu prosto z ksiązki. Po odpowiednim podrasowaniu działa na Atmega32.Tylko jest problem jak wspomniałem wyżej
  • #17 10685896
    dzik9999
    Poziom 14  
    No niestety nie
  • #18 10685927
    dondu
    Moderator na urlopie...
    Autor nie podłączył zasilania (pin AVcc) pomimo, że w datasheet jest wyraźnie napisane, że musi być podłączone.
    Dodatkowo nie zadbał w żaden sposób o filtrowanie zasilania mikrokontrolera.

    Tutaj znajdziesz sporo na ten temat: http://mikrokontrolery.blogspot.com/2011/04/minimalne-podlaczanie-pinow.html

    BTW. Z którego roku jest ta książka?
  • #19 10685963
    dzik9999
    Poziom 14  
    Ksiązka jest z 2004 r
    ten schemat jest tylko poglądowy, przedstawia w jaki sposob podłączyc wyświetlacz matrycowy.
    W rzeczywistości avcc jest podłączone bo tak jest płytka zl2avr zaprojektowana(schemat niżej)

    [Atmega32][Bascom]Sterowania multipleksowe wyświetlaczami matrycowym 7x5 led
  • #20 10685991
    dondu
    Moderator na urlopie...
    Jeżeli to schemat poglądowy, to:
    - dlaczego pin Vcc jest podłączony do 5V, a pin AVcc już nie, tym bardziej, że oba piny GND są podłączone do masy?
    - kwarcu z kondensatorami nie powinno być, bo jest na schemacie głównym.
    Innymi słowy brak konsekwencji.

    Ważne żeby o tym nie zapominać, bo wrzucenie takiego schematu (pierwszy który wkleiłeś) na forum powoduje, że czytający go początkujący nie posiadający tej książki, będą popełniać poważny w skutkach błąd.

    Zapomniałem wcześniej napisać jeszcze o niepodciągniętym lub niezaprogramowanym pinie RESET - na drugim schemacie ten problem jest rozwiązany.
  • #21 10686055
    dzik9999
    Poziom 14  
    Kk błędy schematu to swoją drogą. Wróćmy może do mojego problemu z powtarzaniem liter. Zrobiłem tak jak zalecił kolega Pev4
  • #23 10688869
    Pev4
    Poziom 12  
    Powodów może być kilka... pokaż aktualny kod.
  • #24 10688962
    dzik9999
    Poziom 14  
    Kod: text
    Zaloguj się, aby zobaczyć kod


    To jest akualna wersja powtarzająca litery. i pojawia się kolejny problem. za kazdym razem gdy chcę wgrac ten program muszę od nowa tworzyc nowy plik i go kompilowac, ponieważ proba wgrania jednego pliku dwa razy powoduje że procesor nie wykonuje tego programu.
  • #25 10695365
    Konto nie istnieje
    Konto nie istnieje  
  • #26 10696490
    dzik9999
    Poziom 14  
    Są to 3 wyświetlacze matrycowe 5x7 .
    Do każdej kolumny podłączony jest tranzystor.
    Schemat podłączenia
    [Atmega32][Bascom]Sterowania multipleksowe wyświetlaczami matrycowym 7x5 led
    a tu filmik z działaniem obecnego programu


  • #27 10696675
    Pev4
    Poziom 12  
    Nie ma błędów w schemacie. Kod został po prostu uszkodzony w trakcie modyfikacji na początku tematu.
    Po prostu wkradł się błąd logiczny: pomnożyłeś wszystko w kodzie x3, to znaki też się wyświetlają x3. Teraz tylko musisz namierzyć co jest niepotrzebnie powielone.

    Pierwsze podejrzenie pada na tablice na samym końcu kodu. Zauważ, że każda z pięciu w pierwszej wersji programu jest inna. Ty je powieliłeś ot tak sobie, nie wprowadzając tam modyfikacji.
REKLAMA