Gründe, warum es nicht in Ordnung ist, ein Relais direkt von einem digitalen Arduino-Pin anzuschließen


8

Nachdem ich mir verschiedene Schaltpläne zur Steuerung eines Relais über ein Arduino angesehen habe, habe ich festgestellt, dass meistens Transistoren verwendet werden, um die separate Versorgung in die Relaisspule zu schalten, anstatt das Relais direkt mit dem 5-Volt-Ausgang des I zu versorgen / O Pin des Arduino. Zum Beispiel habe ich ein 5-Volt-DPDT-Relais und auch einen kleinen Gleichstrommotor. Ich möchte beide direkt von meinem Arduino UNO (SMD-Klon) mit einem Atmel328-Prozessor betreiben. Wäre es ratsam, fortzufahren?

Wenn nicht (höchstwahrscheinlich):

  1. Kann jemand eine detaillierte Erklärung geben und ebenso wichtige Vorsichtsmaßnahmen zu aktuellen Grenzwerten und Dingen treffen?

  2. Wie kann man solche Komponenten steuern, ohne das Arduino zu riskieren? Was sind einige übliche Mittel, um dies zu erreichen?

  3. Welche anderen Geräte können im Allgemeinen eine Arduino-Karte (oder eine Mikrocontroller-Einheit) auf ähnliche Weise beschädigen?

Ich bin nur ein Anfänger, der äußerst vorsichtig sein möchte. Vielen Dank.


Obwohl ich kürzlich bei meiner ersten Begegnung mit Arduino die E / A-Pins direkt verwendet habe, um einen Spielzeug-Gleichstrommotor mit Strom zu versorgen und seine Richtung zu ändern, indem ich ein DPDT-Relais auf die gleiche Weise ein- und ausschalte. Nichts scheint bei weitem nicht zu stimmen.
DorkOrc

Antworten:


8

Prozessorstifte haben eine streng begrenzte Stromtreiberfähigkeit.

  • Die Nennwerte können variieren, je nachdem, ob Sie ein hohes oder ein niedriges Laufwerk wünschen.
  • Einige Prozessoren liefern nur wenige mA und die meisten, die Sie offiziell erhalten, liegen im Bereich von 20 bis 30 mA.

  • Normalerweise gibt es eine Gesamtstrombegrenzung für den Prozessor und nur wenige Pins können gleichzeitig Spitzenstrom liefern.

  • Prozessorstifte haben einen signifikanten effektiven Widerstand und eine hohe Spannung "fällt" ab, wenn zunehmender Strom gezogen wird, und eine niedrige Spannung steigt an, wenn die Last zunimmt. Pins können spezifisch mit einem maximalen Kurzschlussstrom sein, aber an diesem Punkt wird ein hoher Pin niedrig und ein niedriger Pin hoch gezogen, so dass der Kurzschlussstrom nur begrenzt anwendbar ist.

Selbst wenn Sie einen Prozessor mit 25 mA pro Pin haben, ist die verfügbare Leistung gering. 25 mA · 4 V sagen (1 V Abfall bei 5 V Vcc) = 100 mW. Die meisten Motoren benötigen mehr als das und nur sehr kleine Motoren laufen gut, wenn sie nur von einem Stift angetrieben werden.

Elektromotoren und Induktivitäten erzeugen bei Stromunterbrechung erheblich hohe Spannungen - es können leicht Spannungen von mehreren zehn Volt entstehen und es können mehr als 100 Volt auftreten. Das direkte Anschließen eines Induktionsmotors an einen Prozessorstift ist eine Aufforderung zur Zerstörung. Murphy wird oft verpflichtet.


Ein Transistor (Bipolar oder MOSFET), der typische Hobby-Motoren antreibt, kostet 10 Cent (oder ist frei von verschrotteten Geräten) und ermöglicht das Puffern und "Verstärken" des Port-Pin-Stromantriebs. Die Verwendung eines Transistors oder eines anderen Puffers ist eine äußerst gute Idee, wenn Sie einen oder mehrere Prozessoren haben und nicht möchten, dass diese halb zufällig sterben.

MOSFET-Motortreiber - von hier aus - Abschnitt 8.

Spannungen und Teilenummern sind für ihr Beispiel - passend auswählen.
Ein NPN-Biploar könnte mit der Hinzufügung eines Eingangswiderstands zur Transistorbasis verwendet werden.

Geben Sie hier die Bildbeschreibung ein

Bidirektionaler Treiber - Wenn Sie möchten, dass der Treiber eine Last hoch und niedrig fahren kann, funktioniert diese Schaltung. von hier aus
Das Eingangsgatter ist in diesem Fall der interne Prozessortreiber. Die beiden MOSFET-Gatter sind direkt mit dem Prozessor-Pin verbunden. Vdd sollte normalerweise nicht höher als der Prozessor Vmax_drive_out sein. Etwas höher kann gemacht werden, um mit geeignetem Design zu arbeiten. Mit dieser Schaltung (oder ähnlichem) und einem zusätzlichen Transistor können Lasten mit viel höherer Spannung angesteuert werden.

Geben Sie hier die Bildbeschreibung ein


Ein Puffer wie ein ULN2803 (und andere Familienmitglieder) steuert 8 Kanäle x 500 mA / Kanal an und mehrere können parallel geschaltet werden.


Ein ULN2803 besteht im Wesentlichen aus 8 x "Darlington" -Transistoren mit an eine gemeinsame Masse angeschlossenen Emittern, 8 x "Open Collector" -Kollektoren (nicht angeschlossen) und 8 Flyback-Dioden zur Behandlung von Überspannungsspitzen (optional verwenden). (Es gibt eine ULN280x-Familie mit leicht unterschiedlichen Eingabeeigenschaften).

Dieses Gerät bietet ein kostengünstiges Mittel zur Bereitstellung von 8 x 500 mA-Pulldown-Treibern. Eine von einem Ausgang an V + angeschlossene Last wird eingeschaltet, wenn der Eingangspin hoch angesteuert wird. Wenn Sie ein paar Mal verwendet haben, werden Sie feststellen, dass sie einfach zu bedienen und sehr nützlich sind. (Es gibt auch eine ULN200x-Familie mit 7 Kanälen pro Paket).

YouTube "How to" Video


Schrittmotor fahren

Geben Sie hier die Bildbeschreibung ein

Auch hier


Kleine Gleichstrommotoren fahren - und noch viel mehr.

Geben Sie hier die Bildbeschreibung ein Millionen Beispiele

Digikey - auf Wunsch in 1er erhältlich, 0,72 $ / 1, in 1000er 0,29 $.

ULN2803 Datenblatt


Zum Verkauf bei Sparkfun - kann eher billiger gekauft werden, aber diese sind verfügbar


7

Der empfohlene Ausgang (Quelle oder Senke) von einem E / A-Pin beträgt 20 mA. Das absolute Maximum beträgt 40 mA. Ihre Relaisspule verbraucht wahrscheinlich mehr als das, insbesondere wenn sie anfänglich erregt wird. Dadurch wird Ihr Ausgangsstift beschädigt. Dann wird es irgendwann scheitern.

Nichts scheint bei weitem nicht zu stimmen.

Nein noch nicht. :) :)

Wie kann man solche Komponenten steuern, ohne das Arduino zu riskieren? Was sind einige übliche Mittel, um dies zu erreichen?

Verwenden Sie Transistoren oder MOSFETs.

Welche anderen Geräte können im Allgemeinen eine Arduino-Karte (oder eine Mikrocontroller-Einheit) auf ähnliche Weise beschädigen?

Alles, was die im Datenblatt dokumentierten maximalen Spannungs- oder Stromgrenzen überschreitet. Insbesondere Spulen (z. B. in Relais und Motoren) haben beim Ausschalten wahrscheinlich eine hohe Sperrspannung, weshalb Sie eine Dämpfungsdiode benötigen .

Wäre es ratsam, fortzufahren?

Es wäre ratsam, das zu beachten, was ich oben geschrieben habe, und die vielen, vielen Artikel im Internet darüber zu lesen, wie man Motoren und Relais von einem Arduino aus antreibt. Sie sind nicht die erste Person, die dies versucht.


4

Schauen Sie sich die einfache Schaltung in diesem PDF vom Arduino-Spielplatz an. Es zeigt einen einzelnen Transistor zum Ansteuern eines kleinen Relais.

Wie Russell in seiner Antwort sagt, ist ein ULN2803 oder ähnliches ein Chip, mit dem Sie mehrere kleine Relais ansteuern können, was ordentlicher ist als die Verwendung mehrerer Transistoren, wenn Sie dies wünschen.

(Beachten Sie auch die Diode "D1" in der Schaltung, die ich angeschlossen habe. Sie benötigen diese, um den Transistor vor einer Beschädigung durch induktive Spitzen zu schützen, die beim Ausschalten des Relais erzeugt werden. Einige der ULN-Chips haben diese Diode eingebaut. Deshalb sieht man es nicht immer in Schaltplänen.)


3

Um Ihr Arduino wirklich zu schützen, lohnt es sich, einen Fotokoppler auf den Pin zu setzen und Ihre Schaltung auf diese Weise anzutreiben. Dann kann keine induktive Streuladung oder Kurzschluss das Arduino beeinflussen.

Sie werden auch als OptoIsolatoren oder Optokoppler bezeichnet.

http://forum.arduino.cc/index.php?topic=143954.0


1
Sie haben völlig Recht, Optoisolatoren sind ein guter Weg. Eine andere Möglichkeit, die etwas weniger isolierend, aber dennoch praktisch ist, besteht darin, einen Operationsverstärker (Op Amp) als Puffer zu verwenden. Diese werden auch als "Folloer" -Operverstärker bezeichnet. Beachten Sie, dass Sie dies mit jedem handelsüblichen OpAmp tun können. Sie legen die Schaltung einfach auf eine bestimmte Weise an. en.wikipedia.org/wiki/Buffer_amplifier#Op-amp_implementation
Dan

3

Schauen wir uns einige Grundlagen an, diese scheinen die Grundlage vieler Fragen zu sein:

Ein Kondensator zieht beim Einschalten eine große Menge Strom, der sich beim Laden verjüngt. Diese Kurve wird auch als RC-Zeitkonstante bezeichnet (dies ist nahe, aber nicht genau. " Http://www.electronics-tutorials.ws/rc/rc_1.html " gibt eine bessere Erklärung).

Beim Ausschalten entlädt sich ein Kondensator mit einer exponentiellen Rate (RC-Zeitkonstante) in Abhängigkeit von Wert, Ladespannung und Last. Dies macht sie gut, um die Stromversorgung für kurze Zeit zu halten, wenn die Stromversorgung ausfällt.

Ein Induktor zieht beim ersten Einschalten nichts, aber der Strom steigt exponentiell an, bis seine Spannung die Versorgungsspannung erreicht.

Beim Ausschalten kollabiert das induktive Feld im Induktor, wodurch sich die Polarität umkehrt. Die Spannung steigt unbegrenzt an, bis sie normalerweise von außen begrenzt wird. Je schneller es ausgeschaltet wird, desto schneller sind Anstiegszeit und Spannung. Die Energie fließt nicht mehr, wenn die induktive Ladung abgeführt wird. Ratet mal, wohin dieser Strom fließt, wenn die induktive Last wie ein Relais an einen Port-Pin angeschlossen ist?

Aus diesem Grund müssen Sie eine Diode (üblicherweise als Schwungraddiode bezeichnet) über die induktive Last legen. Google für: "Induktor / Kondensator-Ladungskurve" finden Sie viele schöne Grafiken, die dies erklären. Wenn Sie sich die Schaltung ansehen, ist die Kathode + mit der positivsten Seite des Netzteils verbunden. In dieser Konfiguration leitet es nur, wenn die Spannung umgekehrt wird (wenn die induktive Last ausgeschaltet ist).

Ein weiteres häufiges Missverständnis ist, dass Sie eine Mikroprozessor-E / A maximal laden können. Das ist schlechtes Design. Sie geben Ihnen ein Maximum pro Pin, pro Port und für den Chip. Bei Raumtemperatur werden Sie wahrscheinlich eine Weile damit durchkommen.

Nehmen wir an, wir haben einen Port mit einer Last von 40 mA. Die Ausgabe von der Stromschiene beträgt 0,005. Nach dem Ohmschen Gesetz verbrauchen wir 20 Milliwatt Leistung an einem Pin. Bei dieser Belastungsrate dauert es aufgrund der internen Verlustleistung nicht lange, das Gerät zu überhitzen.

Wenn der Ausgangsstift seinen Zustand ändert, zieht er mehr Strom, weil er seine interne und externe Kapazität laden oder entladen muss, "mehr Wärme", mehr Geschwindigkeit "mehr Wärme".

Wenn Sie sich einige der technischen Daten ansehen, erhalten Sie eine maximale Temperatur. Dies gilt für die Verbindungsstelle auf dem Chip und nicht für die Gehäusetemperatur. Kunststoff ist ein schlechter Leiter, so dass das Wärmesenken des Gehäuses nicht viel bewirkt. Betrachten Sie dies nun zusammen mit der Umgebungstemperatur. Die Bewertungen werden normalerweise bei 25 ° C angegeben. Erraten Sie, was passiert, wenn es wärmer wird.

Habe Spaß,

Gil

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.