Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Arduino-gesteuerte künstliche Kerzenlichter

Komponenten und Verbrauchsmaterialien

SparkFun LED - SMD RGB (WS2812)
Ich habe die LEDs in 4er Module platziert und benötigte 11 Module
× 44
Arduino Nano R3
× 1
Fotowiderstand
× 1
IKEA "MONTERA" Kabelkanal
× 2
Männliche Kopfzeile 40 Position 1 Zeile (0.1")
× 7
M20-1060300 Wire-to-Board-Steckverbinder, M20-1 Serie, Crimp, Buchse, 3, 2,54 mm
Sie benötigen 2 pro LED-Modul (von 4 LEDs) (und möglicherweise ein paar zusätzliche)
× 25
M20-1180046 Kontakt, M20-Serie, Buchse, Crimp, 22 AWG, verzinnte Kontakte, M20-Serie Crimp-Gehäuse
Sie benötigen 6 pro LED-Modul, aber sie werden in einer Packung mit 100 Stück geliefert, sodass 1 Packung möglicherweise ausreicht
× 1

Notwendige Werkzeuge und Maschinen

Lötkolben (generisch)

Über dieses Projekt

Vor einiger Zeit habe ich angefangen, an einem Projekt zu arbeiten, um unseren Atriumraum, der im Herbst und Winter etwas zu düster wird, dezent zu beleuchten. Ich wollte etwas natürlicher aussehendes als harte LED-Lichter, vorzugsweise den Live-Look von flackernden Kerzen.

Für die Ungeduldigen (die nicht ganz nach unten scrollen wollen, um ein Video zu finden) ist dies das Ergebnis:

...und eine Weihnachtsversion:

Nun, zurück zur Geschichte:

Aber eine realistische künstliche Flamme erstellen ist keine leichte Aufgabe, daher war meine Idee, die Lichter so zu platzieren, dass man nicht die "Flamme" direkt sieht, sondern nur das Licht, das sie an der Wand tanzt.

Da der Raum größtenteils aus Glaswänden besteht, war es naheliegend, das Licht auf die weißen Balken projizieren zu lassen, die die Fenster halten. Ich beschloss, die Lichter an der Unterseite des horizontalen Balkens zu platzieren und das Licht nach unten auf die vertikalen Balken zu projizieren.

Vorbereitung und Planung

Da ich jede "Kerze" einzeln ansteuern wollte, war die Wahl des LED-Lichts einfach; Es sollte offensichtlich ein Satz WS2812-basierter LED-Module sein, also habe ich 100 einzelne LEDs bestellt.

Wie auf dem Bild oben zu sehen ist, hat jede LED sechs Anschlüsse – und eine Richtung auf der Rückseite mit einem Pfeil gekennzeichnet.

Zwei der Anschlüsse sind mit 5V gekennzeichnet , zwei sind GND und dann ist da noch der Din (Dateneingang) und der Dout (Daten aus). Die beiden 5V verbunden sind und auch die beiden GND S. In der Praxis gibt es also vier Verbindungen; 5V , GND , Abendessen und Dout .

Nach einigem Experimentieren mit unterschiedlicher Anzahl von LEDs pro "Kerze" kam ich auf eine Anzahl von vier . Diese Zahl ermöglichte es mir, genügend interessante Lichtmanipulationen an jedem Strahl vorzunehmen, um ein realistisches Kerzenbild zu erzeugen, ohne zu viele LEDs zu fordern.

Sollte ich es jedoch noch einmal machen müssen, hätte ich einen Satz 2-mal-2-LED-Module bestellt, um die Montage zu vereinfachen.

Der Controller musste nicht sehr fortschrittlich sein, und ich ging davon aus, dass ein Arduino Nano würde ausreichen.

Die Platzierung des Arduino war nicht offensichtlich. Am Ende entschied ich mich, es auf den horizontalen Balken selbst zu legen, hinter der dicken Säule, die auf dem ersten Foto oben (ganz links) zu sehen ist. Die Säule wird in der Ecke des Raumes platziert, wo sich die beiden Glaswände treffen (von denen die "rechte" Wand auf dem Foto zu sehen ist). Auf diese Weise könnte ich die LEDs an zwei parallelen Strings haben – eine für jede Wand – um die physische Länge jedes Strings zu minimieren. Jetzt würde die Gesamtlänge jeder Saite etwa 4 Meter (13 ft) betragen, anstatt eine doppelte davon zu haben.

Der Adafruit NeoPixel Überguide war hier eine wirklich gute Lektüre; wer mit WS2812 LED-Modulen spielen möchte, sollte es unbedingt durchlesen! Es hat mir zum Beispiel erklärt, warum es gut ist, die physische Länge der Drähte zu begrenzen.

Kabel verstecken...

... war in meinem Fall nicht so schwer, da die LEDs auf der Unterseite des horizontalen Balkens platziert werden sollten. Ich habe mich nach einem billigen Kabelsender umgesehen und einen bei IKEA gefunden (kann nicht sagen, ob es ironisch oder offensichtlich ist, da ich aus Schweden komme).

Die LED-Module selbst wurden einfach mit einem starken doppelseitigen Klebeband befestigt.

Erstellen der LED-Module

Da ich das Ganze nicht an einem einzigen durchgehenden String zusammenlöten wollte (ich stellte mir den Kabelstau vor, den ich beim Versuch stoßen würde, das Ding an der Unterseite des Balkens zu installieren) habe ich mich entschieden, die LED-Module mit Anschlüsse für die Kabel.

Die LED-Module sollten direkt neben den vertikalen Balken platziert werden, um möglichst viel Licht darauf zu reflektieren. Ich wollte auch, dass das Kabel nahe am Strahl verläuft – und ich musste die Richtung der LEDs beachten. Dies führte (kein Wortspiel beabsichtigt) mich zu zwei Versionen des Moduls; ein Setup auf der Saite, die nach rechts geht vom Arduino und einer geht links .

Die beiden Modulversionen erforderten zwei einzigartige Löt-Layouts, wobei der Hauptunterschied darin bestand, den Datenfluss von der richtigen LED zur nächsten aufrechtzuerhalten.

Da die LEDs ziemlich klein sind, ca. 9 Millimeter im Durchmesser (3/8"), war das Löten nicht ganz einfach; und aufgrund meiner mangelnden Löterfahrung ist das Ergebnis nicht so schön. Aber es hat funktioniert.

Das Löten

Vor dem Löten schneide ich ein 2-mal-2-LED-Modul von den 2-mal-5-Originalabschnitten ab. Dann habe ich ein Ende rot und das andere schwarz lackiert, um die Seiten in der Nähe von 5V und GND zu markieren (um dumme Fehler zu vermeiden).

Schritt 1 Die erste Lötübung bestand darin, einen „Tropfen“ Lötzinn auf die winzige Metallinsel auf jeder LED zu geben.

Der nächste Schritt bestand darin, die einfachen direkten Verbindungen in der Nähe zu verbinden.

Dann mussten die folgenden Kabel ihre Isolierung behalten, da sie übereinander gingen.

Insgesamt gab es fünf Balken in jede Richtung – plus den Eckbalken – also insgesamt elf Balken. Da jedes LED-Modul vier LEDs hat, beträgt die Anzahl der einzelnen LEDs 44.

Nach ein paar Modulen hatte ich den Dreh raus und am Ende konnte ich in ca. 30 Minuten ein komplettes Modul verlöten.

Der "Kurz-Kabel-Trick"

Viele der winzigen Kabel brauchten ihre Isolierung, aber es war schwierig, gerade genug Isolierung an jedem Ende abzuschneiden, um den inneren Kern freizulegen, wenn die Gesamtlänge des Kabels weniger als einen Zentimeter betrug.

Dann habe ich diesen (offensichtlichen) Trick herausgefunden:

1. Löten Sie ein Ende des Kabels, biegen Sie es dann und schneiden Sie es auf die gewünschte Länge. (In diesem Beispiel sollte das nicht verlötete Ende mit dem Dout . verbunden werden der unteren rechten LED im Bild unten.)

2. Schieben Sie die Isolierung etwas nach unten.

3. Von der freigelegten Dämmung die gewünschte Länge abschneiden.

4. Schieben Sie die Isolierung zurück und legen Sie den Kern am freien Ende frei. Tadaa!

Auf diese Weise konnte die genaue Länge der freiliegenden Kabelader erstellt werden, und das Ergebnis war ziemlich schön:

Fertigstellung der LED-Module

Am Ende sollten die LED-Module verkehrt herum am Balken befestigt werden, daher muss die angelötete, kabelgefüllte Rückseite vorbereitet werden, um das Klebeband zu halten.

Ich kam, um einen zufälligen flachen Kunststoff zu verwenden, den ich einfach in Quadrate schneide. Diese wurden einfach mit Heißkleber an den LED-Modulen befestigt.

Hier sind alle kompletten Module! Hurra!

(An diesem Punkt war es wichtig, dass sie eine Markierung haben, um die nach links von den nach rechts zu trennen!)

Die kompletten Module wurden einfach mit starkem Klebeband auf ihren nun flachen Rückseiten befestigt.

Kabel herstellen

Zum Glück hatte ich eine Rolle altes Telefonverlängerungskabel herumliegen. Dieses Kabel hatte vier separate Adern, was mehr als genug war, da ich drei Adern brauchte (5V, GND und Daten).

Die Montage der Buchsenbuchsen ohne das spezielle Crimpwerkzeug war nicht ganz einfach, aber durchaus machbar.

Der Kabelkanal war leicht zu montieren; Schneiden Sie es einfach in geeignete Längen und verwenden Sie das vormontierte Klebeband, um es am horizontalen Balken zu befestigen.

So sah ein fertig montiertes Modul aus:

Automatische Aktivierung und Deaktivierung

Da ich das Licht bei Dunkelheit nicht manuell einschalten und danach wieder ausschalten möchte, habe ich einen Fotowiderstand eingebaut.

Ich wollte kein einfaches An/Aus, sondern eine allmähliche Änderung der Lichtintensität während der Dämmerungszeit. Aus diesem Grund musste ich den Analogwert meines Fotowiderstands an dem Punkt am Abend kennen, an dem ich entschied, dass aus "Tageslicht" "Dämmerung" und aus "Dämmerung" "Dunkelheit" wurde.

In der Grafik unten stellt die rote Kurve den analogen Messwert des Fotowiderstands dar, wie er sich während eines Tages verschiebt (kein tatsächlicher Messwert unten, nur meine Freihandzeichnung). Die beiden schwachen horizontalen Linien markieren die beiden Ebenen; die obere ist die Grenze, wo "Tageslicht" zu "Dämmerung" wird und die untere, wo "Twilight" zu "Dunkelheit" wird. Wenn die rote Kurve über der oberen horizontalen Linie liegt, betrachte ich es als TAG, und wenn sie unter der unteren ist, ist es NACHT.

Die grüne gerade Linie ist die "gereinigte" Tageslichtmessung, d.h. Minimum (0.0) während der Nacht und Maximum (1.0) während des Tages und eine lineare Steigung während der Dämmerung.

Um die tatsächlichen analogen Messwerte zu kennen, habe ich vier Fotowiderstände zusammen mit einem LCD-Bildschirm an einen Arduino angeschlossen, um die aktuellen, minimalen und maximalen Werte der vier Widerstände anzuzeigen. Ich benutzte vier, weil ich nicht wusste, ob ich eine schlechte hatte. Wenn also die meisten von ihnen ungefähr den gleichen Messwert hätten, wusste ich, dass sie funktionieren würden. Offensichtlich habe ich das Gerät an der gleichen Stelle platziert, an der ich am Ende den Arduino die LEDs ansteuern wollte. So sah es aus:

Da das LCD ziemlich begrenzt ist, habe ich etwa fünf Sekunden lang den Messwert eines Fotowiderstands angezeigt. Dann ging ich im Laufe des Tages hin und wieder hin und schrieb die Zahlen auf einen Zettel. (Natürlich hätte ich es an meinen Laptop angeschlossen lassen und die Nummern über die serielle Verbindung senden lassen, aber ich brauchte meinen Laptop tagsüber und wollte nicht den ganzen Tag im Atrium sitzen).

Am Ende habe ich entschieden, dass es unter "630" dunkel und über "800" hell ist. Aber diese Zahlen passen offensichtlich nur zu meinem Fotowiderstand zusammen mit dem 10 kΩ-Widerstand, den ich in Reihe verwendet habe, also ist dies keine absolute Wahrheit.

Der Arduino-Quellcode

Ich wollte verschiedene Arten von Lichteffekten haben, nicht nur Kerzenlicht. Aus diesem Grund habe ich den Quellcode modular aufgebaut und versucht, die verschiedenen Mechanismen in verschiedenen Dateien zur besseren Übersicht zu isolieren.

Die Haupt-.ino -Datei wird sehr klein gehalten. Ich starte im Grunde einfach das Ganze und rufe Update() . auf auf ein paar Helferklassen (was wiederum den Trick macht).

Derzeit unterstützt der Quellcode zwei verschiedene Effekte; den Kerzenlichteffekt und einen "Weihnachtseffekt". Im Moment ist die Wahl des Effekts fest codiert, was bedeutet, dass ich den Code neu kompilieren muss, wenn ich einen Wechsel vornehmen möchte. Gesteuert werden soll dies am Ende über eine Fernbedienung – oder noch besser über ein Smartphone. Wir werden sehen.

Code

AtriumBeleuchtung
Der gesamte Quellcode für das Arduinohttps://github.com/emmellsoft/AtriumLighting

Schaltpläne

2drkW5vm9e7vAdGPxOsm.fzz

Herstellungsprozess

  1. Raspberry Pi Roboter über Bluetooth gesteuert
  2. Joystick-gesteuertes RC-Auto
  3. Arduino mit Bluetooth zur Steuerung einer LED!
  4. Nunchuk-gesteuerter Roboterarm (mit Arduino)
  5. Sprachgesteuerter Roboter
  6. Arduino-Vierbeiner
  7. Arduino-gesteuerter Klavierroboter:PiBot
  8. Arduino RGB-Farbmischer
  9. DIY Arduino RADIONICS-Behandlungsmaschine
  10. DMX RGB LED im Freien