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

Arduino-betriebener Serviceaufzug

Komponenten und Verbrauchsmaterialien

Arduino Mega 2560
× 1
OpenBuilds Micro-Endschalter
× 4

Über dieses Projekt

Entwerfen und testen Sie ein Steuerungssystem für einen Servicelift für vier Stockwerke. Der Mikrocontroller (ATMega2560) wird verwendet, um zu bestimmen, welches Schütz Strom liefert, um den Aufzugsmotor zu aktivieren, um den Aufzug nach oben oder unten zu bewegen, indem er die Etage überprüft, in der sich der Aufzug gerade befindet. Das Steuerungssystem sollte auch in der Lage sein, den Strom zum Aufzug zu unterbrechen, wenn er die erforderliche Etage erreicht hat. Es sollte ein integrierter Sicherheitsfaktor implementiert werden, um die Aufzugstür immer zu schließen, bevor Sie nach oben oder unten fahren. Das Steuerungssystem kann erfolgreich feststellen, welches Schütz mit Strom versorgt werden muss, um den Aufzug in die gewünschte Etage zu fahren. Das System ist in der Lage, den Sicherheitsmotor der Aufzugstür zu steuern, um die Tür zu schließen, wenn der Aufzug sich bewegen muss, und die Tür automatisch zu öffnen, wenn sie die erforderliche Etage erreicht hat.

Demo-Video:

1.1 3-Phasen-Motorverkabelung

In dieser Anwendung wird ein 3-Phasen-Motor verwendet, da dies einen leistungsstarken Motor erfordert, der eine hohe Last bewältigen kann. Der 3-Phasen-Motor wird über den 3-Phasen-Hauptstrom versorgt. Der Strom durch die Hauptleitung läuft über zwei Hauptschütze. Wenn das erste Schütz eingeschaltet und das zweite Schütz ausgeschaltet ist, fließt Strom durch das erste Schütz zur Wicklung des Motors, die den Motor in Vorwärtsrichtung bewegt.

Wenn das zweite Schütz eingeschaltet und das erste Schütz ausgeschaltet ist, fließt Strom durch das zweite Schütz zur Wicklung des Motors, die den Motor in Rückwärtsrichtung bewegt. Beachten Sie, dass die Verdrahtung für die umgekehrte Richtung anders ist.

1.2 Bodenerkennung

Um zu erkennen, in welcher Etage sich der Aufzug gerade befindet, wird ein Endschalter verwendet. Wenn sich der Aufzug nach oben oder unten bewegt, schließt er und öffnet einen Endschalter auf jeder Etage. Wenn sich der Aufzug in einem bestimmten Stockwerk befindet, wird das Grenzstockwerk in diesem bestimmten Stockwerk geschlossen und zeigt dem Mikrocontroller an, in welchem ​​Stockwerk sich der Aufzug befindet. Während sich die Hebebühne bewegt, öffnet sich der Endschalter und zeigt dem Mikrocontroller an, dass sich die Hebebühne bewegt.

Der Übergang vom Low- zum High-Signal, das vom Endschalter erzeugt wird, wenn der Aufzug durch eine Etage fährt, geschieht in Sekundenbruchteilen und ist oft zu schnell, um vom Mikrocontroller erkannt zu werden. Die Endschalter sind an eine 5 V DC-Versorgung angeschlossen und der Ausgang des NO (Normally Open)-Anschlusses ist mit einem IO-Pin des Mikrocontrollers verbunden. Vier Endschalter auf vier Etagen senden Daten an den Mikrocontroller. Auf diese Weise kann der Mikrocontroller die Etage bestimmen, auf der sich der Aufzug befindet, indem er überprüft, welcher Pin von niedrig nach hoch gegangen ist. Der Zustandsübergang eines Endschalters ist im folgenden Diagramm dargestellt:

Die knifflige Aufgabe besteht darin, den Mikrocontroller in die Lage zu versetzen, den Übergang von Low nach High zu erkennen. Es gibt zwei Methoden, um dieses Problem anzugehen. Die erste Methode besteht darin, mithilfe einer if-Bedingung zu bestimmen, ob ein Endschalterstift innerhalb der Schleifenfunktion auf HIGH geht. Das Programm prüft im Wesentlichen während der Ausführung von anderem Code immer, ob ein Pin HIGH geht. Dies nimmt viel Speicher in Anspruch, da das Programm ständig nach einem HIGH-Signal von einem Endschalterpin sucht. Ein weiteres Problem besteht darin, dass das Programm diesen Übergang manchmal übersieht, da die Schleifenfunktion während eines Übergangs anderen Code ausführte. Um diese Probleme zu vermeiden, werden Interrupts verwendet. Interrupts unterbrechen im Wesentlichen die Ausführung von Code und führen eine separate Funktion aus, wenn eine bestimmte Interrupt-Bedingung erfüllt ist. Dies ist ideal für den Aufzugsbetrieb. Wenn ein Endschalterstift von niedrig nach hoch geht, wird eine Unterbrechungsfunktion ausgeführt und diese Funktion überprüft, ob sich der Aufzug in der aktuellen Etage befindet und stoppt den Aufzug oder lässt ihn weiterfahren. Da das Programm gezwungen ist, die Unterbrechungsfunktion auszuführen, wenn ein Endschalter geschaltet wird, kann das System sicherstellen, dass das Programm die Erkennung einer Etage nicht absichtlich überspringt. Der für diese Anwendung verwendete Mikrocontroller ist der Arduino Mega 2560, der über 6 digitale Pins verfügt, die für Interrupts verwendet werden können, was ideal für die vier Etagen geeignet ist. Der erste Parameter von attachInterrupt ist eine Interrupt-Nummer. Normalerweise sollten Sie digitalPinToInterrupt(pin) verwenden, um den tatsächlichen digitalen Pin in die spezifische Interrupt-Nummer zu übersetzen. Wenn Sie beispielsweise eine Verbindung zu Pin 3 herstellen, verwenden Sie digitalPinToInterrupt(3) als ersten Parameter zum Anhängen von Interrupt. Es ist auch wichtig zu beachten, dass die Funktion delay() nicht innerhalb der Funktion funktioniert, die von der Interrupt Service Routine (ISR) ausgeführt wird.

Das obige Diagramm zeigt den Anschluss der Endschalter an die MCU. Die Pins in der MCU sind über einen Pulldown-Widerstand verbunden. Dieser Widerstand zieht den Pin der MCU auf Masse, um sicherzustellen, dass ein LOW-Spannungsmesswert von der MCU gelesen wird, wenn der Endschalter offen gelassen wird. Die Widerstandskonfiguration ist im folgenden Diagramm dargestellt.

1.3 Motor-Up- und Down-Steuerung

Zwei 12-V-DC-Relais werden verwendet, um Wechselstrom zu den Schützen des Motors zu schalten, die seine Richtung (entweder nach oben oder unten) steuern. Die mit Multisim entworfene Schaltung ist im folgenden Diagramm dargestellt:

Ein Ende des Spulenschützes beider Relais ist über einen PNP-Transistor mit der 12-V-DC-Versorgung verbunden. Der Hauptgrund dafür besteht darin, sicherzustellen, dass der Motor erst dann mit Strom versorgt wird, wenn die Aufzugstür geschlossen ist. Sobald die Aufzugstür geschlossen ist, wird der DoorSwitch-Ausgangspin zum Gate des PNP-Transistors auf Masse gezogen, um sicherzustellen, dass der PNP eingeschaltet ist, um beide Relais mit VCC-Leistung zu versorgen. Daher wird das Relais auch dann nicht eingeschaltet, wenn das Signal MotorUp oder MotorDown HIGH ist. Das andere Ende der Relaisspule wird über einen NPN-Transistor auf Masse gezogen. Das MotorUp-Signal wird von der MCU generiert. Wenn das MotorUp-Signal HIGH ist, wird der erste NPN-Transistor aktiviert und zieht den anderen Spulenkontakt auf Masse, um den Stromkreis zu schließen, um die Spule des Up-Relais zu versorgen, um den Motor zu versorgen. Die gleiche Methode wird verwendet, um das Down-Relais zu aktivieren. Gründe für die Verwendung von Transistoren zum Schalten der Relais sind:

  • Beide Relais haben 12-VDC-Spulen, daher ist es notwendig, einen PNP-Transistor zu verwenden, um den High-Side (12V)-Teil der Spule zu schalten, da die MCU nur 5V erzeugen kann, was nicht ausreicht, um die Relaisspule einzuschalten.
  • Transistoren können verwendet werden, um das Relais einzuschalten, indem minimaler Strom von der MCU verwendet wird, da wenig Strom durch die Basis des Transistors ihn aktiviert. Dies spart Strom in der MCU, wenn sie die Relais schalten muss.
  • Es isoliert die MCU auch von jeglichem Rückstrom, der zum Pin der MCU zurückfließen kann, der die MCU möglicherweise beschädigen kann.

1.3.1 Flyback-Diode für zusätzlichen Schutz

Eine Flyback-Diode ist über den Spulenkontakten des Relais installiert, um sicherzustellen, dass der Rückstrom beim Ein- und Ausschalten der Spule einen Weg hat. Induktive Lasten wie eine Spule im Relais erzeugen bei plötzlicher Unterbrechung des Versorgungsstroms plötzliche Spannungsspitzen. Dies fügt der MCU zusätzlichen Schutz hinzu. Das folgende Diagramm zeigt, wie eine Sperrdiode über die Spulenschütze des Relais angeschlossen wird.

1.3.2 Benutzereingabesteuerung

Der Benutzer steuert den Betrieb des Aufzugs über Etagentasten. Es gibt vier Etagentaster, deren Betätigung dem Mikrocontroller anzeigt, dass der Aufzug in die gewünschte Etage gebracht werden muss.

Ein kurzzeitiger Druckknopf erzeugt ein HIGH-Signal und dann ein LOW-Signal, wenn der Benutzer den Knopf loslässt. Der Mikrocontroller hat die Aufgabe, ein HIGH-Signal einer vom Benutzer gedrückten Etagentaste zu erkennen. Diese spezielle Aufgabe muss nicht durch einen Interrupt abgewickelt werden. Solange der Benutzer die Taste ausreichend lange drückt, kann die MCU das Signal von der Taste registrieren. Die nächste Aufgabe des Mikrocontrollers besteht darin, zu beurteilen, ob der Auf- oder Ab-Motor in Abhängigkeit von der Benutzereingabe und der aktuellen Etage des Aufzugs gedreht werden soll.

Mit intelligenter Programmierung durch Mikrocontroller können wir zusätzliche Hardware eliminieren, die erforderlich gewesen wäre, wenn ein System rein logisch und analog aufgebaut wäre. Das bisherige System für den Aufzug erforderte einen zusätzlichen Richtungsschalter, wie in der Abbildung unten gezeigt, damit das System die Fahrtrichtung des Aufzugs erkennen kann (Aufwärts oder Abwärts).

Aber durch die Entwicklung eines Algorithmus, um die aktuelle Etage des Aufzugs in einer Variablen zu halten und sie mit der Eingabe des Benutzers zu vergleichen, konnte das System die Richtungsschalter vollständig loswerden, um die Richtung zu bestimmen, in die sich der Aufzug bewegen sollte, um die gewünschte zu erreichen umhauen. Beispiel:In dem oben gezeigten Diagramm der Eingangs- und Stockwerkserkennungsverbindungen zur MCU zeigt der Aufzug der MCU über Pin 3 an, dass er sich im zweiten Stockwerk befindet. Dann gibt der Benutzer durch Drücken der Taste des vierten Stockwerks ein. Die MCU empfängt diesen Befehl und vergleicht die beiden Eingaben. Da die Eingabe vom Benutzer „4“ größer ist als die Eingabe vom Endschalter „2“, sendet die MCU ein Signal über den MotorUp-Pin, um den Transistor zu aktivieren, um das Up-Relais zu versorgen.

Wenn der Aufzug nach oben fährt, wird die aktuelle Stockwerksvariable im Programm aktualisiert, wenn er in den dritten Stock gelangt. Sobald ein Endschalter ausgelöst wird, wird dieser mit dem Eingabewert des Benutzers, der in diesem Fall „4“ ist, verglichen und dieser Wert erneut mit dem aktualisierten aktuellen Stockwerk verglichen, um festzustellen, ob sich der Aufzug dem gewünschten Stockwerk angenähert hat. Sobald der Endschalter des vierten Stockwerks ausgelöst wird, erkennt die MCU, dass sich der Aufzug dem vierten Stockwerk genähert hat und sendet ein LOW-Signal über den Signalstift Motor hoch, um die Stromzufuhr zum Motor zu stoppen, um zu verhindern, dass er sich weiter bewegt.

1.3.3 Trennung der Steuerung von den Eingängen

Ein weiterer wichtiger Faktor besteht darin, die DC-Steuerungsseite des Mikrocontrollers von allen AC-Störungen zu isolieren, die die MCU über die Eingänge des Systems beeinträchtigen könnten. Ein Problem, mit dem ich konfrontiert war, da ich anfangs keine Isolationshardware installiert hatte, wurden AC-Störungen, die vom Metallgehäuse des Aufzugs stammten, über die Endschalter auf die MCU übertragen. Obwohl die Endschalter mit einer separaten Gleichstromversorgung arbeiten, werden die Eingaben der Endschalter direkt an den Mikrocontroller gespeist, dann treten Störungen auf, wenn der Aufzug beginnt, sich zu bewegen, und aufgrund dieser Wechselstromstörung kann die MCU die Etage des Aufzugs nicht richtig identifizieren ist bei. Um diesem Problem entgegenzuwirken, wurde für jeden Eingang ein Optokoppler verwendet, um die MCU von äußeren Störungen zu isolieren.

Der Optokoppler hat die Aufgabe, das vom Bodenendschalter erzeugte Eingangssignal über eine LED und einen Fototransistor an die MCU zu übertragen. Wenn der Endschalter geschlossen ist, wird die LED eingeschaltet und das von der LED einfallende Licht aktiviert das Gate des Fototransistors, der dann ein HIGH-Signal an die MCU überträgt und den Eingang erfolgreich von außen und der MCU trennt.

1.4 Prototyp


Herstellungsprozess

  1. Aufzug
  2. Arduino Spybot
  3. FlickMote
  4. Selbstgemachter Fernseher B-Gone
  5. Hauptuhr
  6. Finde mich
  7. Arduino-Power
  8. Tech-TicTacToe
  9. Arduino-Vierbeiner
  10. Arduino-betriebener Wetterballon-Datenlogger