Werbung

Mit blinkenden LEDs können Sie alles Mögliche tun. In diesem einfachen Projekt stellen wir ein kleines Gerät her, das Nachrichten in der Luft beleuchtet, wenn Sie es hin und her bewegen. Es ist einfacher als Sie denken und die Gesamtkosten für Teile liegen unter 5 US-Dollar.

Dieses Projekt nutzt eine optische Täuschung, die als Persistenz des Sehens bezeichnet wird, um Text in der Luft erscheinen zu lassen. Sie werden wahrscheinlich auf dieses Phänomen stoßen, wenn jemand nachts schnell eine brennende Wunderkerze bewegt. Wir werden ein Arduino und einige LEDs verwenden, um diesen Effekt nachzuahmen. Dieses Projekt ist einfach zu erstellen, mit wenigen Komponenten und wenig Löten (wenn Sie jedoch einige Tipps für den Einstieg in Ihren Lötkolben benötigen, lesen Sie den Abschnitt diese Anleitung Erfahren Sie, wie Sie mit diesen einfachen Tipps und Projekten lötenSind Sie ein wenig eingeschüchtert von dem Gedanken an ein heißes Eisen und geschmolzenes Metall? Wenn Sie mit Elektronik arbeiten möchten, müssen Sie das Löten lernen. Lasst uns helfen. Weiterlesen ).

instagram viewer

Du wirst brauchen

  • Arduino (Ich habe einen 2-Dollar-Nano verwendet, weil er kompakt und billig ist, aber jedes Modell sollte in Ordnung sein).
  • 5x Rote LEDs.
  • 5x 220 Ohm Widerstände.
  • 1x 9V Batteriehalter.
  • 1x Wippschalter.
  • 1x Stück Protoboard.
  • Ein Gehäuse für das fertige Produkt (ich habe einen kleinen schwarz lackierten Karton verwendet).

Sie benötigen außerdem einen Lötkolben und etwas Lötmittel, um alles zusammenzusetzen.

Obwohl optional, kann ein Lötdocht sehr nützlich sein, falls Sie Lötfehler machen. Ein Steckbrett und einige Anschlussdrähte sind ebenfalls nützlich, um Ihre Schaltung zu testen.

Für das Projekt erforderliche Komponenten

Verdrahtung

Die Verkabelung könnte nicht einfacher sein. Schließen Sie zuerst Ihr Arduino, Ihre LEDs und Widerstände wie in diesem Diagramm gezeigt an.

pov fritzing

Die Pins D2 bis D6 gehen jeweils zu jedem Widerstand, die an der positiven Anode (langes Bein) jeder LED angebracht sind. Die Kathode ist mit Masse verbunden, die wieder mit dem Arduino verbunden ist. Wenn es fertig ist, sollte es ungefähr so ​​aussehen:

POV Steckbrett

Das war's: Unsere Schaltung ist fertig! Wir werden später ein Batteriegehäuse und einen Schalter hinzufügen, aber das ist alles, was wir brauchen, um zu testen, ob es funktioniert.

Code

Schließen Sie nun Ihr Arduino an den Computer an und öffnen Sie die Arduino IDE. Wenn Sie mit dem Arduino noch nicht vertraut sind und eine gute Anleitung zum Einstieg benötigen, dieser Link Erste Schritte mit Arduino: Ein Leitfaden für AnfängerArduino ist eine Open-Source-Plattform für das Prototyping von Elektronik, die auf flexibler, benutzerfreundlicher Hardware und Software basiert. Es richtet sich an Künstler, Designer, Bastler und alle, die interaktive Objekte oder Umgebungen erstellen möchten. Weiterlesen wird nützlich sein.

Öffnen Sie eine neue Skizze und kopieren Sie diesen Code ein. Der Code wurde von geändert dieses Projekt und Sie können es vollständig herunterladen an diesem Kern.

// wie lange jede LED eingeschaltet bleibt. int delayTime = 1; // wie lange zwischen jedem int charBreak = 3; // Wie lange muss gewartet werden, bis die Nachricht beendet ist, bevor sie wiederholt wird? 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; es <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 (Leerzeichen [i]); delay (delayTime);} displayLine (0);} Verzögerung (charBreak); } void displayString (char * s) {for (int i = 0; i <= strlen (s); i ++) {displayChar (s [i]); } } void loop () {// Ändere den Text hier, um den angezeigten Text zu ändern. // Achten Sie darauf, die Klammern und Anführungszeichen beizubehalten. displayString (".. hallo ..."); Verzögerung (40); }

Speichern Sie die Skizze und laden Sie sie auf Ihr Board hoch. Wenn Sie Fehler erhalten, stellen Sie sicher, dass Sie die richtige Karte und den richtigen COM-Anschluss ausgewählt haben. Ihre LEDs sollten anfangen zu flackern. Wenn dies nicht der Fall ist, überprüfen Sie alle Verbindungen auf Ihrem Steckbrett. Die am Anfang des Codes deklarierten Ganzzahlen bestimmen, wie schnell der Text angezeigt wird. Je höher die Zahl, desto schneller müssen Sie das Gerät winken lassen. Ich fand, dass die hier verwendeten Zahlen gut funktionierten.

Machen Sie jetzt einen kurzen Test. Trennen Sie Ihr Arduino vom USB-Kabel und befestigen Sie Ihren Batteriehalter an den VIN- und GND-Pins Ihres Arduino

pov fritz mit Batt

Versuchen Sie nun, die LEDs vor sich zu schwenken, da Sie sie jetzt bewegen können. Sie sollten einige Buchstaben in der Luft sehen, vorausgesetzt, es ist dunkel genug um Sie herum. Ich fand es hilfreich, mein Telefon so einzurichten, dass dies erfasst wird.

Brottest

Es klappt! Nun, um es etwas dauerhafter zu machen.

Bügeleisen bereit!

Legen Sie Ihre Arduino-Platine, Widerstände und LEDs wie folgt auf Ihr Protoboard:

an Bord ausgelegt

Sie können das Layout natürlich so kompakt gestalten, wie Sie möchten, solange die Schaltung gleich bleibt. Stellen Sie sicher, dass auf jeder Seite Ihres Arduino mindestens eine Reihe von Protoboard-Kontakten für die Komponenten und die Stromversorgung verbleibt. Wenn Sie ein Anfänger in der Elektronik sind, sind hier einige tolle tipps für dich Anfängerelektronik: 10 Fähigkeiten, die Sie kennen müssenViele von uns haben noch nie einen Lötkolben berührt - aber Dinge herzustellen kann unglaublich lohnend sein. Hier sind zehn der grundlegendsten Fertigkeiten der DIY-Elektronik, die Ihnen den Einstieg erleichtern. Weiterlesen .

Wir werden die LED-Kathoden in einer Linie zusammenlöten, um eine gemeinsame Masse zu schaffen, ähnlich wie wir es getan haben, als wir unsere gemacht haben LED-Matrix Werten Sie Ihren Weihnachtskranz mit einer bewegungsaktivierten LED-Matrix aufDieser DIY-Weihnachtskranz verwendet eine Arduino- und LED-Matrix, um ein erstaunliches Leuchtdisplay zu erzeugen, das Ihre Freunde und Familie beeindrucken wird. Weiterlesen .

Reihenkathoden

Falten Sie jede Kathode so, dass sie die nächste überlappt, und löten Sie sie, um eine ununterbrochene Linie zu erzeugen. Jetzt müssen wir unsere Anoden an die Beine der Widerstände neben ihnen löten. Ich fand den einfachsten Weg, dies zu tun, indem ich jedes Bein an das jeweilige Pad löte und dann das platzierte bügeln Sie zwischen ihnen, um beide Verbindungen zu erwärmen, bevor Sie schließlich mehr Lot hinzufügen, um die Lücke zwischen ihnen zu überbrücken Sie.

Überprüfen Sie jede Verbindung, um festzustellen, ob sie fest angebracht ist, und schneiden Sie dann mit Drahtschneidern die überschüssigen Beine von den Widerständen und LEDs ab.

Widerstände gegen Anoden

Nun, um dieselbe Aufgabe zu wiederholen, aber diesmal verbinden Sie das andere Ende unserer Widerstände mit den Beinen des Arduino. Dies ist der schwierigste Teil des Lötens. Jeder Widerstand, der viel an seinem Arduino-Pin befestigt ist, oder die Schaltung funktioniert nicht so, wie er beabsichtigt ist. Ich habe hier einige Fehler gemacht und musste Lötdocht verwenden, um unerwünschtes Lötmittel mehrmals zu entfernen.

Wenn Sie alle richtigen Verbindungen hergestellt haben, überprüfen Sie noch einmal, ob sich keine mit ihren Nachbarn überschneidet. Wenn Sie hier Zugriff auf ein Multimeter haben, können Sie im Durchgangsmodus überprüfen, ob jeder Pin nur eine ununterbrochene Leitung zum Widerstand hat. Wenn Sie gerade ein Multimeter haben, gibt es eine großartige Anleitung für den Einstieg In diesem Artikel. 7 DIY Tech Skills, um Ihre Kinder zu unterrichten, weil Schulen nicht werden Weiterlesen

Kontinuitätsbild

Nachdem Sie jede Verbindung überprüft haben, schneiden Sie die überschüssige Länge von den Beinen der Widerstände ab

Power hinzufügen

Führen Sie nun ein Stück Draht vom GND-Stift Ihres Arduino zu einem Loch neben der Stelle, an der Ihre gelöteten Kathoden enden, und legen Sie den schwarzen Draht Ihres Batteriehalters daneben.

gnd Drähte oben

Löten Sie nun den Draht wie bei den Widerständen an den GND-Pin und löten Sie beide Drähte an das Ende der Kathodenleitung, um eine gemeinsame Masse für die Schaltung zu schaffen.

Schließen Sie zum Schluss ein Kabel an den VIN-Pin Ihres Arduino an und stellen Sie den Schalter zwischen dieses Kabel und den Akku. Entschuldigung für den mit Heißkleber bedeckten Schalter auf diesem Foto, ich musste die fertige Maschine zerlegen, um diese Phase zu fotografieren!

Schalter vin

Sobald alles zusammengelötet ist, legen Sie eine Batterie ein und betätigen Sie den Schalter. Herzliche Glückwünsche! Die Schaltung ist fertig. Wenn Sie nichts aufleuchten sehen, überprüfen Sie jede Lötstelle sorgfältig, um festzustellen, wo möglicherweise eine Unterbrechung oder ein Kurzschluss vorliegt.

Gehege

Nachdem wir es jetzt zum Laufen gebracht haben, legen wir es in eine Schachtel. Hier wurde ein bemalter Karton verwendet, obwohl man mit einem in einem Hobbygeschäft gekauften Karton oder sogar einem alten Tupperware-Karton etwas Beständigeres herstellen konnte. Für zusätzliche Geek-Credits können Sie sogar Ihre eigenen 3D-Drucke erstellen einer dieser billigen 3D-Drucker. 5 günstige 3D-Drucker, die Sie heute tatsächlich kaufen könnenVor ein paar Jahren lagen selbst die billigsten 3D-Drucker unangenehm nahe an der 1.000-Dollar-Marke - jetzt können Sie einen hochwertigen 3D-Drucker für nur 400 US-Dollar kaufen. Weiterlesen

Schneiden Sie Ihr Protoboard auf die richtige Größe, indem Sie es einschneiden und nicht benötigte Teile vorsichtig wegschnappen.

proto gif

Platzieren Sie Ihren Stromkreis in Ihrem Gehäuse und markieren Sie, wo die LEDs und der Schalter durchstechen müssen. Optional können Sie auch markieren, wo der USB-Anschluss auf der Arduino-Platine auf die Kante trifft, damit Sie ihn anschließen können, um den Text zu ändern, ohne die Box zu öffnen. Bohren oder schneiden Sie die benötigten Löcher in das Gehäuse.

Löcher machen

Fügen Sie nun ein wenig Heißkleber an den Rändern der LEDs hinzu und kleben Sie sie fest. Ich klebte ein Stück Schwamm unter die Schaltung, damit es fest in der Schachtel saß. Befestigen Sie Ihren Schalter am Gehäuse. Ich habe Heißkleber verwendet, obwohl Schrauben oder Bolzen eine viel stärkere Verbindung herstellen würden. Sie können den Batteriehalter auch auf die Rückseite der Leiterplatte kleben, um zu verhindern, dass er sich im Inneren bewegt, wenn Der Artikel wird verwendet. Achten Sie jedoch darauf, dass keine Metallkontakte am Gehäuse Ihre Lötstellen berühren!

Schalter messen

Job ist erledigt!

Schließen Sie Ihr Gehäuse und Sie sind fertig! Um den Text zu ändern, schließen Sie Ihr USB-Kabel an die Arduino-Karte an und ändern Sie anschließend den Text in den Klammern displayString in dem Schleife Methode. Finde einen dunklen Ort und hab Spaß!

langsamer

Haben Sie schon einmal eine POV-Maschine gebaut und wissen, wie Sie das Design verbessern können? Planen Sie selbst einen zu bauen? Erzählen Sie uns in den Kommentaren unten von Ihrem Projekt. Wir würden es gerne hören!

Ian Buckley ist freiberuflicher Journalist, Musiker, Performer und Videoproduzent und lebt in Berlin. Wenn er nicht schreibt oder auf der Bühne steht, bastelt er an DIY-Elektronik oder Code in der Hoffnung, ein verrückter Wissenschaftler zu werden.