Inhaltsverzeichnis:

Steuern Sie Leuchtstoffröhren mit einem Laserpointer und einem Arduino - Gunook
Steuern Sie Leuchtstoffröhren mit einem Laserpointer und einem Arduino - Gunook

Video: Steuern Sie Leuchtstoffröhren mit einem Laserpointer und einem Arduino - Gunook

Video: Steuern Sie Leuchtstoffröhren mit einem Laserpointer und einem Arduino - Gunook
Video: auvisio USB-PC-Fernbedienung & Presenter mit Laserpointer 2024, November
Anonim
Steuern Sie Leuchtstoffröhren mit einem Laserpointer und einem Arduino
Steuern Sie Leuchtstoffröhren mit einem Laserpointer und einem Arduino
Steuern Sie Leuchtstoffröhren mit einem Laserpointer und einem Arduino
Steuern Sie Leuchtstoffröhren mit einem Laserpointer und einem Arduino

Einige Mitglieder des Alpha One Labs Hackerspace mögen das grelle Licht von Leuchtstofflampen nicht. Sie wollten eine Möglichkeit, die einzelnen Geräte einfach steuern zu können, vielleicht mit einem Laserpointer? Ich habe es richtig verstanden. Ich grub einen Haufen Halbleiterrelais aus und brachte sie ins Labor. Ich kaufte einen Arduino Duemilenova und demonstrierte die Verwendung der LED-Blink-Beispielskizze, um tatsächlich eine Halogenlampe zu blinken. Ich fand einige Informationen zur Verwendung von LEDs als Lichtsensoren [1] und eine Arduino-Skizze, die die Technik demonstrierte [2]. Ich fand, dass die LEDs nicht annähernd empfindlich genug waren - der Laser musste direkt in den lichtemittierenden Teil oder die LED zeigen würde mich nicht anmelden. Also bin ich auf Fototransistoren umgestiegen. Sie sind viel empfindlicher und über einen breiteren Frequenzbereich. Mit dem richtigen Filter über dem Transistor könnte ich es empfindlicher für rotes Licht und aus einem viel größeren Winkelbereich zum Sensor machen. HAFTUNGSAUSSCHLUSS UND WARNUNG: Dieses anweisbare befasst sich mit der Netzspannung bei 120 oder 240 Volt. Verwenden Sie den gesunden Menschenverstand, wenn Sie diese Schaltung bauen - wenn Sie Zweifel haben, fragen Sie jemanden, der sich auskennt. Sie sind für Ihre Sicherheit (und die anderer Personen) und die Einhaltung der örtlichen Elektrovorschriften verantwortlich.

Schritt 1: Die Skizze und etwas Theorie

Ich gehe davon aus, dass Sie wissen, wie Sie Ihr Arduino mit Strom versorgen und eine Skizze kompilieren und laden lassen. Für jede Lampe verwende ich Telefonkabel, da es billig ist, vier Leiter hat, und ich hatte sowieso einen Haufen herumliegen. Ich habe Rot für Masse +, Schwarz für Masse, Grün für den Kollektor des Fototransistors und Gelb für die Relaissteuerung + verwendet. Ein Fototransistor leitet eine Strommenge, die mit der auf ihn fallenden Lichtmenge variiert. Der Analog-Digital-Wandler (ADC) im Arduino misst die Spannung am Pin relativ zur Masse. Ich habe mir das Datenblatt des Fototransistors angesehen und mit einem Multimeter überprüft, dass die Transistoren bei vollem Licht 10 mA passieren. Nach dem Ohmschen Gesetz sind das etwa 500 Ohm bei 5 V. Um die Lampen zu steuern, habe ich ein Halbleiterrelaismodul verwendet. Diese sind bei der aktuellen Bewertung, die wir brauchten, relativ günstig, etwa 4 US-Dollar für bis zu 4 A. Achten Sie darauf, Relaismodule mit einem Nulldurchgangsdetektor zu kaufen, insbesondere wenn Sie etwas induktives steuern, wie eine Leuchtstofflampe, einen Motor oder einen Wandtransformator. Das Ein- oder Ausschalten an einem anderen Ort als dem Nullpunkt kann zu Spannungsspitzen führen, die bestenfalls die Lebensdauer Ihres Geräts verkürzen und im schlimmsten Fall einen Brand auslösen.

Schritt 2: Verkabelung der Lichter

Verkabelung der Lichter
Verkabelung der Lichter
Verkabelung der Lichter
Verkabelung der Lichter
Verkabelung der Lichter
Verkabelung der Lichter

Schauen Sie in die Decke und entscheiden Sie, wo Sie den Arduino-Controller montieren. Denken Sie daran, dass es eine 7-12-V-Stromversorgung benötigt. Schneiden Sie Telefonkabel (oder Cat5 oder was auch immer) etwa zwei Fuß länger als die Entfernung vom Arduino zu jedem Licht, das Sie steuern möchten. Sehen Sie sich die Verbindung von den Stromleitungen vom Schalter zum Vorschaltgerät an. Möglicherweise können Sie Steckverbinder bestellen (Newark Electronics verkauft die Wago 930-Serie, die wir hatten). Dann müssen Sie keine vorhandenen Drähte durchschneiden und können das System entfernen, wenn etwas schief geht. Löten Sie die Masse (schwarz) an den Relaiseingang - und die Steuerung (gelb) an den Relaiseingang + (der Farbcode im Bild ist) anders als auf der Titelseite, da ich meine Meinung geändert habe, was sinnvoll wäre). Löten oder schrauben Sie (je nach Relais) den schwarzen (heißen) Draht durch das Relais. Verwenden Sie unbedingt Schrumpfschlauch und Isolierband! Stecken Sie die schwarzen Drähte in Ihre Anschlüsse und die weißen (Neutral) und Masse (grün) sind gerade von Stecker zu Stecker durch. Das andere Ende der Drähte gehen wie folgt zum Arduino: Alle roten Drähte (gemeinsame Kathode oder Kollektor) Gehen Sie zu Analog 0 (Port C0) und alles schwarz auf Masse. Jedes Grün (Anode oder Emitter) geht zu den Pins 8-13 (Port B 0-5) und die gelben Drähte gehen zu den Pins 2-7 (Port D 2-7). Stellen Sie sicher, dass die grünen und gelben Drähte übereinstimmen, da der Sensor das richtige Relais ansteuern muss! Wenn Sie das Gelb in Pin 2 stecken, geht das Grün vom gleichen Gerät zu Pin 8.

Schritt 3: Testen der Skizzen- und Designnotizen

In diesem Schritt werde ich über einige der Prüfungen und Schwierigkeiten sprechen, denen ich auf dem Weg begegnet bin, und wie ich sie durchgearbeitet habe, in der Hoffnung, dass es nützlich sein wird. Überspringen Sie gerne zum nächsten Schritt, wenn Science Content nicht Ihr Ding ist:-) Der erste Schritt war die Entscheidung, ob Sie kapazitive oder resistive Abtastung verwenden. Resistive Sensing verbindet den Sensor über einen Widerstand mit einem der analogen Pins und führt analogRead durch und vergleicht mit einem Schwellenwert. Dies ist am einfachsten zu implementieren, erfordert jedoch viel Kalibrierung. Die Theorie der kapazitiven Abtastung besagt, dass eine LED bei umgekehrter Vorspannung (- zur + Leitung und umgekehrt) keinen Stromfluss zulässt, sich jedoch Elektronen auf einer Seite sammeln und verlassen Sie die andere Seite, effektiv einen Kondensator aufladen. Licht, das mit der Frequenz, die sie normalerweise emittiert, auf die LED fällt, führt tatsächlich dazu, dass ein kleiner Strom fließt, der diesen Kondensator entlädt. Wenn wir also den LED-"Kondensator" aufladen und zählen, wie lange es dauert, über einen Widerstand zu entladen, erhalten wir eine ungefähre Vorstellung davon, wie viel Licht auf die LED fällt. Dies hat sich tatsächlich als zuverlässiger für verschiedene Geräte erwiesen und funktioniert sogar für Fototransistoren! Da wir keine genaue Lumenmessung durchführen und der Laserpointer viel heller erscheinen sollte als die Umgebung, suchen wir nur nach einer Schwellen-Entladungszeit. Der andere wichtige Teil dieses Abenteuers ist das Debuggen. Für diejenigen, die mit der Programmierung nicht eingebetteter Systeme vertraut sind, besteht eine beliebte Methode darin, an kritischen Stellen im Code print-Anweisungen hinzuzufügen. Dies gilt auch für eingebettete Systeme, aber wenn jede Mikrosekunde zählt, ist die Zeitdauer für Serial.write("x is"); Serial.writeln (x); ist eigentlich ziemlich wichtig, und Sie können dabei viele Ereignisse verpassen. Denken Sie also daran, Ihre print-Anweisungen immer außerhalb kritischer Schleifen zu platzieren oder immer dann, wenn Sie ein Ereignis erwarten. Manchmal reicht es aus, eine LED zu blinken, um Sie wissen zu lassen, dass Sie einen bestimmten Punkt im Code erreicht haben.

Schritt 4: Webkontrolle hinzufügen

Webkontrolle hinzufügen
Webkontrolle hinzufügen

Wenn Sie die Skizze durchgesehen haben, haben Sie bemerkt, dass ich auch die serielle Schnittstelle lese und auf ein paar einzelne Zeichenbefehle handle. Das 'n'-Zeichen schaltet alle Lichter ein und 'f' schaltet sie aus. Die Zahlen '0'-'5' schalten den Status des an diesen digitalen Ausgang angeschlossenen Lichts um. So können Sie ganz einfach ein CGI-Skript (oder Servlet oder was auch immer Webtechnologie Ihr Boot schwimmt) zusammenstellen, um Ihre Lichter aus der Ferne zu steuern. Die Serial.writes werden auch ausgegeben, wenn ein Licht durch Benutzereingaben geändert wird, sodass die Seite Ajax-Updates erhalten kann, um den aktuellen Status anzuzeigen. Eine andere Sache, mit der ich experimentieren werde, ist die Erkennung von Bewegungen in einem Raum. Menschen reflektieren Licht, und wenn sie sich bewegen, ändert sich dieses Licht. Das ist der 'Delta'-Teil der Schreibanweisungen, die ich habe.

Empfohlen: