Spisu treści:

Matryca LED za pomocą rejestrów przesuwnych: 7 kroków (ze zdjęciami)
Matryca LED za pomocą rejestrów przesuwnych: 7 kroków (ze zdjęciami)

Wideo: Matryca LED za pomocą rejestrów przesuwnych: 7 kroków (ze zdjęciami)

Wideo: Matryca LED za pomocą rejestrów przesuwnych: 7 kroków (ze zdjęciami)
Wideo: Sterowanie wyświetlaczem siedmio-segmentowym po przez UNO i rejestr przesuwny 74HC595N 2024, Listopad
Anonim
Matryca LED za pomocą rejestrów przesuwnych
Matryca LED za pomocą rejestrów przesuwnych
Matryca LED za pomocą rejestrów przesuwnych
Matryca LED za pomocą rejestrów przesuwnych
Matryca LED za pomocą rejestrów przesuwnych
Matryca LED za pomocą rejestrów przesuwnych

Ta instrukcja ma być pełniejszym wyjaśnieniem niż inne dostępne online. Warto zauważyć, że zapewni to więcej wyjaśnień dotyczących sprzętu niż jest dostępne w namiocie LED, którego instruktażem jest led555.

Cele

Ta instrukcja przedstawia koncepcje związane z rejestrami przesuwnymi i wysokimi sterownikami bocznymi. Ilustrując te koncepcje za pomocą matrycy LED 8x8, mam nadzieję, że dostarczę Ci narzędzi potrzebnych do dostosowania i rozszerzenia do rozmiaru i układu, którego wymaga Twój projekt.

Doświadczenie i umiejętności

Ten projekt oceniłbym jako średnio trudny:

  • Jeśli masz już doświadczenie w programowaniu mikrokontrolerów i pracy z diodami LED, ten projekt powinien być dość łatwy do ukończenia i skalowania do większych tablic świetlnych.
  • Jeśli dopiero zaczynasz pracę z mikrokontrolerami i zapaliłeś jedną lub dwie diody LED, powinieneś być w stanie ukończyć ten projekt z pomocą naszego przyjaciela Google.
  • Jeśli masz niewielkie lub żadne doświadczenie z mikrokontrolerami lub programowaniem, prawdopodobnie wykracza to poza to, w co powinieneś się angażować. Wypróbuj kilka innych projektów dla początkujących i wróć, gdy zdobędziesz więcej doświadczenia w pisaniu programów dla mikrokontrolerów.

Zastrzeżenie i kredyt

Po pierwsze, nie jestem inżynierem elektrykiem. Jeśli zauważysz, że coś jest nie tak lub nie jest to najlepsza praktyka, daj mi znać, a dokonam korekty. Zrób to na własne ryzyko! Powinieneś wiedzieć, co robisz, w przeciwnym razie możesz uszkodzić swój komputer, mikrokontroler, a nawet siebie. Wiele się nauczyłem z Internetu, szczególnie z forów na: https://www.avrfreaks.netUżywam zestaw czcionek dołączony do uniwersalnej biblioteki C ks0108. Sprawdź to tutaj:

Krok 1: Części

Lista części

Części ogólne

Aby stworzyć siatkę 8x8 diod LED i sterować nimi, będziesz potrzebować:

  • 64 diody LED do wyboru
  • 8 rezystorów do diod LED
  • 1 Rejestr przesuwny dla kolumn
  • 1 tablica sterowników dla rzędów
  • 8 rezystorów do przełączania tablicy sterowników
  • 1 mikrokontroler
  • 1 źródło zegara dla mikrokontrolera
  • 1 płytka do prototypowania
  • 1 zasilacz
  • Podłączyć przewód

Określone części używane tutaj

Do tego instruktażu użyłem:

  • 64 zielone diody LED (część myszy #604-WP7113GD)
  • 8 rezystorów 220ohm 1/4 W dla diod LED (część myszy #660-CFS1/4CT52R221J)
  • 1 sterownik LED HEF4794 z rejestrem przesuwnym (część myszy #771-HEF4794BPN)
  • 1 mic2981 High-Voltage High-Current Source Driver Array (część Digikey #576-1158-ND)
  • 8 rezystorów 3,3kohm 1/4 W do przełączania tablicy sterowników (Radio Shack część #271-1328)
  • 1 mikrokontroler Atmel ATmega8 (część myszy #556-ATMEGA8-16PU)
  • 1 kryształ 12 MHz dla źródła zegara mikrokontrolera (część myszy #815-AB-12-B2)
  • 1 płyta prototypowa z 2200 otworami (Radio Shack, część nr 276-147)
  • Przekonwertowany zasilacz ATX: zobacz tę instrukcję!
  • Solidny drut 22-awg (Radio Shack, część nr 278-1221)
  • Płytka stykowa bez lutowania (Radio Shack część #276-169 (już niedostępna, spróbuj: 276-002)
  • AVR Dragon (część Mouse nr 556-ATAVRDRAGON)
  • Dragon Rider 500 firmy Ecos Technologies: Zobacz tę instrukcję

Uwagi dotyczące części

Sterowniki wierszy i kolumn: Prawdopodobnie najtrudniejszą częścią tego projektu jest wybranie sterowników wierszy i kolumn. Po pierwsze, nie sądzę, aby standardowy rejestr przesuwny 74HC595 był tutaj dobrym pomysłem, ponieważ nie są w stanie obsłużyć rodzaju prądu, który chcemy przesłać przez diody LED. Dlatego wybrałem sterownik HEF4794, ponieważ może on łatwo zatopić obecny prąd, gdy włączone są wszystkie 8 diod LED w jednym rzędzie. Rejestr przesuwny jest obecny po niskiej stronie (pin uziemienia diod). Będziemy potrzebować sterownika wiersza, który może dostarczyć wystarczająco dużo prądu, aby połączyć ze sobą wiele kolumn. mic2981 może dostarczać do 500mA. Jedyną inną częścią, którą znalazłem, która wykonuje to zadanie, jest UDN2981 (część digikey #620-1120-ND), która jest tą samą częścią innego producenta. Proszę o wiadomość, jeśli znasz inne sterowniki high-side, które dobrze by działały w tej aplikacji. Matryca LED: Ta matryca ma wymiary 8x8, ponieważ sterowniki wiersza i kolumny mają po 8 pinów. Większą matrycę LED można zbudować, łącząc ze sobą wiele matryc i zostanie ona omówiona w kroku „koncepcje modułowe”. Jeśli potrzebujesz dużej matrycy, zamów wszystkie potrzebne części za jednym razem. Matryce LED 8x8, 5x7 i 5x8 dostępne w jednym wygodnym opakowaniu. Powinny być łatwe do zastąpienia matrycy DIY. Ebay jest dobrym źródłem tych informacji. Mouser ma do dyspozycji kilka jednostek 5x7, takich jak część #604-TA12-11GWA. Użyłem tanich zielonych diod LED, ponieważ po prostu się bawię i dobrze się bawię. Wydawanie większej ilości pieniędzy na diody LED o wysokiej jasności i wysokiej wydajności może pozwolić na uzyskanie znacznie bardziej spektakularnego wyglądu… to dla mnie wystarczająco dobre! Sprzęt sterujący: Matryca jest kontrolowana przez mikrokontroler Atmel AVR. Potrzebny będzie do tego programista. Ponieważ tworzę prototypy, używam Dragon Rider 500, dla którego napisałem zarówno instrukcje montażu, jak i użytkowania. Jest to łatwe narzędzie do prototypowania i bardzo je polecam.

Krok 2: Matryca

Macierz
Macierz
Macierz
Macierz
Macierz
Macierz

Do tego projektu zbuduję własną matrycę LED z diod 5mm i płytki prototypowej firmy Radio Shack. Należy zauważyć, że można kupić moduły led z matrycą punktową 8x8 z kilku źródeł, w tym z serwisu eBay. Powinny działać dobrze z tą instrukcją.

Rozważania konstrukcyjne

Wyrównanie Diody LED muszą być ustawione tak, aby były skierowane w tym samym kierunku pod tym samym kątem. Uważam, że najłatwiejszą opcją dla mnie było przyłożenie korpusu diody LED równo do płyty i przytrzymanie jej tam małym kawałkiem pleksi i zaciskiem. Umieściłem kilka diod LED kilka centymetrów od rzędu, nad którym pracowałem, aby upewnić się, że pleksi jest równoległa do płytki prototypowej. Rzędy i kolumny Musimy mieć wspólne połączenie dla każdego rzędu i każdej kolumny. Ze względu na wybór sterownika rzędów i kolumn, musimy mieć anodę (dodatnie wyprowadzenie diody LED) połączone rzędem i katodę (ujemne wyprowadzenie diody LED) połączoną z kolumną. Przewody sterujące Do tego prototypu używam drutu przyłączeniowego z rdzeniem jednożyłowym. Będzie to bardzo łatwe w połączeniu z płytką stykową bez lutowania. Możesz użyć innego typu złącza, aby dopasować go do swojego projektu.

Budowanie matrycy

1. Umieść pierwszą kolumnę diod LED na płytce prototypowej.2. Dokładnie sprawdź, czy polaryzacja dla każdej diody LED jest prawidłowa, będzie to bardzo trudne do naprawienia, jeśli zdasz sobie z tego sprawę później.3. Przylutuj oba wyprowadzenia diody do płytki. Sprawdź, czy są ustawione prawidłowo (nie pod dziwnymi kątami) i odetnij przewody katody. Upewnij się, że nie zaciąłeś przewodu anodowego, będziemy tego potrzebować później, więc po prostu zostaw go skierowanym do góry.4. Usuń izolację z kawałka drutu z litym rdzeniem. Przylutuj ten kawałek drutu do każdej katody na poziomie płytki.

  • Przykleiłem to na każdym końcu, a następnie wróciłem i dodałem trochę lutu na każdym skrzyżowaniu.
  • Ten przewód powinien przebiegać obok ostatniej diody LED, aby ułatwić interfejs, gdy dodamy przewody sterujące.

5. Powtarzaj części 1-4, aż wszystkie diody LED będą na miejscu, a wszystkie szyny kolumnowe zostaną przylutowane. Aby utworzyć magistralę rzędową, zagnij kilka przewodów anodowych pod kątem 90 stopni, tak aby stykały się z innymi przewodami anodowymi w tym samym rzędzie.

  • Poniżej znajdują się szczegółowe zdjęcia tego.
  • Uważaj, aby nie zetknęły się one z szynami kolumnowymi, powodując zwarcie.

7. Przylutuj przewody na każdym złączu i odetnij nadmiar przewodów anodowych.

Pozostaw ostatnią anodę przyklejoną za ostatnią diodą LED. Będzie on używany do podłączenia przewodów sterujących sterownika rzędu

8. Powtarzaj części 6 i 7, aż wszystkie magistrale rzędów zostaną przylutowane.9. Podłącz przewody sterujące.

  • Użyłem czerwonego drutu litego do rzędów i czarnego do kolumn.
  • Podłącz jeden przewód dla każdej kolumny i jeden dla każdego rzędu. Można to łatwo zrobić na końcu każdego autobusu.

Ważny

Ta matryca LED nie posiada żadnych rezystorów ograniczających prąd. Jeśli przetestujesz to bez rezystorów to prawdopodobnie spalisz swoje diody i cała ta praca pójdzie na marne.

Krok 3: Sprzęt sterujący

Sprzęt sterujący
Sprzęt sterujący
Sprzęt sterujący
Sprzęt sterujący

Musimy kontrolować kolumny i rzędy naszej matrycy LED. Matryca została tak skonstruowana, że anody (strona napięciowa LED) tworzą rzędy, a katody (strona uziemienia LED) tworzą kolumny. Oznacza to, że nasz sterownik wiersza musi pobierać prąd, a nasz sterownik kolumny musi go zatopić. Aby zaoszczędzić na pinach, używam rejestru przesuwnego do sterowania kolumnami. W ten sposób mogę sterować niemal nieograniczoną liczbą kolumn za pomocą zaledwie czterech pinów mikrokontrolera. Możliwe jest użycie tylko trzech, jeśli pin Enable Output jest podłączony bezpośrednio do napięcia. Wybrałem sterownik LED HEF4794 z rejestrem przesuwnym. Jest to lepsza opcja niż standardowy 74HC595, ponieważ może łatwo zatopić obecny prąd, gdy wszystkie 8 diod LED jest włączonych jednocześnie. Po stronie wysokiej (źródło prądu dla rzędów) używam mikrofonu 2981. Schemat przedstawia UDN2981, uważam, że te dwa są wymienne. Ten sterownik może pobierać prąd o natężeniu do 500mA. Ponieważ jedziemy tylko po 1 rzędzie na raz, daje to duże możliwości rozbudowy, do 33 kolumn dla tego chipa (więcej o tym w kroku "Koncepcje modułowe").

Budowanie sprzętu sterującego

Do tego instruktażowego właśnie wprowadziłem ten obwód. Aby uzyskać bardziej trwałe rozwiązanie, będziesz chciał wytrawić własną płytkę drukowaną lub użyć płytki prototypowej.1. Kierowca wiersza

  • Umieść mic2981 (lub UDN2981) w płytce stykowej
  • Podłącz pin 9 do napięcia (jest to mylące na schemacie)
  • Podłącz pin 10 do uziemienia (jest to mylące na schemacie)
  • włóż rezystory 3k3 podłączając do pinów 1-8
  • Podłącz z portu D ATmega8 (PD0-PD8) do 8 rezystorów
  • Podłącz 8-rzędowe przewody sterujące matrycy LED do pinów 11-18 (zauważ, że podłączyłem najniższy rząd diod LED do pinu 18, a najwyższy rząd do pinu 11).

2. Sterownik kolumny

  • Umieść hef4794 w płytce do krojenia chleba
  • Podłącz pin 16 do napięcia
  • Podłącz pin 8 do ziemi
  • Podłącz rezystory 220 omów do pinów 4-7 i 11-14.
  • Podłącz 8 przewodów sterujących kolumn z matrycy LED do 8 rezystorów, które właśnie podłączyłeś.
  • Podłącz Pin1 (zatrzask) do PC0 ATmega8
  • Podłącz Pin2 (dane) do PC1 ATmega8
  • Podłącz Pin3 (zegar) do PC2 ATmega8
  • Podłącz Pin15 (włącz wyjście) do PC3 ATmega8

3. Kryształ zegara

Podłącz kryształ 12 MHz i ładuj kondensatory, jak pokazano na schemacie

4. ISP

Podłącz nagłówek programowania, jak pokazano na schemacie

5. Kondensator filtrujący i rezystor podciągający

  • Najlepiej filtrować napięcie dostarczane do ATmega8. Użyj kondensatora 0.1uf między pinami 7 i 8 ATmega8
  • Kołek resetujący nie powinien pozostawać w pozycji pływającej, ponieważ może to spowodować losowe resety. Użyj rezystora, aby podłączyć go do napięcia, wszystko około 1k powinno być dobre. Na schemacie użyłem rezystora 10k.

6. Upewnij się, że używasz regulowanej mocy +5V. Od Ciebie zależy zaprojektowanie regulatora.

Krok 4: Oprogramowanie

Sztuczka

Tak, jak wszystko, jest sztuczka. Sztuczka polega na tym, że nigdy nie świeci więcej niż 8 diod LED jednocześnie. Aby to działało, potrzebna jest odrobina sprytnego programowania. Koncepcja, którą wybrałem, polega na użyciu przerwania czasowego. Oto jak działa przerwanie wyświetlania w prostym języku angielskim:

  • Timer odlicza do pewnego punktu, po osiągnięciu procedury obsługi przerwań jest uruchamiana.
  • Ta procedura decyduje, który wiersz jest następny do wyświetlenia.
  • Informacje dla następnego wiersza są wyszukiwane w buforze i przenoszone do sterownika kolumny (ta informacja nie jest „zatrzaśnięta”, więc nie jest jeszcze wyświetlana).
  • Sterownik rzędowy jest wyłączony, aktualnie nie świecą żadne diody LED.
  • Sterownik kolumny jest "zatrzaśnięty" sprawiając, że w informacjach, które przesunęliśmy dwa kroki temu, bieżące informacje do wyświetlenia.
  • Sterownik wiersza następnie dostarcza prąd do nowego wiersza, który wyświetlamy.
  • Procedura obsługi przerwań kończy się i program powraca do normalnego przebiegu aż do następnego przerwania.

Dzieje się to bardzo, bardzo szybko. Przerwanie jest wyrzucane co 1 ms. Oznacza to, że odświeżamy cały wyświetlacz raz na 8 ms. Oznacza to częstotliwość wyświetlania około 125 Hz. Istnieją pewne obawy dotyczące jasności, ponieważ zasadniczo wykorzystujemy diody LED w cyklu roboczym 1/8 (są wyłączone 7/8 czasu). W moim przypadku otrzymuję odpowiednio jasny wyświetlacz bez widocznego migania. Pełny wyświetlacz LED jest odwzorowany w tablicy. Pomiędzy przerwaniami tablica może zostać zmieniona (pamiętaj o niepodzielności) i pojawi się na wyświetlaczu podczas następnego przerwania. Specyfika pisania kodu dla mikrokontrolera AVR i tego, jak pisać kod, aby komunikować się z rejestrami przesuwnymi, wykracza poza zakres z tej instrukcji. Dołączyłem kod źródłowy (napisany w C i skompilowany za pomocą AVR-GCC) oraz plik hex do bezpośredniego programowania. Skomentowałem cały kod, więc powinieneś być w stanie go użyć, aby wyjaśnić wszelkie pytania dotyczące tego, jak uzyskać dane do rejestru przesuwnego i jak działa odświeżanie wiersza. Pamiętaj, że używam pliku czcionki dostarczonego z ks0108 uniwersalna biblioteka C. Bibliotekę tę można znaleźć tutaj:

Rejestry zmianowe: jak to zrobić

Postanowiłem dodać trochę o tym, jak programować z rejestrami przesuwnymi. Mam nadzieję, że to wyjaśnia sprawę tym, którzy wcześniej z nimi nie pracowali. Co robią Rejestry przesuwne pobierają sygnał z jednego przewodu i wysyłają tę informację do wielu różnych pinów. W tym przypadku jest jeden przewód danych, który pobiera dane i 8 pinów, które są kontrolowane w zależności od otrzymanych danych. Aby było lepiej, dla każdego rejestru przesuwnego istnieje wyjście, które można podłączyć do styku wejściowego innego rejestru przesuwnego. Nazywa się to kaskadowaniem i sprawia, że potencjał ekspansji jest prawie nieograniczony. Rejestry Control PinsShift mają 4 piny sterujące:

  • Zatrzask - Ten pin informuje rejestr przesuwny, kiedy nadszedł czas, aby przełączyć się na nowo wprowadzone dane
  • Dane – jedynki i zera informujące rejestr przesuwny, które piny należy aktywować, są odbierane na tym pinie.
  • Zegar - Jest to impuls wysyłany z mikrokontrolera, który informuje rejestr przesuwny, aby odczytał dane i przeszedł do następnego kroku w procesie komunikacji
  • Włącz wyjście - jest to przełącznik włącz/wyłącz, High=On, Low=Off

Sprawianie, że licytujesz:Oto szybki przebieg działania powyższych pinów sterujących:Krok 1: Ustaw zatrzask, dane i niskie zegary

Ustawienie Low Latch informuje rejestr przesuwny, że zamierzamy do niego zapisać

Krok 2: Ustaw pin danych na wartość logiczną, którą chcesz wysłać do rejestru przesuwnego. Krok 3: Ustaw pin zegara na wysoki, informując rejestr przesuwny, aby odczytał bieżącą wartość pinu danych

Wszystkie inne wartości znajdujące się obecnie w rejestrze przesuwnym przesuną się o 1 miejsce, robiąc miejsce dla bieżącej wartości logicznej pinu danych

Krok 4: Ustaw pin zegara na niski i powtarzaj kroki 2 i 3, aż wszystkie dane zostaną wysłane do rejestru przesuwnego.

Pin zegara musi być ustawiony na niski przed zmianą na następną wartość danych. Przełączanie tego pinu między wysokim a niskim jest tym, co tworzy „impuls zegarowy”, który rejestr przesuwny musi wiedzieć, kiedy przejść do następnego kroku w procesie

Krok 5: Ustaw zatrzask wysoko

Mówi to rejestrowi przesuwnemu, aby wziął wszystkie dane, które zostały przesunięte, i użył ich do aktywacji pinów wyjściowych. Oznacza to, że nie zobaczysz danych w miarę ich przesuwania; żadna zmiana pinów wyjściowych nie nastąpi, dopóki Latch nie zostanie ustawiony na wysoki

Krok 6: Ustaw Enable Output high

  • Nie będzie wyjścia pinowego, dopóki Enable Output nie zostanie ustawione na wysoki, bez względu na to, co dzieje się z pozostałymi trzema pinami sterującymi.
  • Tę szpilkę możesz zawsze zostawić wysoko, jeśli chcesz

Kaskadowanie Istnieją dwa piny, których można użyć do kaskadowania, Os i Os1. Os jest dla szybko rosnących zegarów, a Os1 dla wolno rosnących zegarów. Podłącz ten pin do pinu danych następnego rejestru przesuwnego, a przepełnienie z tego układu zostanie wprowadzone do następnego. Koniec aktualizacji

Adresowanie wyświetlacza

W przykładowym programie stworzyłem tablicę 8 bajtów o nazwie row_buffer. Każdy bajt odpowiada jednemu wierszowi wyświetlacza 8x8, wiersz 0 to dół, a wiersz 7 to góra. Najmniej znaczący bit każdego wiersza znajduje się po prawej stronie, najbardziej znaczący po lewej. Zmiana wyświetlacza jest tak prosta, jak zapisanie nowej wartości do tej tablicy danych, procedura obsługi przerwań zajmuje się odświeżeniem wyświetlacza.

Programowanie

Programowanie nie będzie tutaj szczegółowo omawiane. Ostrzegam cię, abyś nie używał kabla do programowania DAPA, ponieważ wierzę, że nie będziesz w stanie zaprogramować układu, gdy będzie działał z częstotliwością 12 MHz. Wszystkie inne standardowe programatory powinny działać (programatory STK500, MKII, Dragon, Parallel/Serial itp.).

W akcji

Po zaprogramowaniu układu na wyświetlaczu powinien pojawić się napis „Hello World!”. Oto wideo matrycy LED w działaniu. Jakość wideo jest dość niska, ponieważ zrobiłem to za pomocą funkcji wideo mojego aparatu cyfrowego, a nie odpowiedniego wideo lub kamery internetowej.

Krok 5: Koncepcje modułowe

Koncepcje modułowe
Koncepcje modułowe
Koncepcje modułowe
Koncepcje modułowe
Koncepcje modułowe
Koncepcje modułowe
Koncepcje modułowe
Koncepcje modułowe

Ten projekt jest skalowalny. Jedynym prawdziwym czynnikiem ograniczającym będzie to, ile prądu może dostarczyć twój zasilacz. (Inną rzeczywistością jest liczba dostępnych diod LED i przesuwników rejestru).

Matematyka

Diody napędzam przy około 15mA (5V-1,8vDrop/220ohm=14,5mA). Oznacza to, że za pomocą sterownika mic2981 (500mA/15mA=33,3) mogę obsługiwać do 33 kolumn. Dzieląc przez 8 widzimy, że pozwala nam to połączyć razem 4 rejestry przesuwne. Weź również pod uwagę, że nie musisz rozciągać wszystkich 32 kolumn od lewej do prawej. Zamiast tego można utworzyć tablicę 16x16, która jest okablowana w taki sam sposób, jak tablica 8x32. Zostałoby to rozwiązane przez przesunięcie o 4 bajty…. pierwsze dwa przesunęłyby się aż do diod led dla dziewiątego rzędu, drugie dwa bajty przesunęłyby się do pierwszego rzędu. Oba rzędy byłyby pozyskiwane przez jeden kołek na napędzie rzędowym.

Kaskadowe rejestry przesuwne

Używane rejestry przesuwne są kaskadowymi rejestrami przesuwnymi. Oznacza to, że kiedy przesuwasz dane, przepełnienie pojawia się na pinie Os. Staje się bardzo przydatny, ponieważ zestaw rejestrów przesuwnych można łączyć ze sobą, pin Os do pinu danych, dodając 8 kolumn z każdym nowym chipem. Wszystkie rejestry przesuwne połączą się z tymi samymi pinami zatrzaskowymi, zegarowymi i włączonymi mikrokontroler. Efekt „kaskadowy” powstaje, gdy Os pierwszego rejestru przesuwnego jest podłączony do styku danych drugiego. Programowanie będzie musiało zostać zmienione, aby odzwierciedlić zwiększoną liczbę kolumn. Zarówno bufor przechowujący informacje, jak i funkcja, która przenosi informacje dla każdej kolumny, muszą zostać zaktualizowane, aby odzwierciedlić rzeczywistą liczbę kolumn. Schemat tego jest podany poniżej jako przykład.

Sterowniki wielu rzędów

Sterownik wiersza (mic2981) może dostarczyć prąd wystarczający do wysterowania 32 kolumn. Co jeśli chcesz więcej niż 32 kolumny? Powinno być możliwe użycie wielu sterowników rzędów bez użycia większej liczby pinów mikrokontrolera. Potrzebujemy sterowników rzędów, aby dostarczać wystarczająco dużo prądu, aby zapalić diody LED. Jeśli używasz większej liczby kolumn niż jest możliwe jednorazowo, dodatkowe sterowniki rzędów mogą dostarczyć potrzebny prąd. Wykorzystywane są te same piny wejściowe z mikrokontrolera, więc nie ma potrzeby zmiany skanowania wierszy. Innymi słowy, każdy sterownik kontroluje wiersze dla bloku 8x32. Chociaż 64 kolumny mogą mieć takie samo fizyczne rozmieszczenie wierszy, dzielimy szyny wierszy na dwie części, używając jednego sterownika dla 8 rzędów pierwszych 32 kolumn i drugiego sterownika dla 8 rzędów drugich 32 kolumn i tak dalej. Schemat tego jest podany poniżej jako przykład. Potencjalne błędy:1. Nie używaj wielu sterowników wierszy z tą samą liczbą kolumn. Oznaczałoby to, że każdy pin rejestru przesuwnego będzie napędzał więcej niż jedną diodę LED na raz.2. Musisz mieć zestaw 8 rezystorów (3k3) dla każdego sterownika rzędowego, jeden zestaw dla sterowników rzędowych nie będzie działał, ponieważ nie zapewni niezbędnego prądu do przełączania bramek.

Na przykład

Postanowiłem rozbudować matrycę, którą zbudowałem wcześniej. Dodałem jeszcze 7 rzędów, w sumie 15, ponieważ to wszystko, co mogę zmieścić na tej płycie prototypowej. Właśnie dowiedziałem się o konkursie, który organizuje Instructables o nazwie „Let it Glow”. Oto film z moim podejściem do tego. Po raz kolejny aparat cyfrowy, którego użyłem do nagrania wideo, nie oddaje sprawiedliwości. To wygląda świetnie dla ludzkiego oka, zwłaszcza gdy wszystkie diody LED migają, ale nie wygląda to tak dobrze na filmie. Ciesz się: kod źródłowy tego większego wyświetlacza znajduje się poniżej.

Krok 6: Wniosek

Możliwe dodatki

I2CI pozostawił piny interfejsu dwuprzewodowego (I2C) nieużywane w tym projekcie. Istnieje kilka ciekawych perspektyw, które mogą wykorzystać te dwie szpilki. Dodanie EEPROM I2C pozwoli na przechowywanie znacznie większych wiadomości. Istnieje również perspektywa zaprojektowania oprogramowania, które przekształci mega8 w sterownik ekranu zgodny z I2C. Otworzyłoby to możliwość posiadania urządzenia umożliwiającego USB do wyświetlania danych na tablicy LED, przekazując je przez magistralę I2C. Wejście Pozostało wiele pinów, które można wykorzystać do przycisków lub odbiornika podczerwieni. Umożliwiłoby to programowanie komunikatów za pomocą systemu menu. Wyświetlacz W tym instruktażowym zaimplementowałem tylko kilka funkcji wyświetlania. Jeden po prostu wpisuje znaki na wyświetlaczu, drugi przewija znaki na wyświetlaczu. Ważną rzeczą do zapamiętania jest to, że to, co widzisz za pomocą świateł, jest reprezentowane w tablicy danych. Jeśli wymyślisz sprytniejsze sposoby zmiany tablicy danych, światła zmienią się w ten sam sposób. Niektóre kuszące możliwości obejmują utworzenie miernika wykresu z kolumn. Może być używany jako analizator sygnału ze stereo. Przewijanie może być realizowane od góry do dołu lub od dołu do góry, a nawet od lewej do prawej. Powodzenia baw się dobrze!

Krok 7: Kontynuacja

Podejmować właściwe kroki
Podejmować właściwe kroki
Podejmować właściwe kroki
Podejmować właściwe kroki
Podejmować właściwe kroki
Podejmować właściwe kroki
Podejmować właściwe kroki
Podejmować właściwe kroki

Po kilku miesiącach pozostawienia obwodu kontrolera w płytce prototypowej, w końcu zaprojektowałem i wytrawiłem kilka płytek drukowanych, aby złożyć ten prototyp. Wszystko wyszło świetnie, nie sądzę, żebym zrobił coś inaczej.

Funkcje płytki drukowanej

  • Rejestry przesuwne znajdują się na osobnych tablicach, które można łączyć ze sobą szeregowo, aby zwiększyć rozmiar wyświetlacza.
  • Płyta kontrolera ma swój własny regulator mocy, więc może być zasilana z dowolnego źródła zasilania, które zapewnia 7v-30v (bateria 9v lub zasilanie ławki 12v działają dla mnie dobrze).
  • W zestawie 6-pinowe złącze ISP, dzięki czemu mikrokontroler można przeprogramować bez wyjmowania go z płytki.
  • Dostępne 4-pinowe złącze do przyszłego wykorzystania magistrali I2C. Może to być użyte do eepromu do przechowywania większej liczby wiadomości lub nawet do uczynienia tego urządzeniem podrzędnym kontrolowanym przez inny mikrokontroler (czy ktoś ma ticker RSS?)
  • W projekcie uwzględniono 3 przyciski chwilowe. Być może w przyszłości poprawię oprogramowanie układowe, aby uwzględnić użycie tych przycisków.

montaż

Daj mi pleksi, kątowniki, wkręty maszynowe 6x32, nakrętki i podkładki, a także zestaw gwintowników do gwintowania otworów i mogę stworzyć wszystko.

Druga nagroda w konkursie Let It Glow!

Zalecana: