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

Obsługa wyświetlaczy LED na MAX7219

maximus22_kr 02 Lut 2017 11:06 1092 7
  • #1 02 Lut 2017 11:06
    maximus22_kr
    Poziom 18  

    Witam
    Wykonałem płytkę zegara LED - cztery wyświetlacze SC08-11GWA ( zielone ), dwa wyświetlacze SC08-GWA ( zielone ), dwie diody "dwukropka" oraz siedem diod LED symbolizujących dni tygodnia ( LED firmy OPTOSUPPLY 2x5x7 ). Wyświetlacze są ze wspólną katodą więc pasują pod MAX7219.
    Potrzebuje dobrać wartość rezystora Iset.
    SC04 - 20 mA / 2,2 - 2,5V
    SC08 - 20 mA / 2,2 - 2,5V
    LED OPTOSUPPLY 3,1V

    Przeglądam PDF układu MAX7219 i chyba powinienem ustawić albo wartość 15,8K ( 30 mA /2,5V ) albo 25,9K ( 20 mA / 2,5V )

    Moje pytanie bierze się stąd, że kilka razy składałem chińskie płytki z ośmioma wyświetlaczami LED i zawsze był tam rezystor w granicach 10K, czyli 40 mA / 3,0V. Rzadko się spotyka takie małe wyświetlacze czerwone z takimi wysokimi parametrami. A nie chciałbym spalić swoich wyświetlaczy, a jednocześnie mieć jakąś regulacje jasności świecenia.

    0 7
  • Elmark
  • #2 02 Lut 2017 12:53
    michalko12
    Specjalista - Mikrokontrolery

    Przy multipleksowanych wyświetlaczach, gdzie przez wyświetlacz płynie prąd okresowo, można, a nawet trzeba zwiększyć maksymalny prąd. W dokumentacji wyświetlacza powinny być dane odnośnie maksymalnego dopuszczalnego prądu przy sterowaniu impulsowym.
    W podanym wyświetlaczu masz Peak Forward Current = 140mA dla 1/10 Duty Cycle, 0.1ms Pulse Width. Spokojnie te wyświetlacze przyjmą na siebie 40mA przy wypełnieniu 1/4 czy 1/5

    0
  • #3 02 Lut 2017 13:24
    maximus22_kr
    Poziom 18  

    Dziękuję za odpowiedź. Do tej pory używałem 74HC595 i wyświetlaczy ze wspólną anodą, tam trzeba na 1 wyświetlacz 50 Hz odświeżania, czyli na osiem robi się 400 Hz, no i napięcie trzeba podać większe. Tutaj dzieje się to niemal automatem, po prostu wygoda, tyle, że wyświetlacze muszą być wspólna katoda - wybór trochę mniejszy i ceny jakby trochę wyższe.

    Czyli zostawić 40 mA, ewentualnie poeksperymentować z napięciem ?
    Jako, że trudno o rezystory o takich wartościach, jak zachowa się układ, gdy zamiast 10,6 K dostanie 10K ( powiedzmy, że 10,1K ) ?

    0
  • Elmark
  • #4 02 Lut 2017 13:46
    michalko12
    Specjalista - Mikrokontrolery

    maximus22_kr napisał:
    Czyli zostawić 40 mA, ewentualnie poeksperymentować z napięciem ?

    Żadnych eksperymentów z napięciem nie należy robić. Napięcie powinno być wystarczające do zasilenia wszystkich wyświetlaczy. Stabilizacją prądu zajmuje się MAX7219.
    maximus22_kr napisał:
    Jako, że trudno o rezystory o takich wartościach, jak zachowa się układ, gdy zamiast 10,6 K dostanie 10K ( powiedzmy, że 10,1K ) ?

    Nie będzie to miało żadnej zauważalnej różnicy.

    0
  • #5 02 Lut 2017 14:12
    maximus22_kr
    Poziom 18  

    Jeśli chodzi o napięcie to raczej chodziło mi o ustawienie rezystorem Iset. Według PDF można regulować oprócz prądu napięcie - 1,5 - 3,5V

    0
  • #6 28 Lut 2017 00:11
    maximus22_kr
    Poziom 18  

    Dziękuję za pomoc, dałem 10K i jest dobra regulacja jasności od 1 do 29.
    Wyświetlacze podłączone są jak na schemacie poniżej
    Obsługa wyświetlaczy LED na MAX7219
    reszta jest na drugiej płytce - Atmega32 + MAX7219 + RTC

    Przyznam, że przy montażu popełniłem błąd lutując odwrotnie diody dla dnia tygodnia - przez co wszystkie delikatnie świeciły, no i oczywiście nie dały się sterować.

    Natomiast mam dziwne zachowanie zegara w niektórych sytuacjach. Tzn. zasilając układ przez programator ( podobnie jak przez zasilacz ), zegar nie uruchamia się ( tzn. odczytuje raz czas i go wyświetla i nic więcej ), Natomiast gdy wyłączę komputer i monitor to wtedy rusza - wygląda jakby komputer lub monitor nieźle zakłócały. Nie wiem czy to wina płytki zegara ( połączenie na płytce pomiędzy Atmega i MAX7219 ma może 3 cm ), płytka ma "rozlaną masę". Na pewno MAX7219 jest kapryśny - miałem z nim problem jak podłączałem kaskadowo dwie sztuki, to czasem miał problem z wyświetlaniem.

    Natomiast mam problem z dwoma LEDami robiącymi za "kropki". Niestety nieopatrznie użyłem przeźroczystych, które świecą mocniej niż wyświetlacz. Czy można w miarę bezinwazyjnie ( wolałbym uniknąć odlutowania LED - mało miejsca pomiędzy drugim a trzecim wyświetlaczem), np. wlutować rezystory ?
    Myślałem też, aby nieco spiłować "główkę" LED i pomalować ją czarnym pisakiem wodoodpornym, ale pewnie po jakimś czasie to przestanie działać.

    0
  • #7 28 Lut 2017 00:58
    373522
    Użytkownik usunął konto  
  • #8 02 Mar 2017 10:43
    maximus22_kr
    Poziom 18  

    Co do jasności to posłużyłem się wartościami z PDF układu MAX7219 z kolumny duty cycle zamiast wartością heksadecymalną ( od 0 do F ).

    Co do płytki zegara to korzystam z CLKOUT układu PCF8563, oczywiście wejście INT z rezystorem 10K do VCC.
    Zresztą co będę opowiadał - schemat poniżej
    Obsługa wyświetlaczy LED na MAX7219

    Może za mało kondensatorów dałem, nie mam pomysłu może złe ustawienie fusebitow. Jakaś pechowa dla mnie ta płytka jest, nawet moduł playera MP3 TF16P milczy. Może to właśnie player TF16P za bardzo obciąża ?

    Cytat:
    Myślę ze to procek staje a nie Maxy

    możliwe, tylko dlaczego nie zawsze, tylko w pewnych okolicznościach ?
    Dzieje się tak, że przy włączeniu zasilania nic się nie dzieje, albo błyśnie jedna lub kilka cyfr. Jeśli zadziała, to najpierw bardzo słabo wyświetla losowe znaki, a później już zaczyna prawidłowo pokazywać.

    I jeszcze zauważyłem jeszcze coś takiego, nawet u mnie w pracy, gdzie układ "łaskawie" chce działać, nie startuje od razu, muszę użyć opcji "Sprawdź podłączony AVR" w programie mkAVR Calkulator - czyli wykonać reset. Zasilałem też z zasilacza 5V/2A - brak reakcji.
    Dodano po 16 [godziny] 49 [minuty]:
    Cytat:
    Myślę ze to procek staje a nie Maxy

    Niestety jednak nie mogę się zgodzić z tym. Dałem wysyłanie na UART czasu co sekundę i nawet jeśli się nie włączy MAX7219 to terminal mi odbiera wysyłany czas. Nie ma znaczenie w jaki sposób zasilam- przez ISP, czy z zewnętrznego zasilacza. W domu spróbuję podmienić MAX na inny.

    Wysyłanie do MAX'a
    Kod: vbnet
    Zaloguj się, aby zobaczyć kod


    Inicjowanie MAX'a
    Kod: vbnet
    Zaloguj się, aby zobaczyć kod


    W pętli głównej
    Kod: vbnet
    Zaloguj się, aby zobaczyć kod

    Dodano po 18 [godziny] 18 [minuty]:
    Problem rozwiązany. Przyczyna była jedna z najbardziej znanych - kondensatory. Mimo trzech sztuk 10uF i trzech SMD 100nF było jednak za mało. Wy lutowałem dodatkowe złącze ( które było blisko układu MAX7219) dla zewnętrznej płytki dodatkowego MAX7219 i do VCC i GND dolutowałem kondensator 10uF. Działa bez problemu.

    Więc wracając jeszcze do dyskusji na temat moich problemów z połączeniem kaskadowym kilku MAX'ów, przyznam Koledze rację - na płytkach chińskich z MAX7219 i matrycą nie ma problemów, a na płytkach z wyświetlaczami u mnie występują - zrobiłem wczoraj eksperyment i dołożyłem do każdej płytki z wyświetlaczami kondensator 10uF i problemy zniknęły. Właśnie dlatego wpadłem na pomysł, że może być to brak kolejnego kondensatora. Na chińskich płytkach z matrycą i MAX w wersji DIP są i tam nie mam problemów z wyświetlaniem.

    Pewnie zaraz spadnie na mnie fala krytyki za to zasilanie.

    0