Chciałbym móc kontrolować około 100 niezależnych diod LED za pomocą Arduino. Problem polega na tym, że Arduino nie ma prawie wystarczającej liczby pinów, które można by do tego skonfigurować. Jaki byłby sposób rozwiązania tego problemu? Czy istnieje układ, który może demultipleksować bardziej złożony sygnał z Arduino, który mógłby następnie sterować diodami LED? A może jest inne rozwiązanie?
arduino
digital-logic
gpio
Alexis K.
źródło
źródło
Odpowiedzi:
Po pierwsze, Arduino nie może bezpośrednio zasilać 100 diod LED, ponieważ łączny prąd, który urządzenie musi uzyskać lub zrzucić, znacznie przekroczy zarówno mikrokontroler, jak i regulator napięcia na płycie Arduino. Jednak niestandardowa tarcza Arduino z własnym źródłem zasilania i regulacją może pasować do rachunku.
Istnieje kilka łatwych podejść, najprostsze podejście opisano szczegółowo poniżej:
Sterownik stałoprądowy LED TLC5940 w konfiguracji kaskadowej:
TLC5940 steruje 16 diodami LED na układ scalony, sterowanymi przez wejście szeregowe poprzez niewielki wariant interfejsu SPI. Można połączyć kaskadowo do 40 urządzeń TLC5940, ale 7 z nich wystarczy do sterowania 100 diodami LED w pytaniu.
Istnieje co najmniej kilka bibliotek Arduino ( 1 , 2 ) dla TLC5940.
Sugerowane częstotliwości taktowania do wysłania z Arduino i odpowiadająca im częstotliwość odświeżania:
Jest to oparte na formułach z arkusza danych:
TLC5940 jest prąd stały umywalka , tak anody diod byłyby związane z napięciem kilka woltów większej niż Vf LED, lub około 7 woltów, jeżeli jest ona mniejsza, zasilany niezależnie kołków napędowych Ciężki jest. To źródło napięcia musi być w stanie dostarczyć 100 * (niezależnie od prądu, w którym uruchamiane są diody LED), ale może być źródłem nieregulowanym.
Katody LED idą do linii napędowych odpowiednich układów scalonych TLC5940.
Sam TLC5940 zużywa do Icc = 60 mA na urządzenie podczas zapisu danych, więc zasilanie 7 z nich z Arduino nie będzie działać, będzie wymagało dostarczenia niezależnego regulowanego Vcc 3,3 do 5 V, idealnie tej samej wartości co Vcc używanego Arduino i ślady gruntu muszą oczywiście połączyć się z ziemią Arduino. Praca części TLC przy innym napięciu niż Arduino spowodowałaby potrzebę konwersji poziomu sygnału szeregowego, dlatego najlepiej tego uniknąć.
Kilka filmów z YouTube demonstruje użycie Arduino z kaskadowymi układami scalonymi TLC5940.
8- cyfrowe sterowniki wyświetlacza LED MAX7219 (szeregowy) / MAX7221 (SPI) :
Chociaż te układy scalone zostały zaprojektowane do obsługi 7-segmentowych numerycznych wyświetlaczy LED, zapewniają indywidualne sterowanie diodami LED, dlatego można je stosować z maksymalnie 64 diodami LED na układ scalony. Dwie z nich można kaskadowo zasilać wymaganymi 100 diodami LED. Strona 13 arkusza danych pokazuje konfigurację kaskadową.
W tym projekcie diody LED musiałyby być połączone elektrycznie jako grupy do 8 diod LED, każda dzieląca jedną linię katodową (wspólna katoda).
MAX7219 / 7221 to multipleksujące sterowniki LED, stąd maksymalna jasność LED będzie niższa niż w przypadku statycznego sterownika LED, jak w poprzednim rozdziale.
Oto przydatna biblioteka matryc LED i przewodnik przy użyciu MAX7219.
Niektóre odpowiednie filmy z YouTube ( 1 , 2 ) mogą być interesujące.
Charlieplexing: sterowniki SPI LED, MAX6950 / MAX6951
Ponownie, te układy scalone zostały zaprojektowane do obsługi 7-segmentowych numerycznych wyświetlaczy LED, zapewniają indywidualne sterowanie diodami LED, więc można je stosować z maksymalnie 40/64 diodami LED na układ scalony. Dwie / trzy z nich można podłączyć do magistrali Arduino SPI, aby zasilić wymagane 100 diod LED.
Uwagi do projektu pozostają takie same jak w poprzednim rozdziale. Ponadto maksymalna jasność poszczególnych diod LED byłaby niższa niż w przypadku prostej multipleksowej konstrukcji MAX7219.
Niektóre filmy z YouTube mogą być interesujące.
Dyskretne projekty elementów, rejestry przesuwne, ekspandery IO, cięte paski LED z indywidualnymi sterownikami i wiele innych ...
Są to wszystkie podejścia, które zostały zastosowane z różnym poziomem prostoty i powodzenia. Są to bardziej złożone implementacje niż 3 powyższe podejścia, dlatego nie są szczegółowo omawiane. W razie potrzeby przeszukanie sieci przyniosłoby przydatne przewodniki dotyczące tych podejść.
Jednym z kluczowych czynników drażniących w takich konstrukcjach jest zapotrzebowanie na rezystory sterujące prądem na każdej diodzie LED lub ciągu diod LED. Urządzenia specjalnie zaprojektowane do jazdy diodami LED zazwyczaj tego nie potrzebują.
Nie mam osobistego doświadczenia z tym ostatnim zestawem opcji, więc nie mogę wiele pomóc.
Przypis: Po udzieleniu odpowiedzi na to pytanie znalazłem starsze pytanie , które zawiera odpowiedzi szczegółowo opisujące i omawiające kilka podejść w mojej ostatniej części. Ten wątek stanowi ciekawe „dalsze czytanie jako zadanie domowe”.
źródło