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.

Projektowanie wyświetlacza widmowego RGB - proszę o porady

dumel111 03 Sty 2013 21:42 1914 13
  • #1 03 Sty 2013 21:42
    dumel111
    Poziom 17  

    Witam !

    Jestem w trakcie projektowania wyświetlacza widmowego na 10 diodach RGB.
    Obmyśliłem sterowanie diodami, do wysterowania których potrzebuję tylko 13 portów mikrokontrolera.

    Projektowanie wyświetlacza widmowego RGB - proszę o porady

    Ogólna zasada działania to (aby wyświetlić np. po kolei trzy kolory jednej diody)

    1. Ustawić wysoki stan na wyjściu, do którego przez odpowiednie rezystory są podłączone wszystkie trzy katody
    2. Za pomocą odpowiedniego tranzystora włączyć którąś z barw, dodatkowo przez PWM podanego na baze modulowac jej jasnośc.

    Z racji że jestem początkującym elektronikiem proszę o porady, czy to wogóle będzie działać, jak szybki tranzystor trzeba dobrać.

    Pozdrawiam

    0 13
  • #5 03 Sty 2013 22:56
    94075
    Użytkownik usunął konto  
  • #6 03 Sty 2013 23:11
    szulat
    Poziom 23  

    takie multipleksowanie w wyświetlaczu widmowym musiałoby być bardzo szybkie żeby w czasie przesuwania wyświetlacza nie było widać rozbicia kolorów na RGB. nawet jeżeli będzie bardzo szybkie to i tak jest niekorzystne bo dodatkowo tracisz jasność która i tak jest już zmniejszona z samej zasady działania wyświetlacza widmowego (w sensie że jeden rząd ledów musi obsłużyć cały obraz więc jego jasność rozdziela się na całą powierzchnię).

    0
  • #7 03 Sty 2013 23:11
    BlueDraco
    Specjalista - Mikrokontrolery

    Ja bym posadził tranzystory PMOS na anodach, a katody sterował z mikrokontrolera, chociaż to nieduża różnica. Prawdopodobnie prąd ok. 10 mA na diodę powinien wystarczyć, czyli rzecz ma szansę powodzenia - pod względem elektrycznym.
    Kłopot jest gdzie indziej - z wydajnością zabytkowego mikrokontrolera. Przyjmując częstotliwość odówieżania 200 Hz mamy częsotliwość PWM 600 Hz. Załóżmy, że zrobimy 64 kroki jasności - to już ponad 36 kHz. W każdym przerwaniu trzeba sprawdzić wartość dziewięciu zmiennych. Załóżmy optymistycznie, że będzie to 15 cykli zegara na kanał. 36000 * 9 * 15 to ok. 5 mln. cykli procesora na sekundę. Założenia były optymistyczne, nie uwzględniliśmy modyfikacji zawartości wyświetlacza ani wejścia i wyjścia z przerwania - szacuję, że ATmega się nie wyrobi z tym zadaniem. Zmień procesor na jakiegoś małego Cortexa...

    0
  • #8 03 Sty 2013 23:42
    szulat
    Poziom 23  

    nie wiemy co Autor zamierza wyświetlać, ile potrzebuje odcieni ani jak będzie poruszać tym wyświetlaczem, ale przykładowe 200 Hz przy osobnym zapalaniu RGB i prędkości przesuwania 2m/s (nie tak znowu szybko) daje piksel o szerokości 1 cm złożony z 3 leżących obok siebie kolorów więc niezbyt ładnie... widać z tego że przy multipleksowaniu dobry efekt wizualny wymagałby częstotliwości conajmniej 10x większej.

    0
  • #9 04 Sty 2013 00:05
    BlueDraco
    Specjalista - Mikrokontrolery

    Zgadza się. ja przyjąłem do oszacowania wydajności te 200 Hz jako minimum, i już wyszło, że niekoniecznie zdąży.

    0
  • #10 04 Sty 2013 00:13
    szulat
    Poziom 23  

    BlueDraco napisał:
    Zgadza się. ja przyjąłem do oszacowania wydajności te 200 Hz jako minimum, i już wyszło, że niekoniecznie zdąży.

    zdąży ale nie wiadomo przy jakiej maksymalnej liczbie odcieni :)

    0
  • #11 04 Sty 2013 00:19
    BlueDraco
    Specjalista - Mikrokontrolery

    Wyżej przyjąłem 64 odcienie, i wyszło, że ma niewielkie szanse zdążenia. Przy 32 pewnie spore. Zresztą to wcale nie musi być okrągła liczba binarna przecież.

    0
  • #12 04 Sty 2013 17:22
    dumel111
    Poziom 17  

    Bardzo dziękuję za odpowiedzi.

    Po pierwsze odniosę się do wydajności. Sterowanie PWM jest opcjonalne - w założeniach projektu było sterowanie niezależnie trzema barwami, bez modulowania ich jasności.Dodatkowo przez włączanie dodatkowych tranzystorów łaczyć kolory (np. zielony + niebieski)

    Gdybym rzeczywiście chciał np. odczytywać obraz z kart SD, konwertować je i wyświetlać odwozorwując przy tym barwy, leciwa ATMEGA8 raczej nie poradziła by sobie.



    Oo-PAWEŁ-oO napisał:
    W jednej chwili będziesz włączał tylko jeden tranzystor więc wystarczy jeden rezystor do każdej diody.


    Ale prąd diody czerwonej jest mniejszy od zielonej czy niebieskiej. Nie mógł bym zastosować jednego rezystora dla trzech chipów .

    0
  • #13 04 Sty 2013 18:27
    BlueDraco
    Specjalista - Mikrokontrolery

    Akurat może być jeden rezystor, bo jasność czerwonej przy takim samym natężeniu prądu jest mniejsza niż zielonej i niebieskiej.

    0
  • #14 07 Sty 2013 02:39
    szulat
    Poziom 23  

    BlueDraco napisał:
    W każdym przerwaniu trzeba sprawdzić wartość dziewięciu zmiennych. Załóżmy optymistycznie, że będzie to 15 cykli zegara na kanał. 36000 * 9 * 15 to ok. 5 mln. cykli procesora na sekundę.

    gdyby ktoś chciał to jednak robić na AVR i mógł poświęcić trochę pamięci to prawdopodobnie można nieźle przyspieszyć działanie przez stablicowanie całego cyklu PWM, wtedy obsluga przerwania robi się bardzo prosta i szybka:
    Kod: C
    Zaloguj się, aby zobaczyć kod

    wtedy oczywiście funkcja ustawiające wypełnienie robi się bardziej zlożona (musi wypełniać całą tablicę) ale coś za coś... dodatkowo może robić to w ciekawszy sposób, maksymalizując częstotliwość przełączania jeżeli to możliwe przy danym wypełnieniu, np. przy 50% zamiast 0000000011111111 może być 0101010101010101

    0