Spisu treści:

Jak zbudować kostkę LED 8x8x8 i sterować nią za pomocą Arduino: 7 kroków (ze zdjęciami)
Jak zbudować kostkę LED 8x8x8 i sterować nią za pomocą Arduino: 7 kroków (ze zdjęciami)

Wideo: Jak zbudować kostkę LED 8x8x8 i sterować nią za pomocą Arduino: 7 kroków (ze zdjęciami)

Wideo: Jak zbudować kostkę LED 8x8x8 i sterować nią za pomocą Arduino: 7 kroków (ze zdjęciami)
Wideo: Jak rozpocząć pracę z mikrokontrolerem Arduino i zestawem konstrukcyjnym? | Moje Bambino 2024, Listopad
Anonim
Jak zbudować kostkę LED 8x8x8 i sterować nią za pomocą Arduino?
Jak zbudować kostkę LED 8x8x8 i sterować nią za pomocą Arduino?
Jak zbudować kostkę LED 8x8x8 i sterować nią za pomocą Arduino?
Jak zbudować kostkę LED 8x8x8 i sterować nią za pomocą Arduino?

Edycja stycznia 2020:

Zostawiam to na wypadek, gdyby ktoś chciał go wykorzystać do generowania pomysłów, ale nie ma już sensu budować sześcianu w oparciu o te instrukcje. Układy scalone sterownika LED nie są już produkowane, a oba szkice zostały napisane w starych wersjach Arduino i Processing i nie są już uruchamiane. Nie wiem, co trzeba zmienić, żeby działały. Ponadto moja metoda konstrukcji spowodowała chwiejny, koślawy bałagan. Proponuję postępować zgodnie z instrukcjami na innej instrukcji lub kupić zestaw. Ta kostka kosztowała około 50 dolarów w 2011 roku, teraz możesz kupić zestaw w serwisie eBay za około 20 dolarów.

Oryginalne wprowadzenie:

Na Instructables jest dużo kostek LED, więc po co robić inne? Większość dotyczy małych kostek składających się z 27 lub 64 diod LED, rzadko większych, ponieważ są one ograniczone liczbą wyjść dostępnych na mikrokontrolerze. Ta kostka będzie miała 512 diod LED i będzie potrzebować tylko 11 przewodów wyjściowych z Arduino. Jak to jest możliwe? Za pomocą sterownika LED Allegro Microsystems A6276EA.

Pokażę wam jak zrobiłem samą kostkę, płytkę sterownika i na koniec kod żeby zaświeciła.

Krok 1: Materiały

Materiały
Materiały

Wszystkie części potrzebne do zbudowania kostki: 1 Arduino/Freeduino z układem Atmega168 lub nowszym 512 diod LED, rozmiar i kolor zależy od Ciebie, do sterowania przepływem napięcia użyłem 3mm czerwonych układów sterownika LED A6276EA 4 z Allegro 8 tranzystorów NPN, użyłem tranzystora BDX53B Darlington 4 rezystory 1000 omów 1/4 wata lub więcej 12 rezystorów 560 omów 1/4 wata lub więcej 1 kondensator elektrolityczny 330uF 4 24 pinowe gniazdo IC 9 16 pinowe gniazda IC 4 "x4" (lub większe) kawałek płyty perforowanej do przechowywania wszystkich części, stary wentylator komputerowy, stary kabel do kontrolera dyskietek, stary zasilacz komputerowy, Dużo drutu, lut, lutownica, topnik, cokolwiek innego, co ułatwi ci życie. Kawałek drewna 7"x7" (lub większy) użyty do wykonania przyrządu lutowniczego LED Ładne etui do wyeksponowania gotowej kostki Mój ulubiony Arduino/Freeduino to płyta Bare Bones Board (BBB) ze strony www.moderndevice.com. Diody LED zostały zakupione w serwisie eBay i kosztowały 23 USD za 1000 diod LED wysłanych z Chin. Pozostała elektronika została zakupiona w Newark Electronics (www.newark.com) i powinna kosztować tylko około 25 dolarów. Jeśli musisz kupić wszystko, ten projekt powinien kosztować tylko około 100 USD. Mam dużo starego sprzętu komputerowego, więc te części trafiły na śmietnik.

Krok 2: Złóż warstwy

Złóż warstwy
Złóż warstwy
Złóż warstwy
Złóż warstwy
Złóż warstwy
Złóż warstwy
Złóż warstwy
Złóż warstwy

Jak zrobić 1 warstwę (64 diody) z tej kostki 512 LED: Diody, które kupiłem, miały średnicę 3 mm. Postanowiłem użyć małych diod LED, aby obniżyć koszty i sprawić, by ostateczny rozmiar kostki był wystarczająco mały, aby można go było umieścić na biurku lub półce bez całkowitego przejmowania biurka lub półki. Narysowałem siatkę 8x8 z około 0,6 cala między liniami. To dało mi rozmiar sześcianu około 4,25 cala na bok. Wywierć otwory o średnicy 3 mm w miejscach, w których spotykają się linie, aby utworzyć uchwyt, który utrzyma diody LED podczas lutowania każdej warstwy. A6276EA to aktualne urządzenie do zlewu. Oznacza to, że zapewnia ścieżkę do ziemi, a nie ścieżkę do źródła napięcia. Będziesz musiał zbudować kostkę w konfiguracji wspólnej anody. Większość kostek jest zbudowana jako wspólna katoda. Długa strona diody LED jest zazwyczaj anodą, sprawdź swoją, aby się upewnić. Pierwszą rzeczą, którą zrobiłem, było przetestowanie każdej diody LED. Tak, to długi i nudny proces i możesz go pominąć, jeśli chcesz. Wolałbym poświęcić czas na testowanie diod LED niż znaleźć martwe miejsce w mojej kostce po jej zmontowaniu. Znalazłem 1 martwą diodę LED z 1000. Nieźle. Wytnij 11 kawałków solidnego, nieizolowanego drutu do podłączenia do 5 cali. Umieść 1 diodę LED na każdym końcu rzędu w przyrządzie, a następnie przylutuj przewód do każdej anody. Teraz umieść pozostałe 6 diod LED w rzędzie i przylutuj te anody do drutu. Może to być w pionie lub poziomie, nie ma to znaczenia, o ile wszystkie warstwy wykonujesz w ten sam sposób. Po zakończeniu każdego rzędu odetnij nadmiar ołowiu z anod. Zostawiłem około 1/8 . Powtarzaj, aż skończysz wszystkie 8 rzędów. Teraz przylutuj 3 kawałki drutu w poprzek rzędów, które właśnie wykonałeś, aby połączyć je wszystkie w jeden kawałek. Następnie przetestowałem warstwę, podłączając 5 woltów aby podłączyć siatkę drucianą przez rezystor i dotknąć przewodu uziemiającego do każdej katody. Wymień wszystkie diody LED, które nie świecą. Ostrożnie zdejmij warstwę z uchwytu i odłóż ją na bok. Jeśli zginasz przewody, nie martw się, po prostu wyprostuj je najlepiej jak potrafisz. Bardzo łatwo się zgina. Jak widać na moich zdjęciach, miałem dużo wygiętych drutów. Gratulacje, skończyłeś w 1/8. Zrób jeszcze 7 warstw. OPCJONALNIE: Do lutowania warstwy razem (krok 3) łatwiej, podczas gdy każda kolejna warstwa nadal znajduje się w przyrządzie, wygnij górną ćwierć cala katody do przodu o 45 do 90 stopni. Umożliwi to dosięgnięcie ołowiu wokół diody LED, do której jest podłączony, i znacznie ułatwi lutowanie łatwiej. Nie rób tego na pierwszej warstwie, zadeklarujemy, że jest to warstwa dolna, a odprowadzenia muszą być s prosto.

Krok 3: Złóż kostkę

Złóż kostkę
Złóż kostkę
Złóż kostkę
Złóż kostkę

Jak zlutować wszystkie warstwy, aby utworzyć kostkę: Twarda część jest prawie skończona. Teraz ostrożnie umieść jedną warstwę z powrotem w przyrządzie, ale nie używaj zbyt dużego nacisku, chcemy być w stanie usunąć ją bez zginania. Ta pierwsza warstwa to górna powierzchnia sześcianu. Nałóż kolejną warstwę na pierwszą, wyrównaj wyprowadzenia i rozpocznij lutowanie. Uważam, że najłatwiej jest zrobić najpierw narożniki, potem zewnętrzną krawędź, a następnie wewnętrzne rzędy. Dodawaj kolejne warstwy, aż skończysz. Jeśli wstępnie wygiąłeś przewody, pamiętaj, aby zapisać warstwę z prostymi przewodami na koniec. To jest dno. Miałem trochę za dużo miejsca między każdą warstwą, więc nie do końca uzyskałem kształt sześcianu. Nic wielkiego, mogę z tym żyć.

Krok 4: Budowanie płyty kontrolera

Budowa płyty kontrolera
Budowa płyty kontrolera
Budowa płyty kontrolera
Budowa płyty kontrolera
Budowa płyty kontrolera
Budowa płyty kontrolera

Jak zbudować płytkę kontrolera i podłączyć ją do Arduino: Postępuj zgodnie ze schematem i zbuduj płytkę w wybrany przez siebie sposób. Umieściłem chipy kontrolera na środku płytki i użyłem lewej strony do przytrzymania tranzystorów kontrolujących prąd do każdej warstwy kostki, a prawą stroną do przytrzymania złączy, które przechodzą od chipów kontrolera do katod kolumny LED. Znalazłem stary wentylator komputerowy 40 mm z żeńskim złączem molex, aby podłączyć go do zasilacza komputerowego. To było idealne. Niewielka ilość przepływu powietrza przez układ jest przydatna, a teraz mam łatwy sposób na dostarczenie 5 woltów do układów kontrolera i samego Arduino. Na schemacie RC jest rezystorem ograniczającym prąd dla wszystkich diod LED podłączonych do każdego A6276EA. Użyłem 1000 omów, ponieważ dostarcza 5 miliamperów do diody LED, co wystarczy, aby ją zapalić. Używam diod LED o wysokiej jasności, a nie Super Brite, więc pobór prądu jest niższy. Jeśli wszystkie 8 diod w kolumnie zapalą się jednocześnie, to tylko 40 miliamperów. Każde wyjście A6276EA może obsłużyć 90 miliamperów, więc jestem w zasięgu. RL to rezystor podłączony do przewodów logicznych lub sygnałowych. Rzeczywista wartość nie jest bardzo ważna, o ile istnieje i nie jest zbyt duża. Używam 560 omów, ponieważ miałem ich kilka. Do kontrolowania prądu płynącego do każdej warstwy kostki użyłem tranzystora mocy zdolnego do obsługi do 6 amperów. To przesada w przypadku tego projektu, ponieważ każda warstwa kostki będzie pobierać tylko 320 miliamperów przy zapalonych wszystkich diodach LED. Chciałem, żeby miejsce się powiększyło i może później użyć płyty kontrolera do czegoś większego. Użyj dowolnego rozmiaru tranzystora, który odpowiada Twoim potrzebom. Kondensator 330 uF na źródle napięcia jest po to, aby pomóc wygładzić wszelkie drobne wahania napięcia. Ponieważ używam starego zasilacza komputerowego, nie jest to konieczne, ale zostawiłem go na wszelki wypadek, gdyby ktoś chciał użyć zasilacza ściennego 5 V do zasilania swojej kostki. Każdy układ kontrolera A6276EA ma 16 wyjść. Nie miałem żadnego innego odpowiedniego złącza, więc przylutowałem przewody do jakichś 16-pinowych gniazd IC i użyję ich do podłączenia płytki sterownika do kostki. Przeciąłem też gniazdo IC na pół i użyłem go do podłączenia 8 przewodów, które łączą tranzystory z warstwami kostki. Odciąłem około 5 cali od końca starego kabla dyskietek, aby użyć go jako złącza dla Arduino. Kabel stacji dyskietek ma 2 rzędy po 20 pinów, a sama płyta Bones Board ma 18 pinów. Jest to bardzo tani sposób (darmowy) na podłączenie Arduino do płytki. Rozciągnąłem kabel taśmowy w grupach po 2 przewody, zdjąłem końce i zlutowałem je razem. Pozwala to na podłączenie Arduino do dowolnego rzędu złącza. Postępuj zgodnie ze schematem i przylutuj złącze na miejscu. Nie zapomnij przylutować przewodów 5 V i uziemienia do złącza, aby zapewnić zasilanie Arduino. Zamierzam użyć tej płyty kontrolera do innych projektów, więc modułowa konstrukcja działa dla mnie ładnie. Jeśli chcesz okablować połączenia, to jest w porządku.

Krok 5: Zbuduj gablotę

Zbuduj gablotę
Zbuduj gablotę
Zbuduj gablotę
Zbuduj gablotę
Zbuduj gablotę
Zbuduj gablotę
Zbuduj gablotę
Zbuduj gablotę

Spraw, aby Twój produkt końcowy wyglądał ładnie: znalazłem tę drewnianą skrzynię w Hobby Lobby za 4 USD i pomyślałem, że będzie idealna, ponieważ ma w środku miejsce na cały drut, a ponadto wygląda ładnie. Poplamiłem tę jedną czerwoną, taką samą plamę, której użyłem na biurku komputerowym, aby pasowały do siebie. Narysuj na górze siatkę o takim samym rozmiarze, jak siatka użyta do przyrządu do lutowania (0,6 cala między liniami). Wywierć otwory, aby przewody przeszły przez górę, i wywierć kolejny otwór za siatką na przewody warstwy/płaszcza (z tranzystorów w kroku 4). Na własnej skórze przekonałem się, że próba ustawienia 64 tropów w celu przejścia przez małe dziury jest bardzo trudna. W końcu zdecydowałem się ponownie wywiercić wszystkie otwory nieco większe, aby proces przebiegał szybciej. Skończyło się na tym, że użyłem około wiertła.2. Teraz, gdy kostka znajduje się na górze wyświetlacza, zagnij narożne przewody, aby kostka pozostała na swoim miejscu podczas podłączania przewodów. Upewnij się, że podłączasz wszystkie przewody we właściwej kolejności. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64I połącz przewody pomiędzy warstwami (oznaczone na schemacie 'planes') i tranzystorami. Tranzystor na pinie Arduino 6 to górna warstwa kostki. Jeśli źle poprowadzisz przewody, można to nieco poprawić w kodzie, ale może to wymagać dużo pracy, więc spróbuj ustawić je w odpowiedniej kolejności. wszystko jest zbudowane i gotowe do pracy, zdobądźmy trochę kodu i wypróbujmy go.

Krok 6: Kod

Kod
Kod

Kod dla tej kostki jest wykonywany inaczej niż większość, wyjaśnię, jak się dostosować. Większość kodu kostki używa bezpośrednich zapisów w kolumnach. Kod mówi, że kolumna X musi być oświetlona, więc daj jej trochę soku i gotowe. To nie działa w przypadku korzystania z chipów kontrolera. Chipy kontrolera używają 4 przewodów do komunikacji z Arduino: SPI-in, Clock, Latch i Enable. Uziemiłem pin Enable (pin 21) przez rezystor (RL), więc wyjście jest zawsze włączone. Nigdy nie używałem Enable, więc wyjąłem go z kodu. SPI-in to dane z Arduino, Clock to sygnał czasowy między nimi podczas rozmowy, a Latch informuje kontroler, że nadszedł czas na przyjęcie nowych danych. Każde wyjście dla każdego układu jest kontrolowane przez 16-bitową liczbę binarną. Na przykład; wysłanie 1010101010101010 do kontrolera spowoduje zapalenie się wszystkich pozostałych diod LED na kontrolerze. Twój kod musi przejść przez wszystko, co jest potrzebne do wyświetlenia i zbudować tę liczbę binarną, a następnie wysłać ją do chipa. To łatwiejsze niż się wydaje. Technicznie jest to kilka dodawania bitowego, ale jestem kiepski w matematyce bitowej, więc robię wszystko w systemie dziesiętnym. Dziesiętne dla pierwszych 16 bitów są następujące: 1 << 0 == 1 1 << 1 == 2 1 << 2 == 4 1 << 3 == 8 1 << 4 == 16 1 << 5 == 32 1 << 6 == 64 1 << 7 == 128 1 << 8 == 256 1 << 9 == 512 1 << 10 == 1024 1 << 11 == 2048 1 << 12 == 4096 1 << 13 == 8192 1 << 14 == 16384 1 << 15 == 32768Oznacza to, że chcesz zaświecą się wyjścia 2 i 10, dodajesz ułamki dziesiętne (2 i 512) razem, aby otrzymać 514. Wyślij 514 do kontrolera, a wyjścia 2 i 10 zaświecą się. Ale mamy więcej niż 16 diod LED, więc robi się trochę trudniej. Musimy zbudować informacje na wyświetlaczu dla 4 żetonów. Co jest tak proste, jak zbudowanie go za 1, po prostu zrób to jeszcze 3 razy. Używam globalnej tablicy zmiennych do przechowywania kodów kontrolnych. Tak jest po prostu łatwiej. Gdy wszystkie 4 kody wyświetlacza są gotowe do wysłania, upuść zatrzask (ustaw go na LOW) i zacznij wysyłać kody. Ostatnią musisz wysłać jako pierwszą. Wyślij kody do chipa 4, potem 3, potem 2, potem 1 i ponownie ustaw zatrzask na HIGH. Ponieważ pin Enable jest zawsze podłączony do masy, wyświetlacz zmienia się natychmiast. Większość kodu kostki, jaki widziałem w Instructables i ogólnie w sieci, składa się z gigantycznego bloku kodu ustawionego do wykonania wstępnie ustawionej animacji. Działa to dobrze w przypadku mniejszych kostek, ale konieczność przechowywania, odczytywania i wysyłania 512 bitów binarnych za każdym razem, gdy chcesz zmienić wyświetlacz, zajmuje dużo pamięci. Arduino nie mógł obsłużyć więcej niż kilku klatek. Napisałem więc kilka prostych funkcji pokazujących kostkę w akcji, które opierają się na obliczeniach, a nie na wstępnie ustawionych animacjach. Dołączyłem małą animację, aby pokazać, jak to się robi, ale zostawię tobie, aby zbudować własne displaye.cube8x8x8.pde to kod Arduino. Planuję kontynuować dodawanie funkcji do kodu i okresowo będę aktualizować program.matrix8x8.pde to program w Przetwarzaniu do budowania własnych wyświetlaczy. Pierwsza podana liczba przechodzi do wzorca1, druga do wzorca2 itd. Arkusz danych dla A6276EA jest dostępny pod adresem:

Krok 7: Pokaż swoje dzieło

Pokaż swoje dzieło
Pokaż swoje dzieło

Gotowe, teraz nadszedł czas, aby cieszyć się swoją kostką. Jak widać moja kostka wyszła trochę krzywo. Nie mam ochoty budować kolejnego, więc będę żyć z tym, że jest krzywy. Mam kilka martwych punktów, którym muszę się przyjrzeć. Może to być złe połączenie lub mogę potrzebować nowego układu kontrolera. Mam nadzieję, że ten Instructable zainspiruje Cię do zbudowania własnej kostki lub innego projektu LED przy użyciu A6276AE. Opublikuj link w komentarzach, jeśli go zbudujesz. Próbowałem zdecydować, dokąd się udać stąd. Płyta sterująca będzie również sterować kostką 4x4x4 RGB, więc jest taka możliwość. Myślę, że fajnie byłoby zrobić sferę, a sposób, w jaki mam napisany kod, nie będzie zbyt trudny do zrobienia.

Zalecana: