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

Nachttischlampe mit Arduino automatisieren: Einfacher Code & Proteus-Simulation

Automatische Nachttischlampe mit Arduino – Code, Funktionsweise und Simulation

Automatisierung bedeutet im Grunde, eine Methode zu erfinden, die menschliche Anstrengungen reduziert oder eliminiert. In diesem Tutorial erklären wir, wie man eine Nachttischlampe durch einfaches Interfacing von Arduino und Relais mit Proteus-Software automatisiert. Automatisierung ist die Notwendigkeit der Stunde, da die Anwendungen von der Kesselssteuerung mit einem einfachen Thermostat bis hin zum großen Industriemanagement mit enormen Ein- und Ausgangsdaten reichen. Die Komplexität der Automatisierung kann von einer einfachen "Ein/Aus"-Steuerung bis zu hochkomplexen multivariablen Algorithmen wie Industriesystemen variieren. Die Steuerungssysteme für Automatisierungszwecke können entweder Offenkreis- oder Geschlossener-Kreis-Systeme sein, was bedeutet, sie können entweder mit einem einzelnen Eingabeparameter arbeiten oder als Reaktion auf den als Eingang zurückgefederten Ausgang, wie bei geschlossenen Systemen.

Wie bei jeder Technologie hat Automatisierung auch Vor- und Nachteile:

Vorteile:

  1. Produktivitätssteigerung
  2. Vorhersehbare Qualität (Qualitätsverbesserung)
  3. Erhöhte Robustheit
  4. Große Ausgabekonsistenz
  5. Reduzierung der Personalkosten
  6. Hohe Genauigkeit
  7. Reduziert menschliche Anstrengung bei monotonen Arbeiten

Nachteile:

  1. Anfällig für Sicherheitsbedrohungen
  2. Entwicklungskosten könnten Vorhersagen übersteigen
  3. Hohe Einrichtungskosten
  4. Arbeitslosigkeit in vielen Sektoren

Die genannten Vorteile überwiegen die Nachteile bei weitem, und deshalb steigt die ganze Welt in das Zeitalter der Automatisierung ein.

In diesem Tutorial versuchen wir, eine Lampe automatisch ein- oder auszuschalten, wenn die Schaltung eine spürbare Änderung der Lichtintensität erkennt. Dafür verwenden wir die zwei gängigsten Werkzeuge für Automatisierung: Arduino und Relais, und das Interfacing sowie die Simulation werden mit der Proteus-Software erreicht.

Benötigte Komponenten:

  1. Arduino UNO
  2. Relais 5 Volt
  3. LDR (Lichtabhängiger Widerstand)
  4. Widerstand 10 kΩ
  5. Transistor BC547
  6. DC-Versorgung 5 Volt
  7. AC-Versorgung 220 Volt

Benötigte Software:

  1. Arduino IDE
  2. Proteus

Automatische Nachttischlampe Schaltplan:Nachttischlampe mit Arduino automatisieren: Einfacher Code & Proteus-Simulation

Komponentenbeschreibung:

Arduino UNO:

Arduino ist im Grunde ein Open-Source-Entwicklungsboard, das hauptsächlich den Microchip ATmega328P Mikrocontroller nutzt und von Arduino.cc hergestellt wird. Das Board verfügt über einen Satz Ein-/Ausgangspins, bestehend aus digitalen und analogen, die mit verschiedenen Erweiterungsboards und externen Schaltungen verbunden werden können. Das Board kommt mit 14 digitalen Pins sowie 6 analogen Pins, die mit Hilfe einer IDE (Integrated Development Environment) programmierbar gemacht werden. Das Programm wird über ein USB-Kabel Typ B gebrannt.

Methoden zur Stromversorgung des Boards können entweder über das USB-Kabel oder durch Anschluss einer 12 Volt DC-Versorgung erfolgen. Aus Design- und Funktionssicht ist es nicht allzu verschieden von seinen anderen Familienmitgliedern, nämlich Arduino Nano und Arduino Leonardo.

STK500 ist immer noch das ursprüngliche Protokoll für Uno zur Kommunikation. Der Hauptunterschied zu seinen Vorgängern ist, dass es den FTDI (USB-zu-Serial-Treiberchip) nicht verwendet.

Nachttischlampe mit Arduino automatisieren: Einfacher Code & Proteus-Simulation

Relais:

Ein Relais ist ein elektromagnetischer Schalter, der elektrisch betätigt werden kann, um AC/DC-Geräte ein- und auszuschalten. Er kann sogar mit einer niedrigen Spannung von 5 Volt gesteuert werden, wie sie von den Arduino-Pins bereitgestellt wird. Er besteht aus einer Spule mit Metallkontakten auf einer Seite (Niederspannungsseite), die magnetisiert und demagnetisiert werden kann, um den Stromkreis auf der anderen Seite (Hochspannungsseite) zu öffnen oder zu schließen. Die Hochspannungsseite besteht aus einem Steckverbinder mit 3 Anschlüssen: Common (COM), Normalerweise Geschlossen (NC) und Normalerweise Offen (NO). Relais gibt es in verschiedenen Nennspannungen wie 12 V, 9 V, 5 V und 3 V.

LDR:

LDR (Light Dependent Resistor) ist ein variabler Widerstand, der seinen Widerstandswert mit der Änderung der Lichtintensität ändert und nach dem Photoleitfähigkeitsprinzip arbeitet. Der Widerstandswert nimmt mit steigender Lichtintensität ab. Er wird in lichtempfindlichen Detektorschaltungen und lichtaktivierten Schaltkreisen verwendet.

LDR besteht aus einem Hochwiderstands-Halbleiter, der im Dunkeln Widerstandswerte im Megaohm-Bereich hat, während er bei Lichteinfall mehrere hundert Ohm beträgt.

Nachttischlampe mit Arduino automatisieren: Einfacher Code & Proteus-Simulation

BC547 – NPN Transistor:

Ein Transistor ist im Grunde ein Halbleiterbauelement, das zur Verstärkung oder Schaltung elektronischer Signale und Leistung eingesetzt wird. Er besteht aus Halbleitermaterial und hat 3 Anschlüsse für den Anschluss an einen externen Stromkreis. In dieser Schaltung haben wir BC547 verwendet, einen NPN-Bipolartransistor.

Ein kleiner Stromwert an seinem Basisanschluss steuert einen großen Stromwert an seinen Emitter- und Kollektoranschlüssen. Eine feste Gleichspannung ist an den Transistoranschlüssen erforderlich, um im gewünschten Bereich seiner Kennlinien zu arbeiten. Ein Transistor, der für Verstärkungszwecke verwendet wird, wird vorgespannt, damit er für alle Eingänge teilweise leitend ist und das verstärkte Ausgangssignal am Emitter abgegriffen wird. Für Schaltanwendungen wird der Transistor so vorgespannt, dass er vollständig EIN ist, wenn ein Signal am Basisanschluss vorhanden ist, und im Fehlen des Basissignals vollständig AUS wird.

Kenndaten:

Nachttischlampe mit Arduino automatisieren: Einfacher Code & Proteus-Simulation

Softwarebeschreibung:

Proteus:

Proteus Design Suite fällt in die Kategorie proprietärer Software, die für elektronisches Design-Automatisierung (EDA) eingesetzt wird. Diese Software ist sehr praktisch für Elektronik-Design-Ingenieure und respective Techniker zum Erstellen von Schaltplänen und Leiterplattenlayouts (PCB). Die Software wurde in Yorkshire, England, von Labcenter Electronics Ltd. entwickelt und bietet Mehrsprachensupport: Englisch, Französisch, Spanisch und Mandarin.

Sie wird regelmäßig mit neuen Bibliotheken aktualisiert, die fortschrittliche Komponenten in regelmäßigen Abständen enthalten und einfach zur bestehenden Bibliotheksliste hinzugefügt werden können.

Diese Software wird aufgrund ihrer Fähigkeit zur Simulation von Schaltungen oder Mikrocontrollern weit verbreitet. Simulation hilft, die Funktionsweise und das Testen des entworfenen Schaltkreises zu verstehen, ohne physische Komponenten zu verwenden. Die Benutzeroberfläche gibt auch einen Vorteil gegenüber anderer Software auf dem Markt. Über 15 Millionen Komponenten sind im Bibliotheksbereich verfügbar, sodass Benutzer keine Zeit mit dem Erstellen von Footprints oder Komponenten verschwenden müssen.

Arduino IDE:

Arduino IDE ist eine Software, die auf verschiedenen Plattformen verwendet werden kann. Daher ist es eine plattformübergreifende Anwendung und wurde mit der Programmiersprache Java entwickelt. Sie hat den alleinigen Zweck, den Sketch zu schreiben und auf Arduino-kompatible Boards hochzuladen. Die unterstützten Sprachen sind C und C++, die etwas modifiziert sind und von der verwendeten Bibliothek abhängen. Verschiedene Bibliotheken sind in der Software integriert, und weitere können von Drittanbietern heruntergeladen werden. Die IDE verwendet ein Programm namens avrdude, um den Code in eine Datei mit hexadezimaler Kodierung umzuwandeln, die mit Hilfe eines Laderprogramms, das im Board-Firmware vorinstalliert ist, auf das Board geladen wird.

Projektcode:

Code-Erklärung:

Zunächst definieren wir zwei globale Variablen vom Typ Integer. Variable analogIN bezeichnet einen analogen Pin, der den analogen Wert vom Schaltkreis empfängt, und die zweite Variable trigger bezeichnet einen digitalen Pin, der ein Trigger-Ausgangssignal mit ausreichender Spannung liefert.

int analogIN = A3;

int Trigger = 12;

Baudrate wird auf 9600 Bit/s gesetzt, was die Datenübertragungsrate darstellt. Die pinMode()-Funktion wird verwendet, um den Zustand des Pins zu definieren. Hier setzen wir Pin 12 als Ausgang und Pin A3 als Eingang. All diese Anweisungen werden in der Funktion void setup() geschrieben und laufen nur einmal während der gesamten Ausführungsperiode.

void setup() 
{
 Serial.begin(9600);
 pinMode(analogIN, INPUT);
 pinMode(Trigger, OUTPUT);
}

Laut Schaltplan müssen wir einen bestimmten Wert lesen, der in Form eines analogen Wertes von Pin A3 vorliegt. Für diese spezifische Aufgabe haben wir die Funktion analogRead() verwendet, da der vom Schaltkreis erzeugte Eingabewert ein analoger Wert ist, daher der Grund für die Verwendung eines analogen Pins und einer analogen Funktion.

Nun erhalten wir diesen analogen Wert vom analogen Pin A3 und speichern seinen Wert in der Variable "value".

Diese Variable enthält einen Integer-Wert im Bereich von 0 bis 1023 (10-Bit ADC) und variiert je nach analogem Eingang. Dies ist der 10-Bit ADC-Wert, da Arduino mit einem 10-Bit ADC-Wandler ausgestattet ist.

Der in der Variable "value" gespeicherte Wert wird für die Ausführung des bedingten Operators (if-else) verwendet. Durch diesen Operator setzen wir den Zustand des digitalen Pins Trigger auf HIGH oder LOW, um die Lampe ein- und auszuschalten. Der Hauptvorteil des Ausgebens des in Variable "value" gespeicherten Wertes ist, dass wir die Lichtintensität mit einem bestimmten Wert assoziieren und die Lampe bei einer gewünschten Lichtintensität einschalten können.

Der Code, der sich in der Funktion "void loop()" befindet, wird wiederholt ausgeführt, solange der Arduino mit Strom versorgt wird. Daher muss man, um sicherzustellen, dass das Projekt jederzeit funktionsfähig ist, sicherstellen, dass dem hier verwendeten Arduino Uno eine 24/7-Stromversorgung gegeben wird.

void loop() {
 int value = analogRead(analogIN);
 Serial.println(value);
 if (value < 692)
 {
 digitalWrite(Trigger, HIGH);
 Serial.println("lamp is ON");
 }
 else {
 digitalWrite(Trigger, LOW);
 Serial.println("lamp is OFF");
 }
 }

Wie erhält man den Hex-Datei-Speicherort des Codes?

In Ihrer Arduino IDE klicken Sie auf Datei > Einstellungen und dann bei "Ausführliche Ausgabe anzeigen" beide Optionen Kompilierung und Hochladen an. Nach der Kompilierung des Codes wählen Sie im unteren Fenster den Speicherort der Hex-Datei aus und kopieren ihn. In Proteus doppelklicken Sie auf den Arduino und fügen den Dateispeicherort in die Option "Programmdatei" ein und klicken auf OK. Nun ist Ihre Schaltung bereit für die Simulation.

Simulationsvideo:

Demnächst verfügbar

Nachttischlampe Schaltkreis-Funktionsweise:

Nun besprechen wir die Funktionsweise des Schaltkreises. Hier haben wir eine 5 V DC-Versorgung (Arduinos 5 V) verwendet und einen 10 kΩ Widerstand und einen LDR in einem Spannungsteilerschaltkreis verbunden. Die Spannung, die über dem Widerstand oder dem LDR abgenommen werden kann, wird in den analogen Pin des Arduino eingespeist, in diesem Fall Pin A3.

Mit Hilfe des oben genannten Codes wird das Board in der Lage sein, den analogen Eingang zu detektieren, der ihm zugeführt wird. Dieser gelesene Wert entspricht der Lichtintensität, die vom LDR erkannt wird.

Während wir den eingehenden Wert am Serial Monitor überprüfen können, um den Schaltkreis entsprechend der Lichtintensität zu kalibrieren. Daher können wir die Bedingung in der bedingten Anweisung im Code ändern, um die Lampe bei einer gewünschten Lichtintensität "EIN" & "AUS" zu schalten, was sie dynamisch macht.

Wenn die bedingte Anweisung erfüllt ist, d. h. die Lichtintensität fällt unter den von Ihnen vorgegebenen Wert (in ADC-äquivalenter Form), wird das Board ein "HIGH"-Signal am Pin 12 erzeugen. Mit "HIGH" ist gemeint, dass es 5 V Ausgang an Pin 12 erzeugt.

In diesem Fall wird eine ausreichende Spannung an der Basis des Transistors entwickelt, und der Transistor beginnt zu leiten. Als Ergebnis fließt Strom in den Spulen des Relais, und es schaltet ein, was bedeutet, dass der NO-Anschluss in einen aktiven Zustand geschaltet wird, an den der Lampenstromkreis angeschlossen ist, und bei Vervollständigung des Stromkreises schaltet die Lampe "EIN".

Die Lampe schaltet "AUS", wenn die Else-Bedingung im Code wahr wird, d. h. die Lichtintensität steigt über den von uns vorgegebenen Schwellenwert. Daher wird der Ausgang an Pin 12 "LOW" und anschließend wird das Relais ausgeschaltet, was die Lampe ausschaltet.

Fazit:

Wir alle wollen unseren Lebensstil vereinfachen, und genau das tut die automatische Nachttischlampe. Sie müssen die Nachttischlampe nicht einmal manuell EIN- oder AUSSCHALTEN. Sie schaltet automatisch EIN und AUS, je nach Lichtintensität, die auf den Sensor fällt. Bei Tageslicht bleibt die Lampe im AUS-Zustand; sobald es über dem Sensor dunkel wird, schaltet die Lampe EIN. Das Projekt hilft Ihnen, das gleiche mit grundlegenden elektronischen Bauteilen zu entwerfen. Wir haben auch den Code erklärt, damit es für Sie nicht schwierig wird, mit Arduino zu beginnen.

Verwandte Projekte:


Industrietechnik

  1. Wie Hersteller Automatisierung nutzen, um E-Commerce-Fulfillment zu skalieren
  2. Monitor-Ambilight selbst bauen mit Arduino Nano & WS2812B LEDs
  3. Intelligentes Voltmeter mit Arduino & Smartphone bauen – Einfaches DIY-Projekt
  4. Echtzeit-IoT-Herzfrequenzmonitor mit Arduino & MAX30100
  5. Arduino UNO WiFi Webserver: LED per Browser steuern
  6. Arduino-gesteuertes automatisiertes Chrome Dino-Spiel bauen
  7. Kompaktes FM-Radio mit Arduino Nano und RDA5807M selbst bauen
  8. Drahtloses Arduino-Programmier-Shield mit HC-05 Bluetooth – Kein USB-Kabel nötig
  9. Kapazitiver Touch-LED-Schalter mit Arduino UNO – Einfaches DIY-Projekt
  10. Funktionsweise automatischer Werkzeugwechsler: Ein umfassender Leitfaden