Oglas

Z utripajočimi LED diodami lahko počnete vse vrste stvari in v tem preprostem projektu bomo naredili majhno napravo, ki v zraku prižge sporočila, ko jih premikate naprej in nazaj. Je lažje, kot si mislite, skupni stroški delov pa so pod 5 dolarjev.

Ta projekt uporablja optično iluzijo, imenovano obstojnost vida, da se besedilo pojavi v zraku. Verjetno ste naleteli na ta pojav, ko nekdo hitro ponoči premakne prižgano svečko. Za posnemanje tega učinka bomo uporabili Arduino in nekaj LED. Ta projekt je preprost za izgradnjo, z nekaj sestavnimi deli in malo spajkanja (čeprav želite nekaj nasvetov za začetek uporabe svojega spajkalnika, preverite ta vodnik Naučite se spajkanja s temi preprostimi nasveti in projektiVas je malce ustrašila misel na vroče železo in staljeno kovino? Če želite začeti delati z elektroniko, se boste morali naučiti spajkati. Pomagajmo si. Preberi več ).

Boste potrebovali

  • Arduino (rabil sem Nano 2 USD, ker je kompakten in poceni, vendar bi moral biti vsak model v redu).
  • instagram viewer
  • 5x Rdeče LED.
  • 5x Upori 220 Ohm.
  • 1x 9v držalo za baterijo.
  • 1x Rocker stikalo.
  • 1x kos protoboarda.
  • Ohišje za končni izdelek (uporabil sem majhno kartonsko škatlo, pobarvano črno).

Za spajanje boste potrebovali tudi spajkalnik in nekaj spajkalnika.

Neobvezno je, da lahko nekateri spajkalnik postane zelo primeren, če naredite napake pri spajkanju. Za preizkušanje vezja so koristni tudi plošča plošče in nekaj žic za povezovanje.

Komponente, potrebne za projekt

Ožičenje

Ožičenje ne bi moglo biti enostavnejše. Najprej priključite Arduino, LED in upore, kot je prikazano na tem diagramu.

pov fritzing

Zatiči D2 do D6 gredo do vsakega upora, ki so pritrjeni na pozitivno anodo (dolge noge) vsake LED. Katoda je povezana s tlemi, ki se povezujejo nazaj na Arduino. Ko konča, mora izgledati nekako takole:

pov tabla

To je to: naš krog je končan! Pozneje bomo dodali ohišje baterije in stikalo, vendar je to vse, kar moramo preizkusiti, ali deluje.

Koda

Zdaj priključite svoj Arduino na računalnik in odprite Arduino IDE. Če uporabljate Arduino in želite dober vodič o tem, ta povezava Uvod v Arduino: Vodnik za začetnikeArduino je odprtokodna platforma za izdelavo prototipov za elektroniko, ki temelji na fleksibilni, enostavni strojni in programski opremi. Namenjen je umetnikom, oblikovalcem, hobistom in vsem, ki jih zanima ustvarjanje interaktivnih predmetov ali okolij. Preberi več bo koristno.

Odprite novo skico in kopirajte to kodo v. Koda je bila spremenjena iz ta projekt in lahko prenesete v celoti na tej Gist.

// kako dolgo ostane vsaka led. int delayTime = 1; // kako dolgo med vsakim int charBreak = 3; // kako dolgo čakati, ko se sporočilo konča, preden se ponovi. int resetTime = 20; int LED1 = 2; int LED2 = 3; int LED3 = 4; int LED4 = 5; int LED5 = 6; nična namestitev () { pinMode (LED1, IZHOD); pinMode (LED2, IZHOD); pinMode (LED3, IZHOD); pinMode (LED4, IZHOD); pinMode (LED5, IZHOD); } 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 pitanje [] = {8, 19, 20, 8, 0}; int space [] = {0, 0, 0, 0, 0}; void displayLine (int vrstica) { int myline; myline = vrstica; če (moja linija> = 16) {digitalWrite (LED1, HIGH); myline- = 16;} else {digitalWrite (LED1, LOW);} če (moja linija> = 8) {digitalWrite (LED2, HIGH); myline- = 8;} else {digitalWrite (LED2, LOW);} če (moja linija> = 4) {digitalWrite (LED3, HIGH); myline- = 4;} else {digitalWrite (LED3, LOW);} če (moja linija> = 2) {digitalWrite (LED4, HIGH); myline- = 2;} else {digitalWrite (LED4, LOW);} če (moja linija> = 1) {digitalWrite (LED5, HIGH); myline- = 1;} else {digitalWrite (LED5, LOW);} } neveljaven prikazChar (char c) { če (c == 'a') {for (int i = 0; i <5; i ++) {displayLine (a [i]); zamuda (delayTime);} displayLine (0);} če (c == 'b') {for (int i = 0; i <5; i ++) {displayLine (b [i]); zamuda (delayTime);} displayLine (0);} če (c == 'c2') {for (int i = 0; i <5; i ++) {displayLine (c2 [i]); zamuda (delayTime);} displayLine (0);} če (c == 'd') {for (int i = 0; i <5; i ++) {displayLine (d [i]); zamuda (delayTime);} displayLine (0);} če (c == 'e') {for (int i = 0; i <5; i ++) {displayLine (e [i]); zamuda (delayTime);} displayLine (0);} če (c == 'f') {for (int i = 0; i <5; i ++) {displayLine (f [i]); zamuda (delayTime);} displayLine (0);} če (c == 'g') {for (int i = 0; i <5; i ++) {displayLine (g [i]); zamuda (delayTime);} displayLine (0);} če (c == 'h') {for (int i = 0; i <5; i ++) {displayLine (h [i]); zamuda (delayTime);} displayLine (0);} če (c == 'i') {for (int it = 0; it <5; it ++) {displayLine (i [it]); delay (delayTime);} displayLine (0);} če (c == 'j') {for (int i = 0; i <5; i ++) {displayLine (j [i]); zamuda (delayTime);} displayLine (0);} če (c == 'k') {for (int i = 0; i <5; i ++) {displayLine (k [i]); zamuda (delayTime);} displayLine (0);} če (c == 'l') {for (int i = 0; i <5; i ++) {displayLine (l [i]); zamuda (delayTime);} displayLine (0);} če (c == 'm') {for (int i = 0; i <5; i ++) {displayLine (m [i]); zamuda (delayTime);} displayLine (0);} če (c == 'n') {for (int i = 0; i <5; i ++) {displayLine (n [i]); zamuda (delayTime);} displayLine (0);} če (c == 'o') {for (int i = 0; i <5; i ++) {displayLine (o [i]); zamuda (delayTime);} displayLine (0);} če (c == 'p') {for (int i = 0; i <5; i ++) {displayLine (p [i]); zamuda (delayTime);} displayLine (0);} če (c == 'q') {for (int i = 0; i <5; i ++) {displayLine (q [i]); zamuda (delayTime);} displayLine (0);} če (c == 'r') {for (int i = 0; i <5; i ++) {displayLine (r [i]); zamuda (delayTime);} displayLine (0);} če (c == 's') {for (int i = 0; i <5; i ++) {displayLine (s [i]); delay (delayTime);} displayLine (0);} če (c == 't') {for (int i = 0; i <5; i ++) {displayLine (t [i]); zamuda (delayTime);} displayLine (0);} če (c == 'u') {for (int i = 0; i <5; i ++) {displayLine (u [i]); zamuda (delayTime);} displayLine (0);} če (c == 'v') {for (int i = 0; i <5; i ++) {displayLine (v [i]); zamuda (delayTime);} displayLine (0);} če (c == 'w') {for (int i = 0; i <5; i ++) {displayLine (w [i]); zamuda (delayTime);} displayLine (0);} če (c == 'x') {for (int i = 0; i <5; i ++) {displayLine (x [i]); zamuda (delayTime);} displayLine (0);} če (c == 'y') {for (int i = 0; i <5; i ++) {displayLine (y [i]); zamuda (delayTime);} displayLine (0);} če (c == 'z') {for (int i = 0; i <5; i ++) {displayLine (z [i]); zamuda (delayTime);} displayLine (0);} če (c == '!') {for (int i = 0; i <5; i ++) {displayLine (razen [i]); zamuda (delayTime);} displayLine (0);} če (c == '?') {for (int i = 0; i <5; i ++) {displayLine (vprašanje [i]); zamuda (delayTime);} displayLine (0);} če (c == '.') {for (int i = 0; i <5; i ++) {displayLine (eos [i]); zamuda (delayTime);} displayLine (0);} če (c == '') {for (int i = 0; i <5; i ++) {displayLine (presledek [i]); zamuda (delayTime);} displayLine (0);} zamuda (charBreak); } void displayString (char * s) {for (int i = 0; i <= strlen (s); i ++) {displayChar (s [i]); } } void loop () {// Tukaj spremenite besedilo, da spremenite prikazano besedilo. // Pazite, da držite oklepaje in narekovaje. displayString (".. zdravo ..."); zamuda (40); }

Skico shranite in jo naložite na svojo desko. Če se prikažejo kakršne koli napake, se prepričajte, da imate izbrana pravilna plošča in sporočilo. Vaše LED-lučke bi morale utripati. Če ne, preverite vse svoje povezave na plošči. Cela števila, deklarirana na začetku kode, določajo hitrost prikaza besedila. Večja kot je številka, hitreje boste morali pomahati napravi. Ugotovil sem, da tukaj uporabljene številke dobro delujejo.

Zdaj pa hiter test. Arduino odklopite iz kabla USB in držalo baterije pritrdite na VIN in GND nožice vašega arduino

pov fritz z bitko

Zdaj, ko ga lahko premikate, previdno poskusite zamahniti LED pred seboj. Videti bi morali nekaj črk, ki se tvorijo v zraku, pod pogojem, da je okoli vas dovolj temno. Ugotovil sem, da mi je pomagal nastaviti telefon, da to posnamem.

test kruha

Deluje! Zdaj, da bo malo bolj trajna.

Likalniki v pripravljenosti!

Položite svojo Arduino ploščo, upore in LED na vaš prototip tako:

na krovu

Seveda lahko postavite tako kompaktno, kot želite, dokler vezje ostane enako. Poskrbite, da pustite vsaj eno linijo protokolarnih stikov na vsaki strani vašega Arduinoja za komponente in napajanje. Če ste začetnik v elektroniki, jih je nekaj odlični nasveti za vas Elektronika za začetnike: 10 veščin, ki jih morate vedetiMnogi od nas se še nikoli niso dotaknili spajkalnika - vendar je izdelava stvari neverjetno koristna. Tukaj je deset najosnovnejših lastnih elektronskih veščin, ki vam bodo pomagale začeti. Preberi več .

Ledenske katode bomo spajkali skupaj v linijo, da bi naredili skupno podlago, tako kot smo to storili, ko smo naredili svoje LED matrica Nadgradite svoj božični venec z LED matrico, ki se aktivira z gibanjemTa samostojni božični venec uporablja matrico Arduino in LED, da ustvari neverjeten zaslon, ki bo navdušil vaše prijatelje in družino. Preberi več .

vrstice katode

Vsako katodo zložite tako, da prekriva naslednjo, in jih spajkajte, da ustvarite eno neprekinjeno črto. Zdaj moramo svoje anode spajkati na noge uporov poleg njih. Najlažji način za to je bilo, da vsako nogo spajkam na vsako blazinico in nato položim železo med njimi, da segrejeta oba spoja, preden končno dodate več spajkalnika za premostitev vrzeli med njim.

Preverite vsako povezavo in se prepričajte, da je trdno pritrjena, nato pa z žicami odrežite odvečne noge z uporov in LED.

upori proti anodam

Zdaj ponovimo isto nalogo, vendar tokrat povezujemo drugi konec naših uporov na Arduino noge. To je najbolj lep del spajkanja. Vsak upor se veliko pritrdi na svoj Arduino zatič sam ali pa vezje ne bo delovalo tako, kot je namenjeno. Tu sem naredil več napak in moral sem večkrat uporabiti spajkalnik, da sem odstranil neželene spajke.

Ko vzpostavite vse pravilne povezave, dvakrat preverite, ali se nobena od njih ne prekriva s sosedi. Če imate tukaj dostop do multimetra, lahko z načinom neprekinjenosti preverite, ali ima vsak pin samo neprekinjeno črto do upora. Če ste pravkar dobili multimeter, obstaja odličen vodnik za začetek v tem članku. 7 TEY spretnosti, da naučite svoje otroke, ker šole ne bodo Preberi več

slika kontinuitete

Ko ste preverili vsako povezavo, odrežite odvečno dolžino z nog uporov

Dodajanje moči

Zdaj zataknite kos žice z GND zatiča vašega Arduinoja do luknje zraven, kjer se konča vaša linija spajkanih katod, in postavite črno žico držala baterije.

gnd žice vrh

Zdaj spajite žico na GND pin, enako kot smo storili z upori, in obe žici spajkali do konca vrstice katod, da bi ustvarili skupno ozemljitev za vezje.

Na koncu pritrdite žico na pin VIN vašega arduina in postavite stikalo med to žico in baterijo. Oprostite za stikalo z vročim lepilom na tej fotografiji, moral sem razstaviti končni stroj, da sem fotografiral to fazo!

preklopite vin

Ko je vse skupaj spajkano, vstavite baterijo in potisnite stikalo. Čestitamo! Vez je opravljen. Če ne vidite, da bi se kaj spajalo, natančno preverite vsak spajkalni spoj, da vidite, kje lahko pride do prekinitve ali kratkega stika.

Priloga

Zdaj, ko imamo delo, ga spravimo v škatlo. Tu je bila uporabljena poslikana kartonska škatla, čeprav bi lahko s škatlo, kupljeno v trgovini s hobiji, ali celo staro škatlico za tupperware naredili nekaj bolj obstojnega. Za dodaten kredit za geeke lahko celo 3D natisnete svoje eden teh poceni 3D tiskalnikov. 5 poceni 3D tiskalnikov, ki jih dejansko lahko kupite danesPred nekaj leti so bili tudi najcenejši 3D tiskalniki neprijetno blizu oznaki 1000 USD - zdaj lahko dobite kakovosten 3D tiskalnik za slabih 400 USD. Preberi več

Odločite vaš protokol na velikost tako, da ga zabeležite in previdno odsekate dele, ki jih ne potrebujete.

proto gif

Postavite vezje v svoj prostor in označite, kje morajo LED in stikalo pritikati. Izbirno lahko označite tudi, kje USB priključek na plošči Arduino ustreza robu, tako da ga lahko vklopite, če želite spremeniti besedilo, ne da bi odprli polje. V zaprtem prostoru izvrtajte ali izrežite luknje, ki jih potrebujete.

naredite luknje

Zdaj dodajte malo vročega lepila na robove LED in jih prilepite na svoje mesto. Pod vezjem sem prilepil kos gobice, da bi tesno sedel v škatli. Priključite stikalo na ohišje. Uporabil sem vroče lepilo, čeprav bi vijaki ali vijaki naredili veliko močnejšo povezavo. Držalo akumulatorja lahko tudi prilepite na zadnji del vezja, da se ne zaustavi, ko se premika po notranjosti izdelek je v uporabi, vendar bodite prepričani, da se kovinski stiki na ohišju ne dotikajo nobenega vašega spajkalnega spoja!

merilno stikalo

Job je končan!

Zaprite svoj zaprti prostor in končali ste! Če želite spremeniti besedilo, priključite kabel USB na ploščo Arduino in po njem spremenite besedilo v oklepaju displayString v zanka metoda. Poiščite temno mesto in se zabavajte!

počasnejši tempo

Ste že prej izdelali stroj POV in poznate načine, kako izboljšati zasnovo? Ali načrtujete gradnjo samega? Povejte nam o svojem projektu v spodnjih komentarjih, radi bi ga slišali!

Ian Buckley je svobodni novinar, glasbenik, performer in producent videa, ki živi v Berlinu v Nemčiji. Ko ne piše ali na odru, se ukvarja z lastno elektroniko ali kodo v upanju, da bo postal nor znanstvenik.