Jak zrobić pulsującą kostkę LED Arduino, która wygląda tak, jakby pochodziła z przyszłości

  • Edmund Richardson
  • 0
  • 2288
  • 136
Reklama

Jeśli zajmowałeś się projektami Arduino dla początkujących, ale szukasz czegoś trwałego i na zupełnie innym poziomie niesamowitości, skromna kostka LED 4 x 4 x 4 to naturalny wybór. Konstrukcja jest znacznie łatwiejsza niż myślisz, a dzięki multipleksowaniu możemy sterować wszystkimi diodami LED bezpośrednio z jednej płyty Arduino Uno. To świetna praktyka lutowania, a całkowity koszt komponentów nie powinien przekraczać około 40 USD.

Dzisiaj będę szczegółowo opisywał konstrukcję rzeczy i zapewniłem oprogramowanie do działania, które zarówno wygląda imponująco, jak i uczy podstaw.

Będziesz potrzebować

  • Arduino. Podany kod zakłada Arduino Uno, ale można go również dostosować do większego modelu.
  • 64 diody LED - dokładny wybór należy do Ciebie, ale użyłem tych super jasnych 3 mm niebieskich diod LED (3.2v 30ma) @ 2,64 £ za 50.
  • 16 rezystorów odpowiedniej wartości dla twoich diod LED. Za powyższe diody 99 pensów kupiło 100 z nich. Użyj ledcalc.com - wpisz 5v dla napięcia zasilania, napięcia diod LED (w moim przypadku 3.2) i prądu w miliamperach (3.2). Żądany rezystor zostanie wyświetlony w polu oznaczonym “Najbliższy rezystor o wyższej wartości”, następnie po prostu wyszukaj tę wartość w serwisie eBay.
  • Trochę drut rzemieślniczy do wzmocnienia podstawowej struktury i do dekoracji - użyłem 0,8 mm grubość.
  • ZA płyta prototypowa pewnego rodzaju, do którego możesz przylutować wszystkie swoje bity. Użyłem takiego, który nie miał pełnych ścieżek, ponieważ nie mam przecinaka, ale używam tego, co ci odpowiada. Prototypowa tarcza Arduino jest jednak trochę za mała, chyba że naprawdę ściśniesz diody LED.
  • Drut losowy - niektóre kable sieciowe i niektóre prototypowe przewody z zestawu będą działać dobrze.
  • Krokodylki lub “pomocne dłonie” są przydatne do trzymania bitów w miejscu.
  • Lutownica i lut.
  • Trochę złomu.
  • Wiertło o bitach tego samego rozmiaru co diody LED.

Uwaga: rysunki 3D w tym samouczku zostały wykonane w ciągu kilku minut za pomocą TinkerCAD. Śledziłem istniejącą kompilację opisaną na instruktażach przez użytkownika forte1994, którą możesz również przeczytać przed podjęciem próby.

Przeczytaj wszystkie te instrukcje pierwszy zanim spróbujesz tego sam.

Zasada tego projektu

Przed rozpoczęciem budowy ważne jest, aby mieć pełny przegląd tego, jak to będzie działać, aby móc improwizować i identyfikować błędy w trakcie pracy. Niektóre kostki LED używają pojedynczego styku wyjściowego dla każdej pojedynczej diody LED - jednak w kostce 4x4x4 byłoby to potrzebne 64 piny - którego z pewnością nie mamy na Arduino Uno. Jednym z rozwiązań byłoby użycie rejestrów przesuwnych Programowanie Arduino - Gra z rejestrami Shift (np. Jeszcze więcej diod LED) Programowanie Arduino - Gra z rejestrami Shift (np. Jeszcze więcej diod LED) Dzisiaj postaram się nauczyć Cię trochę o rejestrach Shift. To dość ważna część programowania Arduino, głównie dlatego, że zwiększają liczbę wyjść, których możesz użyć w zamian za…, ale jest to niepotrzebnie skomplikowane.

Aby kontrolować wszystkie te diody LED za pomocą zaledwie 20 pinów, będziemy używać techniki zwanej multipleksowaniem. Rozbijając kostkę na 4 oddzielne warstwy, potrzebujemy tylko pinów sterujących dla 16 diod LED - więc aby zapalić konkretną diodę LED, musimy aktywować zarówno warstwę, jak i pin kontrolny, dając nam całkowite zapotrzebowanie na 16 + 4 pinów. Każda warstwa ma wspólną katodę - ujemną część obwodu - więc wszystkie ujemne nogi są połączone razem i połączone z pojedynczym pinem dla tej warstwy.

Na anodzie (pozytywny) z boku każda dioda LED zostanie podłączona do odpowiedniej diody LED w warstwie powyżej i poniżej. Zasadniczo mamy 16 kolumn nóg dodatnich i 4 warstwy negatywne. Oto niektóre widoki 3D połączeń, które pomogą Ci zrozumieć:

Budowa

Ponieważ do lutowania nie będziemy używać w pełni metalowej konstrukcji, chcemy, aby wszystkie nogi diod LED zachodziły na siebie o około jedną czwartą i nadawały konstrukcji sztywność. Złożyć katodę diod LED - stronę z płaskim wycięciem w głowie i krótszą nogę - jak pokazano na schemacie. (Nie ma znaczenia, czy zginasz go w lewo, czy w prawo, o ile jesteś konsekwentny i nigdy nie dotyka anody)

Pierwszą krytyczną częścią tego projektu jest wykonanie drewnianego przyrządu. Będzie to utrzymywać warstwę diod LED podczas lutowania nóg razem, więc musi być dokładna i niezbyt luźna. Używając wiertła tego samego rozmiaru co diody LED, zmierz, a następnie wywierć matrycę 4 × 4 równoodległy otwory. Pamiętaj, że chcesz, aby około jedna czwarta nogi zachodziła na sąsiada i używaj rzeczywistej linijki. Sprawdź każdy otwór, aby upewnić się, że dioda LED dobrze przylega, ale nie jest tak ciasna, że ​​nie będziesz w stanie wyciągnąć jej ponownie, lub będziesz mieć problemy podczas próby usunięcia całkowicie lutowanej warstwy.

Przylutuj katody 4 rzędów diod LED. Uważaj, aby nie wypalić diod LED - chcesz dobrego, gorącego żelaza i być w nim. Oto moje pierwsze cztery wiersze zakończone.

Teraz, aby wzmocnić sztywność warstwy, wytnij i lutuj dwa proste kawałki drutu rzemieślniczego na każdym końcu, upewniając się, że łączą się z każdym rzędem. To twoja pierwsza warstwa kompletna. Na razie pozostaw nadmiar nóg wystających z boku.

Byłby to świetny czas na przetestowanie - wystarczy załadować domyślną aplikację Arduino do mrugania, a po podłączeniu rezystora, położyć uziemienie na ramie warstwy i nacisnąć kolejno dodatni przewód do każdej diody LED.

Mam nadzieję, że wszystkie się zapalą. Jeśli nie, upewnij się, że nie przegapiłeś gdzieś złącza lutowanego, a jeśli to konieczne, wymień diodę LED.

Usuń tę warstwę z przyrządu i powtórz proces Jeszcze 3 razy.

Nie martw się, jeśli twoje lutowanie nie jest idealne - dopóki nie zerwie się, a połączenie będzie solidne, nie wpłynie to na końcowy produkt. Przyznaję, że moje lutowanie było dość beznadziejne, mój przyrząd był wyłączony i wszystko to przypominało krzywą wieżę w Pizie. Mimo to jestem dumny z gotowej kostki, a kiedy zapalą się diody LED, i tak nie będziecie patrzeć na złącza lutowane!

Łączenie warstw

Gdy będziesz mieć 4 ukończone warstwy, będziesz chciał połączyć wszystkie pionowe nogi razem. Uznałem, że jest to najtrudniejsza część kompilacji i dla ułatwienia procesu wyciąłem pion z karty.

Utrzymywało to warstwy na odpowiedniej wysokości, ale wiele nóg wciąż nie układało się idealnie - w tym celu użyłem krokodylków, aby utrzymać je na miejscu.

1. głupi błąd, którego należy unikać

Dopiero po ukończeniu pełnej warstwy zdałem sobie sprawę, że moja karta pionowa utknęła na miejscu, więc musiałem ją wyciąć! Nie popełniaj tego samego błędu, który popełniłem - wydłuż pion na boku i połącz elementy karty poza sześcianem, aby po ukończeniu warstwy zdekonstruować pion i wyciągnąć kartę.

2. głupi błąd, którego należy unikać

Oczywiście nie lutuj pionowej nogi do ramy katody. Nogi pionowe powinny łączyć się tylko z innymi nogami pionowymi i niczym więcej.

Ponownie sprawdź po dołączeniu każdej warstwy. Testuj wszystkie warstwy, w rzeczywistości dotykając dodatniego ołowiu do wierzchołka najwyższej warstwy, zapewniając w ten sposób dobry kontakt podczas przechodzenia przez wszystkie warstwy.

Kiedy wszystkie 4 warstwy zostały zlutowane, postanowiłem trochę posprzątać - zostawiłem jedną nogę wysuniętą z każdej warstwy w sposób przypominający odskocznię - to zostanie później zrzucone na planszę. Inne obce kawałki metalowej ramy i nóg zostały odcięte. Oczywiście nie przecinaj żadnych pionowych nóg - musimy je włożyć do naszej deski protoytpingowej.

Mocowanie do tablicy

Pamiętasz, jak powiedziałem, że przymocowanie każdej warstwy do siebie było najtrudniejsze? Kłamałem. Próba dopasowania 16 nóżek LED w małe otwory na płytce prototypowej jest w rzeczywistości trudniejsza. Najłatwiejszym sposobem było przebicie 4 za jednym razem, zabezpieczenie ich krokodylkami, a następnie przejście do następnego rzędu 4. Użyj pisaka, aby wcześniej zaznaczyć odstępy, jeśli to pomaga.

Patrząc wstecz, w rzeczywistości najpierw umieściłbym rezystory w protoboardzie. W tej chwili najpierw przylutowałem wszystkie nogi kostki do planszy, a następnie próbowałem delikatnie wcisnąć rezystory pomiędzy nimi. Ucz się na moim błędzie i stawiaj rezystory na pierwszym miejscu.

Próbowałem rozmieścić je równo w krokowy sposób, aby móc wykorzystać całą stronę sześcianu do wszystkich końcowych połączeń z Arduino. Oto schemat, z którym poszedłem:

W przypadku czterech warstw ujemnych upuściłem pojedynczy drut z każdej warstwy, a następnie po prostu odciągnąłem je na bok, w ten sposób:

Na koniec dodałem kilka przewodów wtykowych, które mogłem następnie umieścić w odpowiednich pinach Arduino. Użyj najdłuższego, jaki masz. Uwaga: Zepsułem zamówienie w miejscach z powodu złego planowania. Każdy rząd diod LED był jednak oznaczony kolorami.

to jest to! Skończone!

Programowanie kostki

Wiem, że nie możesz się doczekać, aż to się uruchomi, więc podłącz 4 negatywne warstwy Analogowe I / O porty A2 (dolna warstwa) przez A5 (górna warstwa) (mogą również działać jako cyfrowe wejścia / wyjścia). Następnie podłącz 16 pinów kontrolnych LED, zaczynając od +1 po prawej stronie do cyfrowe we / wy port 0, z +15 i +16 przejście na analog A0 i A1. (Nie używaj AREF i GND)

Pobierz wzory demonstracyjne i kod od instruktażowego użytkownika forte1994. Udostępnił także pomocne narzędzie online do projektowania wzorców bajtów w celu dostosowania własnej sekwencji. Oto wideo tego kodu w akcji na mojej kostce (Dostosowałem prędkość do 5, zamiast domyślnej 20).

Nie jest to oczywiście jedyny sposób na zaprogramowanie kostki, więc pozwól mi poświęcić kilka minut na naukę podstaw tworzenia własnych wzorów. programowo, zamiast odtwarzać ustawione wzorce, jak to robi powyższe demo.

Jest kilka rzeczy, które powinieneś wiedzieć, próbując zaprogramować swoją kostkę:

  1. Aby zaadresować pojedynczą diodę LED, użyj samolot (warstwa) numer 0-3 i numer styku LED 0-15. Obróć płaszczyznę do wyjścia LOW (ponieważ jest to biegun ujemny) i numer styku LED HIGH (biegun dodatni), aby aktywować LED.
  2. Przed aktywowaniem pojedynczej diody LED upewnij się, że wszystkie inne płaszczyzny są wyłączone - oznacza to, że ustaw je na WYSOKI. Niespełnienie tego warunku spowoduje zaświecenie kolumny diod LED zamiast pojedynczej diody LED.

Mając to na uwadze, stworzyłem dwie bardzo proste sekwencje programowe do zbadania - pobierz kod stąd. Pierwszy z nich po prostu zaświeca kolejno każdą diodę LED. Używamy do tego dwóch pętli, iterując po każdej warstwie i każdym pinie kontrolnym.

Druga to losowa pętla (musisz skomentować pierwszą i włączyć ją w głównej pętli, aby ją przetestować). Po prostu wybiera losową warstwę i losowy pin kontrolny, flashując je i wyłączając.

streszczenie

Nie daj się zastraszyć tej wersji - poważnie brakuje mi umiejętności lutowania i poradziłem sobie z tym dobrze (Myślę?). Całkowity czas kompilacji wynosił około godziny dziennie przez tydzień. Następnym razem będę próbował nauczyć cię bardziej ambitnego programowania dla kostki, więc mam nadzieję, że dołączysz do mnie w budowaniu własnej kostki w tym tygodniu i ładowaniu nowego kodu w następnym tygodniu - i jeśli stworzysz własny niesamowite aplikacje lub sekwencje, prześlij je do Pastebin i daj nam znać w komentarzach!




Jeszcze bez komentarzy

O nowoczesnej technologii, prostej i niedrogiej.
Twój przewodnik w świecie nowoczesnych technologii. Dowiedz się, jak korzystać z technologii i gadżetów, które nas otaczają każdego dnia i dowiedz się, jak odkrywać ciekawe rzeczy w Internecie.