Lav en POV LED Air Writer til under $ 5

I dette enkle projekt laver vi en lille enhed, der lyser meddelelser i luften, når du bøjer den rundt. Det er nemmere end du tror, ​​og den samlede pris er under $ 5.

I dette enkle projekt laver vi en lille enhed, der lyser meddelelser i luften, når du bøjer den rundt.  Det er nemmere end du tror, ​​og den samlede pris er under $ 5.
Reklame

Du kan gøre alle mulige ting med blinkende lysdioder, og i dette enkle projekt laver vi en lille enhed, der tænder meddelelser i luften, når du bøjer det frem og tilbage. Det er nemmere end du tror, ​​og den samlede pris for dele er under $ 5.

Dette projekt anvender en optisk illusion kaldet persistens af vision for at få tekst frem i luften. Du har sandsynligvis stødt på dette fænomen, når nogen flytter en tændt sparkler hurtigt om natten. Vi bruger en Arduino og nogle LED'er til at efterligne denne effekt. Dette projekt er let at bygge med få komponenter og lidt lodning (selvom du vil have nogle tips om at komme i gang med dit loddejern, skal du se denne vejledning. Lær at lodde med disse enkle tips og projekter. Lær at lodde med disse enkle Tips og projekter Er du lidt skræmt af tanken om varmt jern og smeltet metal? Hvis du vil begynde at arbejde med elektronik, skal du lære at lodde. Lad os hjælpe. Læs mere).

Du får brug for

  • Arduino (jeg brugte en $ 2 nano fordi den er kompakt og billig, men enhver model skal være fint).
  • 5x røde lysdioder.
  • 5x 220 ohm modstande.
  • 1x 9v batteri holder.
  • 1x Rocker switch.
  • 1x stykke protoboard.
  • Et hus til det færdige produkt (jeg brugte en lille papkasse malet sort).

Du skal også bruge et loddejern og noget loddetråd til at sætte det sammen.

Selvom det er valgfrit, kan nogle loddematerialer komme meget praktisk, hvis du laver loddefejl. Et brødbræt og nogle tilslutningsledninger er også nyttige til at teste dit kredsløb.

Komponenter påkrævet for projektet

Ledninger

Ledningerne kunne ikke være enklere. Først skal du tilslutte din Arduino, lysdioder og modstande som vist i dette diagram.

pov fritzing

Stifterne D2 til og med D6 går til hver modstand, som er fastgjort til den positive anode (lange ben) af hver LED. Katoden er forbundet med jord, som forbinder tilbage til Arduino. Når det er færdigt, skal det se sådan ud:

pov breadboard

Det er det: vores kredsløb er færdigt! Vi tilføjer et batterihus og en skifte til det senere, men det er alt, hvad vi skal teste om det virker.

Kode

Nu tilslut din Arduino til computeren og åbn Arduino IDE. Hvis du er ny til at bruge Arduino og vil have en god vejledning i at komme i gang, er dette link Kom godt i gang med Arduino: En nybegyndervejledning Kom godt i gang med Arduino: En nybegyndervejledning Arduino er en open source elektronik prototypeplanlægning baseret på fleksibel, at bruge hardware og software. Det er beregnet til kunstnere, designere, hobbyister og alle interesserede i at skabe interaktive objekter eller miljøer. Læs mere vil være nyttigt.

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

// how long each led stays on for int delayTime = 1; //how long between each int charBreak = 3; //how long to wait after the message is finished before it repeats int resetTime = 20; int LED1 = 2; int LED2 = 3; int LED3 = 4; int LED4 = 5; int LED5 = 6; void setup(){ 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 = line; 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; 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 bord. Hvis du får fejl, skal du sørge for at have valgt det rigtige board og com port. Dine LED'er skal begynde at flimre. Hvis de ikke gør det, skal du kontrollere alle dine forbindelser på dit brødbræt. De heltal, der er angivet i starten af ​​koden, bestemmer, hvor hurtigt teksten vises. Jo højere tallet jo hurtigere skal du bølge enheden. Jeg fandt ud af, at tallene der bruges her fungerede godt.

Nu for at lave en hurtig test. Afbryd din Arduino fra USB-kablet, og sæt din batteriholder til VIN- og GND-stifterne på din arduino

pov fritz med batt

Nu hvor du kan bevæge den rundt, prøv forsigtigt at svinge LED'erne foran dig. Du bør se nogle bogstaver, der danner i luften, forudsat at det er mørkt nok omkring dig. Jeg fandt det med til at sætte min telefon op for at fange dette.

brød test

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

Strygejern på klar!

Læg dit Arduino bord, modstande og lysdioder på din protoboard som denne:

lagt ud om bord

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 forlader mindst én linje af protoboardkontakter på hver side af din Arduino for komponenter og strømforsyning. Hvis du er en nybegynder i elektronik, er her nogle gode tips til dig. Begynderens elektronik: 10 færdigheder, du behøver at vide Begynderens elektronik: 10 færdigheder du behøver at vide Mange af os har aldrig engang rørt et loddejern - men at gøre tingene kan være utrolig givende . Her er ti af de mest grundlæggende DIY elektronik færdigheder til at hjælpe dig med at komme i gang. Læs mere .

Vi vil lodde LED-katoderne sammen i en linje for at skabe en fælles jord, ligesom vi gjorde, da vi lavede vores LED-matrix Opgrader julekronen med en bevægelsesaktiveret LED-matrix Opgrader julekronen 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. Læs mere .

række katoder

Fold hver katode, så den overlapper den næste, og lod dem solde for at skabe en ubrudt linje. Nu skal vi lodde vores anoder til benene på modstande ved siden af ​​dem. Jeg fandt den nemmeste måde at gøre dette på at lodde hvert ben på deres respektive pude og derefter placere jernet imellem dem for at varme begge leddene, inden du endelig tilføjer mere loddet for at broere kløften mellem dem.

Kontroller hver forbindelse for at se, at den er fastgjort fast, og brug derefter wire cutters til at afskære de overskydende ben fra modstande og lysdioder.

modstande til anoder

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 fiddly del af lodningen. Hver modstand hænger kun til sin Arduino pin alene, eller kredsløbet virker ikke som det er meningen. Jeg lavede flere fejl her og måtte bruge loddetråd til at fjerne uønsket loddemetal flere gange.

Når du har lavet alle de rigtige forbindelser, skal du dobbeltklikke på, at ingen af ​​dem overlapper hinanden med deres naboer. Hvis du har adgang til et multimeter her, kan du bruge kontinuitetstilstand for at kontrollere, at hver enkelt pin har en ubrudt linje til dens modstand. Hvis du lige har fået et multimeter, er der en god startvejledning i denne artikel. 7 DIY Tekniske færdigheder til at undervise dine børn, fordi skolerne ikke vil 7 DIY tekniske færdigheder til at lære dine børn, fordi skolerne ikke vil læse mere

kontinuitetsbillede

Når du har kontrolleret hver forbindelse, skal du klippe overskydende længde fra modstandernes ben

Tilføjelse af magt

Kør nu et stykke ledning fra GND-stiften på din Arduino til et hul ved siden af, hvor din linje af loddekatoder slutter, og sæt den sorte ledning i din batteriholder ved siden af ​​den.

GND ledninger øverst

Løft nu ledningen til GND-stiften, på samme måde som vi gjorde med modstandene, og lodd begge ledninger til enden af ​​katodestrengen for at skabe en fælles grund for kredsløbet.

Tilslut en ledning til VIN-stiften på din arduino, og sæt din switch mellem den pågældende ledning og batteripakken. Til undskyldninger for den varme lim dækket kontakt i dette billede, jeg var nødt til at demontere den færdige maskine for at fotografere denne fase!

skift vin

Når det først er loddet sammen, skal du sætte et batteri ind og skifte kontakten. Tillykke! Kredsløbet er færdigt Hvis du ikke ser noget lys op, skal du kontrollere hver loddeforbindelse forsigtigt for at se, hvor der kan være en pause eller en kortslutning.

kabinet

Nu da vi har det til at virke, lad os sætte det i en kasse. Her blev der brugt en malet papkasse, selv om du kunne gøre noget mere permanent ved at bruge 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 kan du faktisk købe i dag 5 billige 3D-printere kan du faktisk 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 kvalitets 3D-printer til så lavt som $ 400. Læs mere

Skær ned din protoboard til størrelse ved at scorere det og omhyggeligt snappe væk dele, du ikke behøver.

proto gif

Placer dit kredsløb inde i dit kabinet, og marker, hvor LED'erne og kontakten skal blæse igennem. Du kan også markere, hvor USB-stikket på Arduino-kortet passer til kanten, så du kan sætte det ind for at ændre teksten uden at åbne boksen. Bore eller skære de huller, du har brug for i kabinettet.

lav huller

Tilføj nu en lille varm lim til LED'ernes kanter og hold dem på plads. Jeg limede et stykke svamp under kredsløbet, så det kunne sidde tæt i kassen. Sæt din switch på sagen. Jeg brugte varm lim, selvom skruer eller bolte ville gøre en meget stærkere forbindelse. Du kan også klæbe batteriholderen bag på printkortet for at forhindre, at den bevæger sig indvendigt, når varen er i brug, men sørg for, at alle metalkontakter på sagen ikke rører ved nogen af ​​dine loddemekanismer!

måleomskifter

Job er klar!

Luk dit kabinet op, og du er færdig! For at ændre teksten skal du vedhæfte dit USB-kabel til Arduino-kortet og ændre teksten inden for parenteserne efter displayString i loop- metoden. Find et mørkt sted, og sjov!

langsommere tempo

Har du bygget en POV-maskine før og ved, hvordan man kan forbedre designet? Har du planer om at bygge en selv? Fortæl os om dit projekt i kommentarerne nedenfor, vi vil gerne høre det!

In this article