Reklama
Możesz robić różne rzeczy za pomocą migających diod LED, a w tym prostym projekcie stworzymy małe urządzenie, które podświetla wiadomości w powietrzu, gdy machasz nimi w przód iw tył. To łatwiejsze niż myślisz, a całkowity koszt części wynosi poniżej 5 USD.
Ten projekt wykorzystuje złudzenie optyczne zwane trwałością widzenia, aby tekst pojawiał się w powietrzu. Prawdopodobnie spotkałeś się z tym zjawiskiem, gdy ktoś szybko porusza zapalonym brylantem w nocy. Będziemy używać Arduino i niektórych diod LED do naśladowania tego efektu. Ten projekt jest prosty do zbudowania, z niewielką liczbą elementów i niewielką ilością lutowania (choć jeśli chcesz uzyskać wskazówki dotyczące rozpoczęcia pracy z lutownicą, sprawdź ten przewodnik Naucz się lutować, korzystając z tych prostych wskazówek i projektówCzy jesteś trochę onieśmielony myślą o gorącym żelazie i stopionym metalu? Jeśli chcesz zacząć pracę z elektroniką, musisz nauczyć się lutować. Pozwól nam pomóc. Czytaj więcej ).
Będziesz potrzebować
- Arduino (użyłem Nano 2 $, ponieważ jest kompaktowy i tani, ale każdy model powinien być w porządku).
- 5x Czerwone diody LED.
- 5x Rezystory 220 Ohm.
- 1x Uchwyt baterii 9 V..
- 1x Przełącznik kołyskowy.
- 1x kawałek protoboardu.
- Obudowa do gotowego produktu (użyłem małego kartonowego pomalowanego na czarno).
Będziesz także potrzebował lutownicy i trochę lutu, aby wszystko połączyć.
Opcjonalnie niektóre knoty lutownicze mogą być bardzo przydatne na wypadek błędów lutowniczych. Płyta kontrolna i niektóre przewody przyłączeniowe są również przydatne do testowania obwodu.
Okablowanie
Okablowanie nie może być prostsze. Najpierw podłącz Arduino, diody LED i rezystory, jak pokazano na tym schemacie.
Kołki od D2 do D6 przechodzą odpowiednio do każdego rezystora, które są podłączone do dodatniej anody (długiej nogi) każdej diody LED. Katoda jest podłączona do uziemienia, które łączy się z powrotem z Arduino. Po zakończeniu powinien wyglądać mniej więcej tak:
To wszystko: nasz obwód jest gotowy! Później dodamy do niej obudowę baterii i przełącznik, ale to wszystko, czego potrzebujemy, aby sprawdzić, czy to działa.
Kod
Teraz podłącz Arduino do komputera i otwórz Arduino IDE. Jeśli dopiero zaczynasz korzystać z Arduino i potrzebujesz dobrego przewodnika, jak zacząć, ten link Pierwsze kroki z Arduino: przewodnik dla początkującychArduino to platforma prototypowania elektroniki typu open source oparta na elastycznym, łatwym w użyciu sprzęcie i oprogramowaniu. Jest przeznaczony dla artystów, projektantów, hobbystów i wszystkich zainteresowanych tworzeniem interaktywnych obiektów lub środowisk. Czytaj więcej będzie użyteczne.
Otwórz nowy szkic i skopiuj ten kod. Kod został zmodyfikowany z ten projekt i możesz go pobrać w całości w tej treści.
// jak długo świeci każda dioda LED. int delayTime = 1; // jak długo między każdą int charBreak = 3; // jak długo czekać po zakończeniu wiadomości, zanim się powtórzy. int resetTime = 20; int LED1 = 2; int LED2 = 3; int LED3 = 4; int LED4 = 5; int LED5 = 6; void setup () { pinMode (LED1, WYJŚCIE); pinMode (LED2, WYJŚCIE); pinMode (LED3, WYJŚCIE); pinMode (LED4, WYJŚCIE); pinMode (LED5, WYJŚCIE); } int a [] = {1, 6, 26, 6, 1}; int b [] = {31, 21, 21, 10, 0}; int c2 [] = {14, 17, 17, 10, 0}; int d [] = {31, 17, 17, 14, 0}; int e [] = {31, 21, 21, 17, 0}; int f [] = {31, 20, 20, 16, 0}; int g [] = {14, 17, 19, 10, 0}; int h [] = {31, 4, 4, 4, 31}; int i [] = {0, 17, 31, 17, 0}; int j [] = {0, 17, 30, 16, 0}; int k [] = {31, 4, 10, 17, 0}; int l [] = {31, 1, 1, 1, 0}; int m [] = {31, 12, 3, 12, 31}; int n [] = {31, 12, 3, 31, 0}; int o [] = {14, 17, 17, 14, 0}; int p [] = {31, 20, 20, 8, 0}; int q [] = {14, 17, 19, 14, 2}; int r [] = {31, 20, 22, 9, 0}; int s [] = {8, 21, 21, 2, 0}; int t [] = {16, 16, 31, 16, 16}; int u [] = {30, 1, 1, 30, 0}; int v [] = {24, 6, 1, 6, 24}; int w [] = {28, 3, 12, 3, 28}; int x [] = {17, 10, 4, 10, 17}; int y [] = {17, 10, 4, 8, 16}; int z [] = {19, 21, 21, 25, 0}; int eos [] = {0, 1, 0, 0, 0}; int excl [] = {0, 29, 0, 0, 0}; int ques [] = {8, 19, 20, 8, 0}; int space [] = {0, 0, 0, 0, 0}; void displayLine (int line) { int myline; linia horyzontu = linia; if (myline> = 16) {digitalWrite (LED1, HIGH); myline- = 16;} else {digitalWrite (LED1, LOW);} if (myline> = 8) {digitalWrite (LED2, HIGH); myline- = 8;} else {digitalWrite (LED2, LOW);} if (myline> = 4) {digitalWrite (LED3, HIGH); myline- = 4;} else {digitalWrite (LED3, LOW);} if (myline> = 2) {digitalWrite (LED4, HIGH); myline- = 2;} else {digitalWrite (LED4, LOW);} if (myline> = 1) {digitalWrite (LED5, HIGH); myline- = 1;} else {digitalWrite (LED5, LOW);} } void displayChar (char c) { if (c == 'a') {for (int i = 0; i <5; i ++) {displayLine (a [i]); delay (delayTime);} displayLine (0);} if (c == 'b') {for (int i = 0; i <5; i ++) {displayLine (b [i]); delay (delayTime);} displayLine (0);} if (c == 'c2') {for (int i = 0; i <5; i ++) {displayLine (c2 [i]); delay (delayTime);} displayLine (0);} if (c == 'd') {for (int i = 0; i <5; i ++) {displayLine (d [i]); delay (delayTime);} displayLine (0);} if (c == 'e') {for (int i = 0; i <5; i ++) {displayLine (e [i]); delay (delayTime);} displayLine (0);} if (c == 'f') {for (int i = 0; i <5; i ++) {displayLine (f [i]); delay (delayTime);} displayLine (0);} if (c == 'g') {for (int i = 0; i <5; i ++) {displayLine (g [i]); delay (delayTime);} displayLine (0);} if (c == 'h') {for (int i = 0; i <5; i ++) {displayLine (h [i]); delay (delayTime);} displayLine (0);} if (c == 'i') {for (int it = 0; to <5; it ++) {displayLine (i [it]); delay (delayTime);} displayLine (0);} if (c == 'j') {for (int i = 0; i <5; i ++) {displayLine (j [i]); delay (delayTime);} displayLine (0);} if (c == 'k') {for (int i = 0; i <5; i ++) {displayLine (k [i]); delay (delayTime);} displayLine (0);} if (c == 'l') {for (int i = 0; i <5; i ++) {displayLine (l [i]); delay (delayTime);} displayLine (0);} if (c == 'm') {for (int i = 0; i <5; i ++) {displayLine (m [i]); delay (delayTime);} displayLine (0);} if (c == 'n') {for (int i = 0; i <5; i ++) {displayLine (n [i]); delay (delayTime);} displayLine (0);} if (c == 'o') {for (int i = 0; i <5; i ++) {displayLine (o [i]); delay (delayTime);} displayLine (0);} if (c == 'p') {for (int i = 0; i <5; i ++) {displayLine (p [i]); delay (delayTime);} displayLine (0);} if (c == 'q') {for (int i = 0; i <5; i ++) {displayLine (q [i]); delay (delayTime);} displayLine (0);} if (c == 'r') {for (int i = 0; i <5; i ++) {displayLine (r [i]); delay (delayTime);} displayLine (0);} if (c == 's') {for (int i = 0; i <5; i ++) {displayLine (s [i]); delay (delayTime);} displayLine (0);} if (c == 't') {for (int i = 0; i <5; i ++) {displayLine (t [i]); delay (delayTime);} displayLine (0);} if (c == 'u') {for (int i = 0; i <5; i ++) {displayLine (u [i]); delay (delayTime);} displayLine (0);} if (c == 'v') {for (int i = 0; i <5; i ++) {displayLine (v [i]); delay (delayTime);} displayLine (0);} if (c == 'w') {for (int i = 0; i <5; i ++) {displayLine (w [i]); delay (delayTime);} displayLine (0);} if (c == 'x') {for (int i = 0; i <5; i ++) {displayLine (x [i]); delay (delayTime);} displayLine (0);} if (c == 'y') {for (int i = 0; i <5; i ++) {displayLine (y [i]); delay (delayTime);} displayLine (0);} if (c == 'z') {for (int i = 0; i <5; i ++) {displayLine (z [i]); delay (delayTime);} displayLine (0);} if (c == '!') {for (int i = 0; i <5; i ++) {displayLine (bez [i]); opóźnienie (opóźnienie);} displayLine (0);} if (c == '?') {for (int i = 0; i <5; i ++) {displayLine (ques [i]); delay (delayTime);} displayLine (0);} if (c == '.') {for (int i = 0; i <5; i ++) {displayLine (eos [i]); delay (delayTime);} displayLine (0);} if (c == '') {for (int i = 0; i <5; i ++) {displayLine (space [i]); delay (delayTime);} displayLine (0);} opóźnienie (charBreak); } void displayString (char * s) {for (int i = 0; i <= strlen (s); i ++) {displayChar (s [i]); } } void loop () {// Zmień tutaj tekst wewnątrz, aby zmienić wyświetlany tekst. // Zachowaj nawiasy i znaki cudzysłowu. displayString („.. hello ...”); opóźnienie (40); }
Zapisz szkic i prześlij go na swoją tablicę. Jeśli wystąpią jakiekolwiek błędy, upewnij się, że wybrano prawidłową kartę i port komunikacyjny. Twoje diody LED powinny zacząć migotać. Jeśli nie, sprawdź wszystkie połączenia na swojej tablicy powielającej. Liczby całkowite zadeklarowane na początku kodu określają szybkość wyświetlania tekstu. Im wyższa liczba, tym szybciej trzeba będzie machać urządzeniem. Przekonałem się, że użyte tutaj liczby działały dobrze.
Teraz wykonaj szybki test. Odłącz swoje Arduino od kabla USB i podłącz uchwyt baterii do styków VIN i GND arduino
Teraz, kiedy możesz go przenosić, ostrożnie spróbuj przesunąć diody LED przed sobą. Powinieneś zobaczyć kilka liter tworzących się w powietrzu, pod warunkiem, że wokół ciebie jest wystarczająco ciemno. Odkryłem, że pomogło mi to skonfigurować telefon do przechwytywania tego.
To działa! Teraz, aby było trochę bardziej trwałe.
Żelazka w pogotowiu!
Połóż płytę Arduino, rezystory i diody LED na swoim protoboardzie w następujący sposób:
Możesz oczywiście uczynić układ tak kompaktowym, jak chcesz, o ile obwód pozostaje taki sam. Upewnij się, że zostawiłeś przynajmniej jedną linię styków protoboardowych po każdej stronie Arduino dla komponentów i zasilacza. Jeśli jesteś początkującym w elektronice, oto niektóre świetne wskazówki dla ciebie Elektronika dla początkujących: 10 umiejętności, które musisz znaćWielu z nas nigdy nawet nie dotknęło lutownicy - ale tworzenie rzeczy może być niezwykle satysfakcjonujące. Oto dziesięć podstawowych umiejętności związanych z elektroniką dla majsterkowiczów, które pomogą Ci zacząć. Czytaj więcej .
Będziemy lutować katody LED razem w linii, aby stworzyć wspólną płaszczyznę, podobnie jak zrobiliśmy to, kiedy je zrobiliśmy Matryca LED Ulepsz swój świąteczny wieniec dzięki matrycy LED aktywowanej ruchemTen świąteczny wieniec DIY wykorzystuje matrycę Arduino i LED, aby stworzyć niesamowity podświetlany wyświetlacz, który zaimponuje znajomym i rodzinie. Czytaj więcej .
Złóż każdą katodę tak, aby nakładała się na następną, i przylutuj ją, aby utworzyć jedną nieprzerwaną linię. Teraz musimy przylutować nasze anody do nóg oporników obok nich. Znalazłem najłatwiejszy sposób to przylutować każdą nogę do odpowiedniej podkładki, a następnie umieścić żelazko między nimi, aby ogrzać oba złącza, zanim w końcu doda się więcej lutu, aby wypełnić lukę między nimi im.
Sprawdź każde połączenie, aby upewnić się, że jest solidnie podłączone, a następnie użyj obcinaków do drutu, aby odciąć nadmiar nóżek od rezystorów i diod LED.
Teraz powtórzmy to samo zadanie, ale tym razem łącząc drugi koniec naszych rezystorów z nogami Arduino. To najbardziej skomplikowana część lutowania. Każdy rezystor bardzo przyczepia się do pinu Arduino sam, w przeciwnym razie obwód nie będzie działał tak, jak powinien. Popełniłem tutaj kilka błędów i musiałem wielokrotnie użyć knota lutowniczego, aby usunąć niechciane lutowie.
Po wykonaniu wszystkich poprawnych połączeń sprawdź dwukrotnie, czy żadne z nich nie pokrywa się z sąsiadami. Jeśli masz tutaj dostęp do multimetru, możesz użyć trybu ciągłości, aby sprawdzić, czy każdy pin ma nieprzerwaną linię do rezystora. Jeśli masz właśnie multimetr, jest świetny przewodnik dla początkujących w tym artykule. 7 umiejętności technicznych DIY, aby nauczyć swoje dzieci, bo szkoły nie Czytaj więcej
Po sprawdzeniu każdego połączenia odetnij nadmiar długości z nóg rezystorów
Zwiększanie mocy
Teraz poprowadź kawałek drutu od styku GND swojego Arduino do otworu obok miejsca, w którym kończy się linia lutowanych katod, i umieść obok niego czarny drut uchwytu baterii.
Teraz przylutuj drut do styku GND, w ten sam sposób, w jaki zrobiliśmy to z rezystorami, i przylutuj oba przewody do końca linii katod, aby utworzyć wspólną masę dla obwodu.
Na koniec podłącz przewód do pinu VIN arduino i umieść przełącznik między tym przewodem a akumulatorem. Przepraszam za przełącznik pokryty gorącym klejem na tym zdjęciu, musiałem zdemontować gotową maszynę, aby sfotografować ten etap!
Gdy wszystko się połączy, włóż baterię i przesuń przełącznik. Gratulacje! Obwód jest zakończony. Jeśli nic nie świeci, sprawdź dokładnie każde złącze lutowane, aby zobaczyć, gdzie może nastąpić przerwa lub zwarcie.
Załącznik
Teraz, gdy już działa, umieśćmy go w pudełku. Tutaj użyto pomalowanego kartonu, choć można było uczynić coś bardziej trwałym za pomocą pudełka zakupionego w sklepie hobbystycznym lub nawet starego pudełka z tupperware. Aby uzyskać dodatkowe kredyty dla geeków, możesz nawet wydrukować własne w 3D jedna z tych tanich drukarek 3D. 5 tanich drukarek 3D, które możesz kupić już dziśKilka lat temu nawet najtańsze drukarki 3D były niewygodnie blisko wartości 1000 USD - teraz możesz uzyskać wysokiej jakości drukarkę 3D już za 400 USD. Czytaj więcej
Zmniejsz swój protoboard do rozmiaru, oceniając go i ostrożnie odrywając niepotrzebne części.
Umieść obwód w obudowie i zaznacz, gdzie diody LED i przełącznik muszą się przebić. Opcjonalnie możesz również zaznaczyć, gdzie złącze USB na płycie Arduino styka się z krawędzią, dzięki czemu możesz go podłączyć, aby zmienić tekst bez otwierania pudełka. Wywierć lub wytnij potrzebne otwory w obudowie.
Teraz dodaj trochę gorącego kleju do krawędzi diod LED i przyklej je na miejscu. Przykleiłem kawałek gąbki pod obwód, aby dobrze przylegał do pudełka. Przymocuj przełącznik do skrzynki. Użyłem gorącego kleju, chociaż śruby lub śruby tworzyłyby znacznie silniejsze połączenie. Możesz również przykleić uchwyt baterii do tylnej części płytki drukowanej, aby nie przesuwał się wewnątrz przedmiot jest w użyciu, ale upewnij się, że żadne metalowe styki na obudowie nie dotykają żadnego z twoich połączeń lutowniczych!
Job's Gotowe!
Zamknij obudowę i gotowe! Aby zmienić tekst, podłącz kabel USB do płyty Arduino, a następnie zmień tekst w nawiasach displayString w pętla metoda. Znajdź ciemne miejsce i baw się dobrze!
Czy zbudowałeś już maszynę POV i znasz sposoby na ulepszenie projektu? Czy sam planujesz zbudować? Opowiedz nam o swoim projekcie w komentarzach poniżej, chcielibyśmy go usłyszeć!
Ian Buckley jest niezależnym dziennikarzem, muzykiem, performerem i producentem wideo mieszkającym w Berlinie w Niemczech. Kiedy nie pisze ani nie występuje na scenie, majstruje przy elektronice lub kodzie DIY, mając nadzieję, że zostanie szalonym naukowcem.