Puoi fare ogni sorta di cose con i LED lampeggianti, e in questo semplice progetto creeremo un piccolo dispositivo che illumina i messaggi in aria quando lo fai ondeggiare avanti e indietro. È più facile di quanto pensi, e il costo totale delle parti è inferiore a $ 5.
Questo progetto utilizza un'illusione ottica chiamata persistenza della visione per far apparire il testo nell'aria. Probabilmente ti sei imbattuto in questo fenomeno quando qualcuno muove rapidamente una scintilla accesa di notte. Useremo un Arduino e alcuni LED per simulare questo effetto. Questo progetto è semplice da costruire, con pochi componenti e poca saldatura (ma se vuoi qualche consiglio su come iniziare con il tuo saldatore consulta questa guida Scopri come saldare, con questi semplici suggerimenti e progetti Impara come saldare, con questi semplici Suggerimenti e progetti Sei un po 'intimidito dal pensiero di un ferro caldo e metallo fuso? Se vuoi iniziare a lavorare con l'elettronica, dovrai imparare a saldare.
Avrai bisogno
- Arduino (Ho usato un $ 2 Nano perché è compatto ed economico, ma qualsiasi modello dovrebbe andare bene).
- 5 LED rossi.
- 5 resistenze da 220 Ohm.
- 1x supporto batteria 9v.
- 1x interruttore a bilanciere.
- 1x pezzo di protoboard.
- Una custodia per il prodotto finito (ho usato una piccola scatola di cartone dipinta di nero).
Avrai anche bisogno di un saldatore e un po 'di saldatura per mettere tutto insieme.
Mentre opzionale, alcuni stoppini per saldatura possono essere molto utili in caso di errori di saldatura. Una breadboard e alcuni cavi di collegamento sono utili anche per testare il circuito.
Cablaggio
Il cablaggio non potrebbe essere più semplice. Innanzitutto, collega Arduino, LED e resistori come mostrato in questo diagramma.
I pin da D2 a D6 vanno rispettivamente a ciascun resistore, che sono collegati all'anodo positivo (gamba lunga) di ciascun LED. Il catodo è collegato a terra, che si ricollega all'Arduino. Quando è fatto dovrebbe assomigliare a questo:
Ecco fatto: il nostro circuito è fatto! Aggiungeremo un alloggiamento della batteria e un interruttore in un secondo momento, ma questo è tutto ciò che serve per verificare se funziona.
Codice
Ora collega Arduino al computer e apri l'IDE Arduino. Se sei nuovo nell'uso di Arduino e desideri una buona guida per iniziare, questo link Guida introduttiva di Arduino: Guida per principianti Guida introduttiva ad Arduino: Guida per principianti Arduino è una piattaforma di prototipazione elettronica open source basata su flessibile, facile- usare hardware e software. È pensato per artisti, designer, hobbisti e chiunque sia interessato a creare oggetti o ambienti interattivi. Leggi di più sarà utile.
Apri un nuovo schizzo e copia questo codice. Il codice è stato modificato da questo progetto e puoi scaricarlo completamente in questo 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); }
Salva lo schizzo e caricalo sul tuo tabellone. Se si verificano errori, assicurarsi di avere selezionato la scheda e la porta com corrette. I LED dovrebbero iniziare a lampeggiare. In caso contrario, controllare tutte le connessioni sulla breadboard. I numeri interi dichiarati all'inizio del codice determinano la velocità di visualizzazione del testo. Più alto è il numero, più veloce sarà necessario far ondeggiare il dispositivo. Ho trovato che i numeri usati qui funzionavano bene.
Ora fare un test rapido. Scollega Arduino dal cavo USB e collega il portabatterie ai pin VIN e GND del tuo arduino
Ora che puoi spostarlo, prova attentamente a far oscillare i LED davanti a te. Dovresti vedere alcune lettere che si formano nell'aria a condizione che sia abbastanza buio intorno a te. Ho trovato che mi ha aiutato a impostare il mio telefono per catturarlo.
Funziona! Ora per renderlo un po 'più permanente.
Ferri al pronto!
Metti la tua scheda Arduino, resistori e LED sulla tua scheda prototipo in questo modo:
Ovviamente puoi rendere il layout il più compatto possibile, purché il circuito rimanga lo stesso. Assicurati di lasciare almeno una linea di contatti di protoboard su ciascun lato del tuo Arduino per i componenti e l'alimentazione. Se sei un principiante in elettronica, ecco alcuni ottimi consigli per te Elettronica per principianti: 10 competenze che devi conoscere Elettronica per principianti: 10 competenze che devi sapere Molti di noi non hanno mai nemmeno toccato un saldatore - ma rendere le cose incredibilmente gratificanti . Ecco dieci delle più elementari competenze elettroniche fai-da-te per aiutarti a iniziare. Leggi di più .
Noi salderemo i catodi LED insieme in una linea per creare un terreno comune, proprio come abbiamo fatto con la nostra matrice LED Aggiorna la tua corona di Natale con una matrice LED attivata da movimento Aggiorna la tua corona di Natale con una matrice LED attivata da movimento Questo Natale fai-da-te wreath utilizza una matrice Arduino e LED per produrre uno straordinario display luminoso che stupirà i tuoi amici e la tua famiglia. Leggi di più .
Piega ciascun catodo in modo che si sovrapponga al successivo e saldali per creare una linea ininterrotta. Ora abbiamo bisogno di saldare i nostri anodi alle gambe dei resistori accanto a loro. Ho trovato che il modo più semplice per farlo era quello di saldare ogni gamba al loro pad rispettivo, e quindi posizionare il ferro tra di loro per riscaldare entrambe le articolazioni, prima di aggiungere finalmente più saldature per colmare il divario tra di loro.
Controllare ogni connessione per verificare che sia saldamente collegata, quindi utilizzare i tronchesi per tagliare le gambe in eccesso dai resistori e dai LED.
Ora per ripetere lo stesso compito, ma questa volta collegando l'altra estremità dei nostri resistori alle gambe dell'Arduino. Questa è la parte più delicata della saldatura. Ogni resistenza si attacca molto al suo pin Arduino da solo o il circuito non funzionerà nel modo previsto. Ho fatto diversi errori qui e ho dovuto usare lo stoppino per saldatura per rimuovere più volte saldature indesiderate.
Una volta che hai effettuato tutte le connessioni corrette, controlla due volte che non si sovrappongano ai loro vicini. Se si ha accesso a un multimetro qui, è possibile utilizzare la modalità di continuità per verificare che ogni pin abbia una linea ininterrotta rispetto al resistore. Se hai appena ottenuto un multimetro, in questo articolo c'è una buona guida introduttiva. 7 competenze tecniche fai-da-te per insegnare ai tuoi bambini, perché le scuole non 7 competenze tecniche fai-da-te per insegnare ai tuoi figli, perché le scuole non leggerà di più
Dopo aver controllato ogni connessione, taglia la lunghezza in eccesso dalle gambe dei resistori
Aggiunta di potenza
Ora esegui un pezzo di filo dal piedino GND del tuo Arduino in un foro vicino al punto in cui termina la linea di catodi saldati e posiziona il filo nero del supporto della batteria accanto ad esso.
Ora saldare il filo al pin GND, allo stesso modo in cui lo abbiamo fatto con i resistori, e saldare entrambi i fili all'estremità della linea di catodi per creare un terreno comune per il circuito.
Infine, collega un cavo al pin VIN del tuo arduino e posiziona il tuo interruttore tra quel filo e il pacco batteria. Scuse per la colla calda coperta in questa foto, ho dovuto smontare la macchina finita per fotografare questo palcoscenico!
Una volta saldato tutto insieme, inserire una batteria e azionare l'interruttore. Complimenti! Il circuito è finito. Se non vedi nulla illuminare, controlla attentamente ogni giunto di saldatura per vedere dove ci può essere una rottura o un corto circuito.
Allegato
Ora che ce l'abbiamo, mettiamolo in una scatola. Qui si usava una scatola di cartone dipinto, anche se si poteva fare qualcosa di più permanente usando una scatola acquistata in un negozio di articoli per hobby, o anche una vecchia scatola di tupperware. Per i credenziali extra geek, puoi persino stampare in 3D da solo su una di queste stampanti 3D economiche. 5 stampanti 3D economiche che puoi acquistare oggi Oggi 5 stampanti 3D economiche che puoi acquistare oggi Oggi, qualche anno fa, anche le stampanti 3D più economiche si trovavano a disagio vicino al marchio da $ 1.000: ora puoi ottenere una stampante 3D di qualità a partire da $ 400. Leggi di più
Taglia la tua scheda prototipale in base alle dimensioni, tagliandola e allontanando accuratamente le parti che non ti servono.
Posiziona il circuito all'interno del tuo alloggiamento e segna dove devono passare i LED e l'interruttore. Opzionalmente puoi anche contrassegnare dove il connettore USB sulla scheda Arduino incontra il bordo in modo da poterlo collegare per cambiare il testo senza aprire la scatola. Praticare o tagliare i fori necessari all'interno del contenitore.
Ora aggiungi un po 'di colla a caldo sui bordi dei LED e incollali in posizione. Ho incollato un pezzo di spugna sotto il circuito in modo che si inserisse comodamente nella scatola. Attacca il tuo interruttore alla custodia. Ho usato la colla a caldo, anche se viti o bulloni avrebbero reso una connessione molto più forte. È inoltre possibile incollare il supporto della batteria sul retro del circuito stampato per impedirne il movimento all'interno quando l'elemento è in uso, ma assicurarsi che i contatti metallici sulla custodia non tocchino i giunti di saldatura!
Lavoro fatto!
Chiudi il tuo recinto e il gioco è fatto! Per cambiare il testo, collega il cavo USB alla scheda Arduino e modifica il testo all'interno delle parentesi dopo displayString nel metodo loop . Trova un posto buio e divertiti!
Hai costruito una macchina POV prima e sai come migliorare il design? Stai pensando di costruirne uno tu stesso? Parlaci del tuo progetto nei commenti qui sotto, ci piacerebbe sentirlo!