Rüsten Sie Ihren Weihnachtskranz mit einer Motion Activated LED Matrix auf
Weihnachten ist wieder da und ob es Ihr Lieblingsfeiertag des Jahres ist oder Sie in einem kalten Schweiß rausbringt, die Dekorationen beginnen zu steigen. Dieses Jahr sollten Sie einige DIY-Technologien in Ihre Dekorationen integrieren, um sie hervorzuheben?
In diesem Projekt bauen wir eine wetterfeste, bewegungsaktivierte 8 x 8-LED-Matrix von Grund auf… für weniger als 20 US-Dollar. Es ist so konzipiert, dass es in die Mitte eines Standard-Weihnachtskranzes passt, obwohl es überall im Haus verwendet werden kann. Und da es batteriebetrieben ist, auch außerhalb des Hauses!
Liste der Einzelteile
Für dieses Projekt benötigen Sie:
- Arduino.
- Ich habe den Nano wegen seiner geringen Größe verwendet, aber Sie könnten fast jeden Arduino-kompatiblen Mikrocontroller verwenden. Arduino Buying Guide: Welches Board sollten Sie bekommen? Arduino Buying Guide: Welches Board sollten Sie bekommen? Es gibt so viele verschiedene Arten von Arduino-Boards, dass Sie sich verwechseln könnten. Was solltest du für dein Projekt kaufen? Lassen Sie uns mit diesem Arduino Einkaufsführer helfen! Weiterlesen .
- 64 x rote LEDs.
- 8 x 220 Ohm Widerstände.
- PIR-Bewegungssensor.
- Viele Arduino-Starter-Kits Was beinhaltet ein Arduino-Starter-Kit? [MakeUseOf erklärt] Was ist in einem Arduino Starter Kit enthalten? [MakeUseOf erklärt] Ich habe die Arduino-Open-Source-Hardware hier bereits auf MakeUseOf vorgestellt, aber Sie benötigen mehr als nur den eigentlichen Arduino, um etwas daraus zu bauen und tatsächlich loszulegen. Arduino "Starter-Kits" sind mit diesen… Weiterlesen. Ich habe ein Multi-Pack von Amazon für 10 Dollar gekauft.
- 1 Stück Prototypboard.
- Die hier verwendete war 9 x 7 cm, obwohl Sie jede gewünschte Größe verwenden können.
- Batterie 7-12V.
- Aus Kostengründen wird hier ein einfacher Akku verwendet, aber ein mobiles Bank-Ladegerät. Die besten Pokemon Go Power-Banken Die besten Pokemon Go Power-Banken Pokemon Go übertrifft den Akku eines Telefons. Um etwas mehr Pokemon-Saft aus Ihrem Telefon zu pressen, ist eine Powerbank erforderlich. Aber was ist der beste Akku da draußen? Mehr lesen kann noch länger dauern.
- Verschiedene kurze Drahtstücke.
- Tupperware-Box oder ähnliches wetterfestes Gehäuse.
- Stellen Sie sicher, dass es groß genug ist, um alle Ihre Komponenten hinein zu passen!
- Weihnachtskranz.
- Jeder wird es tun, nur sicherstellen, dass die Gehäuse-Box in sie passt.
- Lötkolben und Lötmittel.
Obwohl dies nicht unbedingt erforderlich ist, da Sie die Komponenten direkt an den Nano anlöten können, fand ich auch ein kleines Steckbrett sehr nützlich beim Testen. Eine Heißklebepistole hilft auch beim Zusammenfügen aller Teile.
Dieses Projekt erfordert viel Löten, und als Anfänger mag es entmutigend wirken. Ich persönlich bin immer noch ein Anfänger im Löten und fand es nicht so herausfordernd oder zeitaufwendig, wie es scheint. Wenn Sie auch neu beim Löten sind, finden Sie hier einige gute Tipps zum Erlernen des Löten mit diesen einfachen Tipps und Projekten. Lernen Sie das Löten mit diesen einfachen Tipps und Projekten. Sind Sie ein wenig eingeschüchtert vom Gedanken an ein heißes Eisen und geschmolzenes Metall? Wenn Sie mit der Elektronik arbeiten möchten, müssen Sie das Löten lernen. Lasst uns helfen. Weiterlesen .
Wenn Sie wirklich nicht an der Idee des Lötens interessiert sind, ist dieses Projekt auch mit LED-Streifen möglich. Weekend-Projekt: Erstellen einer riesigen LED-Pixelanzeige Weekend-Projekt: Erstellen einer riesigen LED-Pixelanzeige Ich liebe LED-Pixel: hell, einfach zu steuern, billig und so vielseitig. Heute werden wir sie in ein großes Pixel-Display verwandeln, das an die Wand gehängt werden kann. Lesen Sie mehr oder eine fertige LED-Matrix, die Sie möglicherweise in Ihrem Starter-Kit haben. Einige Code-Anpassungen sind erforderlich, wenn Sie sich für diese Route entscheiden.
Einrichten des Arduino
Wir beginnen mit dem Schaltplan für den Arduino und den Drähten, die wir an unseren PIR-Sensor und unsere LED-Matrix anschließen.
In der Matrix
Jetzt machen wir unsere 8 x 8 LED-Matrix. Es ist eine gute Idee, zuerst eine Zeile und eine Spalte der Matrix zu erstellen, um sicherzustellen, dass sie genau dort ist, wo Sie sie auf der Prototyping-Platine haben möchten.
Auf dem Foto oben sind alle LEDs so platziert, dass sich die Anoden (der längere positive Schenkel) zur Oberseite des Protoboards befinden. Dies ist wichtig, da wir gemeinsame Anodensäulen erstellen, indem wir sie miteinander und Reihen gemeinsamer Kathoden (das kürzere, negative Bein) verbinden. Wenn Sie dies jetzt erhalten, werden Sie später Kopfschmerzen sparen!
Wir werden eine gemeinsame Reihenkathodenmatrix bauen. Dieses Diagramm zeigt, wie alles miteinander verbunden ist.
Es mag auf den ersten Blick etwas entmutigend wirken, aber es ist eine ziemlich einfache Konfiguration. In jeder Reihe werden alle Kathoden von rechts nach links verbunden und dann an einem unserer Arduino-Pins befestigt. Danach machen wir dasselbe für jede Anodenspalte. Auf diese Weise können wir abhängig von der Spalte, in der wir die Stromversorgung ausführen und in welcher Reihe wir uns mit Masse verbinden, jede einzelne LED im Array einschalten.
Lass das Löten beginnen
Beginnen Sie mit dem Platzieren der ersten LED-Reihe. Stellen Sie sicher, dass alle Anoden nach oben zeigen, und drehen Sie sie um. Ich fand, dass das Hinzufügen einer weiteren LED in jeder Ecke und das Anbringen eines weiteren Protoboards mit einem elastischen Kordel alles an Ort und Stelle halte.
Biegen Sie nun nacheinander die Kathoden (kurze) Schenkel jeder LED nach links, so dass sich alle überlappen. Es ist am einfachsten, von links zu beginnen und rechts zu arbeiten. Wenn Sie ein größeres Stück Protoboard verwenden, können Sie sie zuerst an die Platine löten und mit den Pads verbinden. Achten Sie darauf, dass Sie keine der Kathoden mit anderen Leitungen auf der Platine oder den Anoden verbinden!
Wiederholen Sie diesen Vorgang für alle acht Zeilen. Wenn Sie fertig sind, sollten Sie etwas haben, das ungefähr so aussieht:
Anoden springen!
Die Anodensäulen sind etwas fummeliger. Im obigen Diagramm sind die Anoden jedes Mal gekrümmt, wenn sie eine Kathodenreihe kreuzen. Dies liegt daran, dass sie die Reihen überhaupt nicht berühren können. Wir müssen die Anoden über die Kathodenreihen biegen und miteinander verbinden. Sie können feststellen, dass die Verwendung eines Stiftes zum Beugen der Beine viel hilft.
Tun Sie dies für jede Reihe von Anoden und befestigen Sie einen Widerstand an jeder oberen Anode. Es ist wahrscheinlich einfacher, den Widerstand in das nächste Loch im Protoboard zu stecken und die Pads mit Lötmittel zu verbinden. Sie sollten jetzt so etwas haben:
Herzliche Glückwünsche! Die LED-Matrix ist abgeschlossen. Überprüfen Sie Ihr Löten in dieser Phase gründlich, um sicherzustellen, dass keine Brüche vorhanden sind und dass keine der Säulen die Reihen berührt. Machen Sie sich keine Sorgen, wenn es nicht schön aussieht, wir brauchen es nur, um zu funktionieren! Sie können jetzt jede LED einzeln prüfen, indem Sie an einem der Säulenenden 5V und an jedem Zeilenende eine Erdung vornehmen.
Sofern alles in Ordnung ist, bringen Sie an jeder Säule und jeder Reihe Verbindungsdrähte an und befestigen Sie sie an Ihrem Arduino, wie in der obigen Abbildung gezeigt.
Lassen Sie uns die Codierung erhalten
Öffnen Sie die Arduino IDE und wählen Sie Ihr Board und Ihren Port aus. Wenn Sie neu bei Arduino sind, lesen Sie diese Kurzanleitung. Erste Schritte mit Arduino: Ein Handbuch für Anfänger Erste Schritte mit Arduino: Ein Handbuch für Anfänger Arduino ist eine Open-Source-Plattform für Prototyping-Elektronik, die auf flexibler, einfach zu bedienender Hardware und Software basiert. Es ist für Künstler, Designer, Hobbyisten und alle gedacht, die interaktive Objekte oder Umgebungen erstellen möchten. Weiterlesen
Geben Sie diesen Code in den Editor ein. Es ist ziemlich dichter Code, wenn Sie mit dem Code nicht vertraut sind. Er ist hier jedoch vollständig kommentiert, um zu verstehen, wie er funktioniert.
const int row [8] = 2,3,4,5,6,7,8,9; const int col [8] = 10,11,12,14,15,16,17,18; int pirPin = 19; int pirState = LOW; int val = 0; bool pirTrigger = false; const int pirLockTime = 12000; int pirCountdown = pirLockTime; int Pixel [8] [8]; const int refreshSpeed = 500; int countDown = refreshSpeed; int currentCharIndex = 0; typedef bool CHAR_MAP_NAME [8] [8]; const CHAR_MAP_NAME leer = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ; const CHAR_MAP_NAME threedownthreein = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ; const int noOfFrames = 5; const CHAR_MAP_NAME * charMap [noOfFrames] = & blank, & threedownthreein, & blank, & blank, & threeddownhreein; void setup () für (int i = 0; i<8;i++) pinMode(row[i], OUTPUT); pinMode(col[i],OUTPUT); //motion sensor pinMode(pirPin, INPUT); digitalWrite(col[i], LOW); void screenSetup() const CHAR_MAP_NAME *thisMap = charMap[currentCharIndex]; for (int x = 0; x < 8; x++) for (int y = 0; y < 8; y++) bool on = (*thisMap)[x][y]; if(on) pixels[x][y] = HIGH; else pixels[x][y] = LOW; currentCharIndex++; if(currentCharIndex>= noOfFrames) currentCharIndex = 0; void refreshScreen () für (int currentRow = 0; currentRow) < 8; currentRow++) digitalWrite(row[currentRow], LOW); for (int currentCol = 0; currentCol < 8; currentCol++) int thisPixel = pixels[currentRow][currentCol]; digitalWrite(col[currentCol], thisPixel); if (thisPixel == HIGH) digitalWrite(col[currentCol], LOW); digitalWrite(row[currentRow], HIGH); void loop() val = digitalRead(pirPin); if (val == HIGH) pirTrigger = true; else if (val == LOW && pirCountdown <=0) pirTrigger=false; pirCountdown = pirLockTime; if(pirTrigger==true && pirCountdown > 0) refreshScreen (); Countdown--; pirCountdown--; if (countDown <= 0) countDown = refreshSpeed; screenSetup();
Die wichtigsten Teile zu verstehen sind:
Das RefreshSpeed Variable. Diese Variable bestimmt, wie die Zeit zwischen den einzelnen Bildschirmen aktualisiert wird. Eine größere Anzahl bedeutet eine längere Wartezeit.
Die const CHAR_MAP_NAMEs. Hier legen Sie jede Zeichentabelle (oder einen Frame, wenn Sie sich leichter auf diese Weise vorstellen können) an, die Sie anzeigen möchten.
Das noOfFrames Variable. Dies bestimmt, wie viele Frames in einem Durchlauf angezeigt werden. Beachten Sie, dass es von der Anzahl der Zeichenzuordnungen abweichen kann. Zum Beispiel, wenn Sie anzeigen möchten “EINE KATZE” Sie müssten nur vier verschiedene Frames definieren: ein leeres und ein EIN, ein C und ein T.
Wenn der Bewegungsmelder jetzt Bewegung erkennt, sollte der LED-Bildschirm die LED dreimal nach unten und drei von links oben blinken lassen. Wenn es nicht richtig angezeigt wird, überprüfen Sie Ihre Verdrahtung erneut, um sicherzustellen, dass alles an der richtigen Stelle ist! Wenn Sie ein eigenes Bild oder eine eigene Nachricht hinzufügen, kann dies zu einem frühen Zeitpunkt unterbrochen werden oder zu lange abgespielt werden. Versuchen Sie das zu ändern pirLockTime variabel, bis es so lange gespielt wird, wie Sie möchten.
Das Hinzufügen jedes Rahmens zur LED-Anzeige kann ein wenig langwierig sein. Daher haben wir diese Tabelle erstellt, um das Erstellen von Text und Bildern für Ihre LED-Matrix ein wenig einfacher zu machen (erstellen Sie eine Kopie des Google-Tabellenblatts, damit Sie es bearbeiten können.) ).
Mit Hilfe der Tabelle können Sie Ihre Kreationen direkt in den Code kopieren.
Machen Sie es den Elementen trotzen
Nun, da wir eine funktionierende LED-Matrix haben, brauchen wir einen Weg, um das Winterwetter zu überstehen. Obwohl diese Methode einem tropischen Sturm nicht standhält oder im Pool eingetaucht wird, sollte sie ausreichen, um die gesamte Elektronik vor den Elementen zu schützen.
Ich habe eine runde Tupperware-Box mit einem Durchmesser von 15 cm und einer Tiefe von 6 cm verwendet, da sie perfekt zu meinen Komponenten passt. Schneiden Sie ein Fenster in den Deckel ein, das etwas größer als Ihre LED-Matrix ist, und bringen Sie eine durchsichtige Kunststofffolie an. Achten Sie darauf, dass kein Platz für Flüssigkeit bleibt. Festes Plastik aus einigen Verpackungen würde am besten funktionieren, aber dies war alles, was ich hatte. Sie können auch einige Halterungen für das Protoboard anbringen, obwohl beide Arbeiten leicht mit einem starken wasserdichten Klebeband ausgeführt werden können.
Machen Sie als Nächstes ein kleines Loch unter dem Fenster und weiten Sie es vorsichtig und langsam auf, bis Ihr PIR-Sensor nur gerade durch passt. Sie möchten, dass es so eng wie möglich passt.
Bringen Sie Ihren PIR-Sensor an und füllen Sie alle Lücken, die Sie mit Klebeband oder Heißkleber sehen können.
Beseitigen Sie alle Klebebänder oder Klebstoffe, die das Schließen der Box verhindern könnten, und fügen Sie alle Komponenten zusammen mit dem Akku in die Box ein. Hier wurde ein einfacher AA-Akku verwendet, der direkt in den VCC-Pin des Nano gesteckt wurde. Ein paar kleine Korkstücke wurden an der Außenseite des Gehäuses hinzugefügt, um das Gebäude in der Mitte des Kranzes aufzuhängen.
Und wir sind fertig
Sobald die Box versiegelt ist, hängen Sie sie mit Ihrem Weihnachtskranz auf und warten Sie auf die Reaktionen Ihrer Besucher auf Ihr persönliches Willkommen im High-Tech-Bereich unter 20 $! Sie könnten sogar noch einen Schritt weitergehen und fantastische DIY-Dekorationen erstellen. 3D-gedruckte Weihnachtsdekorationen für perfekte Geeky Holidays 3D-gedruckte Weihnachtsdekorationen für perfekte Geeky Holidays. Warum sollten Sie sich nicht zu Weihnachten etwas Geld sparen? Lesen Sie mehr auch für andere Orte rund um das Haus!
In diesem Projekt haben wir ein in sich geschlossenes LED-Matrixsystem von Grund auf neu aufgebaut, das durch Bewegung aktiviert wird und auch bei schlechtem Wetter draußen bleiben kann. Dieser Build wird sich lange nach der Weihnachtszeit in anderen Projekten als nützlich erweisen. Mit der gleichen Technik könnten auch wetterfeste Gehäuse für andere Projekte erstellt werden.
Haben Sie etwas gebaut, um Ihrem Weihnachten einen DIY-Touch zu geben? Planen Sie dieses Jahr Weihnachtsgeschenke zum Selbermachen? Lass es uns in den Kommentaren wissen!
Mehr erfahren über: Arduino, Elektronik.