Lav en POV LED-luftforfatter til under $ 5

  • Joseph Goodman
  • 0
  • 2132
  • 163
Reklame

Du kan gøre alle slags ting med blinkende LED'er, og i dette enkle projekt laver vi en lille enhed, der lyser op i luften, når du vinker den frem og tilbage. Det er lettere, end du tror, ​​og de samlede udgifter til dele er under $ 5.

Dette projekt bruger en optisk illusion kaldet persistens of vision for at få tekst til at vises i luften. Du er sandsynligvis stødt på dette fænomen, når nogen flytter en tændt tændt tomt om natten. Vi bruger en Arduino og nogle LED'er til at efterligne denne effekt. Dette projekt er simpelt at opbygge med få komponenter og lidt lodning (men hvis du vil have nogle tip til at komme i gang med dit loddejern, så tjek denne vejledning Lær hvordan man lodder med disse enkle tip og projekter Lær at lodde med disse enkle Tip og projekter Er du lidt skræmt af tanken om et varmt jern og smeltet metal? Hvis du vil begynde at arbejde med elektronik, bliver du nødt til at lære at lodde. Lad os hjælpe.).

Du får brug for

  • Arduino (jeg brugte en $ 2 Nano, fordi den er kompakt og billig, men enhver model skal være i orden).
  • 5x røde lysdioder.
  • 5x 220 Ohm modstande.
  • 1x 9v batteriholder.
  • 1x vippekontakt.
  • 1x protoboard.
  • Et hus til det færdige produkt (jeg brugte en lille papkasse malet sort).

Du har også brug for et loddejern og noget loddemetal for at sammensætte det hele.

Selvom det er valgfrit, kan nogle loddejer komme meget praktisk i tilfælde af, at du laver loddefejl. En brødbræt og nogle tilslutningsledninger er også nyttige til at teste dit kredsløb.

Ledninger

Ledningerne kunne ikke være enklere. Tilslut først dine Arduino, LED'er og modstande, som vist i dette diagram.

Stifterne D2 til D6 går til hver modstand, der er fastgjort til den positive anode (langben) på hver LED. Katoden er forbundet til jorden, der forbindes tilbage til Arduino. Når det er gjort, skal det se sådan ud:

Det er det: vores kredsløb er færdigt! Vi tilføjer et batterihus og en switch til det senere, men det er alt, hvad vi har brug for for at teste, om det fungerer.

Kode

Tilslut nu din Arduino til computeren, og åbn Arduino IDE. Hvis du er ny til at bruge Arduino og ønsker en god guide til at komme i gang, er dette link Kom godt i gang med Arduino: En begynders vejledning Kom godt i gang med Arduino: En begynders vejledning Arduino er en open source elektronik-prototyperplatform baseret på fleksibel, let- at bruge hardware og software. Det er beregnet til kunstnere, designere, hobbyister og enhver der er interesseret i at skabe interaktive objekter eller miljøer. vil være nyttigt.

Åbn en ny skitse og kopier denne kode i. Koden blev ændret fra dette projekt, og du kan downloade den fuldt ud på dette Gist.

 // hvor længe hver led forbliver tændt i int-forsinkelse = 1; // hvor længe mellem hver int charBreak = 3; // hvor længe man skal vente efter, at meddelelsen er færdig, før den gentager int resetTime = 20; int LED1 = 2; int LED2 = 3; int LED3 = 4; int LED4 = 5; int LED5 = 6; tom opsætning () pinMode (LED1, OUTPUT); pinMode (LED2, OUTPUT); pinMode (LED3, OUTPUT); pinMode (LED4, OUTPUT); pinMode (LED5, OUTPUT);  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; myline = linje; if (myline> = 16) digitalWrite (LED1, HIGH); myline- = 16; andet digitalWrite (LED1, LOW); if (myline> = 8) digitalWrite (LED2, HIGH); myline- = 8; andet digitalWrite (LED2, LOW); if (myline> = 4) digitalWrite (LED3, HIGH); myline- = 4; andet digitalWrite (LED3, LOW); if (myline> = 2) digitalWrite (LED4, HIGH); myline- = 2; andet digitalWrite (LED4, LOW); if (myline> = 1) digitalWrite (LED5, HIGH); myline- = 1; andet digitalWrite (LED5, LAV); ugyldig visningChar (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; it <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(excl[i]);delay(delayTime);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); delay(charBreak);  void displayString(char* s) for (int i = 0; i<=strlen(s); i++) displayChar(s[i]);   void loop() //Change the text inside here to change the text displayed. //Make sure to keep the brackets and the quotation marks. displayString("… hello!… "); delay(40);  

Gem skitsen og upload den til dit tavle. Hvis du får fejl, skal du sørge for, at du har valgt det rigtige kort og com port. Dine lysdioder skal begynde at flimre. Hvis de ikke gør det, skal du kontrollere alle dine forbindelser på din brødbræt. De heltal, der er erklæret i begyndelsen af ​​koden, bestemmer, hvor hurtigt teksten vises. Jo højere nummer, jo hurtigere bliver du nødt til at vinke enheden. Jeg fandt, at de anvendte numre her fungerede godt.

Nu for at udføre en hurtig test. Frakobl din Arduino fra USB-kablet, og fastgør din batteriholder til VIN- og GND-stifterne på din arduino

Nu hvor du kan flytte den rundt, prøv forsigtigt at svinge lysdioderne foran dig. Du skal se nogle bogstaver dannes i luften, forudsat at det er mørkt nok omkring dig. Jeg fandt, at det hjalp med at indstille min telefon til at fange dette.

Det virker! Nu for at gøre det lidt mere permanent.

Jern til klar!

Læg dit Arduino-kort, modstande og LED på din protoboard sådan:

Du kan selvfølgelig gøre layoutet så kompakt, som du ønsker, så længe kredsløbet forbliver det samme. Sørg for, at du efterlader mindst en linje med protobordkontakter på hver side af din Arduino for komponenterne og strømforsyningen. Hvis du er en nybegynder inden for elektronik, her er nogle gode råd til dig Begynderelektronik: 10 færdigheder, du har brug for at vide Begynderelektronik: 10 færdigheder, du har brug for at kende Mange af os har aldrig engang rørt ved et loddejern - men at gøre ting kan være utroligt givende . Her er ti af de mest basale DIY-elektronikfærdigheder, der hjælper dig med at komme i gang. .

Vi lodder LED-katoderne sammen i en linje for at skabe en fælles grund, ligesom vi gjorde, da vi lavede vores LED-matrix Opgrader din julekrans med en bevægelsesaktiveret LED-matrix Opgrader din julekrans med en bevægelsesaktiveret LED-matrix Denne DIY-jul krans bruger en Arduino- og LED-matrix til at producere en fantastisk lysdisplay, der vil imponere dine venner og familie. .

Fold hver katode, så den overlapper den næste, og lod dem for at skabe en ubrudt linje. Nu er vi nødt til at lodde vores anoder til benene på modstanderne ved siden af ​​dem. Jeg fandt, at den nemmeste måde at gøre dette på var at lodde hvert ben til deres respektive pude og derefter placere jernet imellem dem for at opvarme begge samlinger, før jeg til sidst tilføjede mere lodde til at bygge bro mellem dem.

Kontroller hver forbindelse for at se, at den er solidt fastgjort, og brug derefter trådskærere til at afskære overskydende ben fra modstande og lysdioder.

Nu for at gentage den samme opgave, men denne gang forbinder den anden ende af vores modstande til benene på Arduino. Dette er den mest uklare del af lodningen. Hver modstand hænger meget fast på sin Arduino-pin alene, eller kredsløbet fungerer ikke, som det er beregnet til. Jeg begik flere fejl her og var nødt til at bruge loddemetal til at fjerne uønsket lodde flere gange.

Når du har foretaget alle de rigtige forbindelser, skal du tjekke, at ingen af ​​dem overlapper hinanden med deres naboer. Hvis du har adgang til et multimeter her, kan du bruge kontinuitetstilstand til at kontrollere, at hver pin kun har en ubrudt linje til dens modstand. Hvis du lige har fået et multimeter, er der en god guide til at komme i gang i denne artikel. 7 DIY Tech-færdigheder til at undervise dine børn, fordi skoler ikke vil 7 DIY Tech-færdigheder til at undervise dine børn, fordi skoler ikke vil

Når du har kontrolleret hver forbindelse, skal du skære overskydende længde fra benene på modstande

Tilføjelse af strøm

Kør nu et stykke ledning fra GND-stiften på din Arduino til et hul ved siden af, hvor din linje af lodde katoder slutter, og placer den sorte ledning i din batteriholder ved siden af.

Lod nu wiren til GND-stiften, på samme måde som vi gjorde med modstandene, og lod begge ledninger til enden af ​​linjen af ​​katoder for at skabe en fælles grund for kredsløbet.

Tilslut til sidst en ledning til VIN-stiften på din arduino, og placer din switch mellem denne ledning og batteripakken. Undskyld for den varme lim, der var dækket til kontakten på dette foto, jeg var nødt til at afmontere den færdige maskine for at fotografere dette trin!

Når det hele er loddet sammen, skal du sætte et batteri i og dreje på kontakten. Tillykke! Kredsløbet er færdig. Hvis du ikke ser noget lyser op, skal du kontrollere hvert loddeforbindelse omhyggeligt for at se, hvor der kan være en pause eller en kortslutning.

kabinet

Nu hvor vi har det fungerer, lad os lægge det i en kasse. Her blev en malet papkasse brugt, skønt du kunne gøre noget mere permanent ved hjælp af en kasse købt i en hobbybutik eller endda en gammel tupperware-kasse. For ekstra geek cred, kan du endda 3D-udskrive din egen på en af ​​disse billige 3D-printere. 5 billige 3D-printere, som du faktisk kan købe i dag 5 billige 3D-printere, som du faktisk kan købe i dag Et par år tilbage var selv de billigste 3D-printere ubehageligt tæt på $ 1.000-mærket - nu kan du få en 3D-printer til kvalitet til så lavt som $ 400.

Skær din protoboard ned i størrelse ved at score den og snappe forsigtigt de dele, du ikke har brug for.

Placer dit kredsløb inde i dit kabinet, og markér, hvor LED'erne og kontakten skal trænge igennem. Du kan eventuelt også markere, hvor USB-stikket på Arduino-tavlen møder kanten, så du kan tilslutte det for at ændre teksten uden at åbne boksen. Bor eller skær de huller, du har brug for, i kabinettet.

Tilføj nu lidt varmt lim til kanterne på lysdioderne og sæt dem på plads. Jeg limede et stykke svamp under kredsløbet, så det sad tæt i kassen. Sæt din switch til sagen. Jeg brugte varmt lim, selvom skruer eller bolte ville have en meget stærkere forbindelse. Du kan også lime batteriholderen på bagsiden af ​​kredsløbskortet for at forhindre, at den bevæger sig indeni, når emnet er i brug, men vær sikker på, at metalkontakter på sagen ikke berører nogen af ​​dine loddeforbindelser!

Job er færdig!

Luk din kabinet op, så er du færdig! For at ændre teksten skal du tilslutte dit USB-kabel til Arduino-tavlen og ændre teksten inden i parentes efter Visningsstreng i løkke metode. Find et mørkt sted, og have det sjovt!

Har du bygget en POV-maskine før og kendt måder at forbedre designet på? Planlægger du selv at bygge en sådan? Fortæl os om dit projekt i kommentarerne nedenfor, vi vil meget gerne høre det!




Endnu ingen kommentarer

Om moderne teknologi, enkel og overkommelig.
Din guide i en verden af moderne teknologi. Lær hvordan du bruger de teknologier og gadgets, der omgiver os hver dag, og lær, hvordan du finder interessante ting på Internettet.