Chciałem przedstawić moje najnowsze dzieło, jakim jest matryca diodowa. Inspiracją do zbudowania urządzenia była jedna z prac dyplomowych znajdujących się w mojej szkole tyle, że tamta zabawka zawiera 7680 dwukolorowych LEDów (120x64). Matryca została oparta o procesor AVR atmega32 wybrałem taki ze względu na sporą ilość pamięci programu oraz RAM a także na wydajność. Procesor pracuje z taktowaniem 22,1184 MHz ponieważ ta częstotliwość umożliwia rozwinięcie maksymalnej prędkości uart-a z zerowym błędem. Matryca komunikuje się z komputerem przez port COM z prędkością 115200bps ta prędkość w zupełności wystarcza do wyświetlania dynamicznej płynnej grafiki. Struktura samej tablicy jest następująca: Linie załączane są przez mocarne tranzystory pnp pracujące w układzie darlingtona główne to BD912 sterujące to BC557 włożyłem tranzystory mocy z bardzo dużym zapasem ponieważ różnica w cenie była nieznaczna. Klucze te są sterowane procesorem za pomocą demultipleksera 74HC154 co pozwala zaoszczędzić wyprowadzeń i uprościć sterowanie z poziomu programu. linie sterowane są przez 16szt ULN2803 i 16 zatrzasków 74HC574 jak widać magistrala danych w matrycy jest równoległa a nie szeregowa jak to się zwykle spotyka. Odpowiadające sobie wejścia danych zatrzasków zostały połączone równolegle przez całą matrycę biegnie więc 8 linii danych zajmujących cały port A procesora liniami tymi następuje wpis danych do poszczególnych zatrzasków. Przełączanie zatrzasków realizuje drugi demultiplekser 74HC154 podłączony do odrębnego portu niż ten od przełączania linii. Dlaczego ? Takie rozwiązanie z punktu widzenia programu jest najlepszym, ponieważ wystarczy tylko inkrementować zmienną i wystawiać ją na port, aby uzyskać przełączanie po kolei multipleksera gdyż oba dołączone są do czterech młodszych bitów nie narzekam na brak wyprowadzeń, więc mogłem sobie na taki manewr pozwolić. W sumie wystarczyło mi 16 linii procesora do wysterowania 1890LEDów. Gdybym zastosował rejestry przesuwne wyszłoby mniej i wydaje mi się, że to właśnie jest powód, dla którego większość tego typu urządzeń, jakie spotkałem pracuje z magistralą szeregową. Do wyjść drugiego demultipleksera dołączone są wejścia zegarowe zatrzasków. wejścia OE zatrzasków połączone są równolegle i także dołączone do procesora co pozwala na wygaszenie całej linii na czas transmisji. Wejścia te są na płytce podciągnięte rezystorem do Vcc tak samo potraktowałem jedno z wejść EN demultipleksera sterującego liniami. Jak wiadomo pinyAVRa w trakcie resetu czy programowania ustawiają się w stan wysokiej impedancji co powoduje zablokowanie wszystkich tranzystorów linii oraz wyjść kolumn dzięki czemu nie nastąpi uszkodzenie diod LED w skutek braku multipleksacji. Zasilanie stanowi kompletny zasilacz od komputera wykorzystałem tylko linie 5V oraz 3.3V 3.3 V jest przełączane programowo z 5V dla zasilania diod, co umożliwia przygaszenie matrycy. To tyle jeśli chodzi o sprzęt. Oprogramowanie procesora powstało w bascomie AVR jego rola na razie ogranicza się do odbierania danych z kompa i odświeżania ekranu w przyszłości ma on zawierać generator znaków. Cała zawartość ekranu mieści się w pamięci ram i tam jest zapisywana oraz stamtąd odczytywana podczas odświeżania ekranu w sumie program to dwie procedury przerwań jedna od uart-a ta zapisuje dane do ram druga to przerwanie od timera które odświeża ekran. Soft na PC powstał w Visual Basic-u i składa się z dwóch elementów jeden to konwerter do robienia plików zawierających gotowe animacje wraz z nagłówkiem zawierającym informacje o ilości bajtów w pliku z ciągu bitmap zawierających kolejne klatki, drugi to program wysyłający te pliki przez port szeregowy w tym miejscu należą się wielkie podziękowania dla kolegi o nicku SIVEX bez którego pomocy w dziedzinie Visual Basic-a programy na PC prawdopodobnie by nie powstały. Cały projekt kosztował mnię około 300zł. Dołączam fotki większość powstała w trakcie pracy
Ten mały moduł który widać na kilku fotkach to "przelotka" z DIP24 na SMD nie dało się nigdzie dorwać 74HC154 w zwykłej obudowie
drugi pochodzi z zapasów.
Ten mały moduł który widać na kilku fotkach to "przelotka" z DIP24 na SMD nie dało się nigdzie dorwać 74HC154 w zwykłej obudowie
Fajne? Ranking DIY