Arduino Power und Networking über Cat6

Ich plane, etwa 4-5 Arduino Pro Micro in meinem Garten zu betreiben, um die Steuerung von Magnetventilen für die Gartenbewässerung basierend auf Bodenmessungen zu steuern (damit wir es gut bewässert halten).

Meine Frage betrifft die Versorgungsspannung. Ich möchte Cat 6 über eine Gesamtlänge von vielleicht 20 m verwenden, um sowohl Strom als auch RS485-Netzwerke über die Twisted Pairs zu liefern.

Basierend auf früheren Antworten zu cat6 weiß ich, dass die Stromstärke in Ordnung sein sollte, vorausgesetzt, alle Arduino laufen sogar ohne Schlaf voll, etwa 45 mA, das sind etwa 250 mA.

Das Magnetventil sagt 8 W bei 12 V, was 0,6 A entspricht, vorausgesetzt, der Strom ist erforderlich, um es offen zu halten (nicht geschlossen - ist das richtig?), Was ich hoffen würde, sonst würde ein Stromausfall dazu führen, dass es sich öffnet.

Ich denke, ich müsste sowieso 12 V laufen lassen, sollte ich 12 V und 5 V die Paare runterlaufen lassen? Wenn ich nur 12 V betreibe, brauche ich einen linearen Spannungsregler, der ziemlich heiß wird, bedeutet das, dass er ineffizient ist? Wenn ich auch 5 V verwende, wie gut funktionieren 5 V über diese Entfernung aufgrund des Spannungsabfalls bei Cat6-Paaren?

Planen Sie, den Arduino/AVR UART im 9-Bit-Modus (Multidrop-Adressierung) zu verwenden, oder sind Sie offen für andere Protokolle? Haben Sie auch eine Art zentrale Kontrollstation, und wenn ja, was ist das?
Sorry hätte erwähnen sollen. Es wird von einem Himbeer-Pi koordiniert, der sich regelmäßig bei den Knoten "eincheckt". Das Arduino wird also nicht sprechen, bis es zuerst angesprochen wird. Ich wollte einen MAX485 verwenden und binäre Strukturen ausgeben, die ich mir vorstelle. Ich würde jedem Knoten eine ID geben und den Host im Datenblob identifizieren lassen.

Antworten (2)

Im Allgemeinen bedeutet eine höhere Spannung einen geringeren Verlust, daher sollten Sie die wirtschaftlichste Spannung verwenden (aber nicht mehr als 48 V, dies ist gefährlich). Ich empfehle auch, eine einzelne Spannung zu betreiben, aber zwei Drähte zu verwenden - zum Beispiel orange/oder-weiß für (+) und blau/blau-weiß für (-). Dies vereinfacht lediglich die Verkabelung und verringert die Wahrscheinlichkeit eines spontanen Neustarts von Mikrocontrollern aufgrund von Interferenzen oder Erdschleifen erheblich.

Lassen Sie uns zuerst sehen, ob Sie 12 V verwenden können. Ein 20 Fuß langes 23-AWG-Kabel hat einen Widerstand von 0,4 Ohm (unter der Annahme von 20 Ohm/1000 Fuß und zwei parallel geschalteten Drähten für Masse und Vcc). Bei 0,6 A verlieren Sie 0,24 V, was die Magnete nicht bemerken werden. Wenn Sie 5 Magnetventile gleichzeitig mit einem einzigen Kabel betreiben, ziehen sie insgesamt 3 A, und ein Kabel wird 1,2 Volt abfallen, was immer noch ausreicht, um die Magnete zu erregen. Also ja, sieht so aus, als könnten wir nur 12 V betreiben.

Beachten Sie, dass Sie, wenn Sie mehr Strom benötigen, auf 24 V oder 48 V umschalten und einen 12-V-Regler in jeder Box haben müssten.

Um nun 5 V zu erhalten, können Sie einen Linear- oder Schaltregler verwenden. Die Vorteile des Linearreglers bestehen darin, dass er einfach und bei einigen Arduinos bereits vorhanden ist (nicht bei Pro Micro). Bei 45 mA werden 0,3 W verschwendet, was nicht viel ist und leicht abgeleitet werden kann. Angesichts der Tatsache, dass 5-V-Schaltregler bei ebay jeweils weniger als 2 US-Dollar kosten, empfehle ich Ihnen dringend, einfach ein Dutzend davon zu kaufen und sie überall zu verwenden.

Danke, fast auf den Punkt! Ich verwende tatsächlich ungefähr 20 m, nicht also, das wäre eher ein Abfall von 1 V, oder? Auch hier ist mein Aktuator - adafruit.com/product/997 . Ich würde sie wiederum nicht alle auf einmal gießen, und sie brauchen keine Spannung, wenn sie geschlossen sind, also noch weniger. Klingt wie 12V ist der Weg zu gehen, und es wird funktionieren. Schließlich lieber einen umschaltenden linearen DC-Wandler.
Auch als Follow-up verwende ich Klone mit atmega328, die angeben, dass es 12 V verwenden kann -> aliexpress.com/item/…
zum Solenoid: "Wir haben dieses Solenoid bei verschiedenen Gleichspannungen ausprobiert und festgestellt, dass wir es bei 6 VDC herunterschalten können" - das bedeutet, dass Sie einen großen Spannungsabfall tolerieren können. Wieder eingebauter Regler bei billigen Arduinos: Ich habe schlechte Erfahrungen damit gemacht - der Regler würde bei einer Überspannung von nur 13 V brechen. Eine frisch aufgeladene Blei-Säure-Batterie erzeugt also genug Spannung, um den 12-V-Arduino-Eingang zu braten.
Ich werde es von einem "12-V" -Netzteil aus betreiben, aber ich habe gesehen, dass diese sowieso bis zu 13 V gehen, also danke für die Warnung. Wären diese (Stahlkäfig-ähnlichen) Netzteile mit "Trimmung" der Spannung vertrauenswürdig, wenn Sie die Spannung genau auf 12 V einstellen?
Im Allgemeinen sind die Schaltnetzteile im Laufe der Zeit ziemlich stabil. Stellen Sie außerdem sicher, dass Sie Freilaufdioden an allen Ihren Spulen haben, da sonst die in den Spulen gespeicherte Energie die Regler braten kann, wenn sie ausgeschaltet sind.

Schalten Sie dieses Baby ein!

Zunächst einmal wäre der Betrieb von 12 V für die Stromversorgung angesichts der Einschränkungen in Ihrer Frage zumindest einigermaßen praktisch, Sie werden jedoch in Bezug auf die verfügbare Strommenge eingeschränkt. Die Verwendung von 24 oder 48 V mit Abwärtsreglern bis hinunter zu 12 V an jedem Endpunkt (diese sind als Module aus einer Vielzahl von Quellen erhältlich) ist wahrscheinlich ein weniger verlustbehafteter und vielleicht insgesamt etwas zuverlässigerer Ansatz.

Sprechen Sie mit mir....

Zweitens gibt es auch auf der Datenseite ein Problem – der UART des Pi unterstützt nicht wirklich das Multidrop-Adressierungssystem (9-Bit-UART-Modus), das üblicherweise mit RS-485-Netzwerken und Mikrocontroller-UARTs verwendet wird. Ich würde empfehlen, entweder einen externen UART für den Pi zu verwenden, der den 9-Bit-Modus ordnungsgemäß unterstützt, oder ein I2C-over-RS485-Netzwerk anstelle von UART-over-RS485 zu verwenden.

Externe UARTs für den Pi

Glücklicherweise sind SPI-UART-ICs relativ günstig erhältlich und unterstützen den 9-Bit-Modus sowie andere Funktionen, die für RS-485 nützlich sind (z. B. die automatische Steuerung der Richtungssteuerstifte des RS-485-Transceivers). Einige USB->UART-Chips können diese Funktion ebenfalls unterstützen; Lesen Sie das Datenblatt für das, was Sie für die Details verwenden.

Verwendung von I2C über RS-485

Der I2C-Bus bietet mehrere sehr nette Funktionen – Multidrop-Adressierung, Konkurrenzerkennung und Multi-Mastering-Unterstützung, alles direkt aus der Box. "Aber wie willst du es dazu bringen, 20 m über Twisted Pair zu gehen?" du fragst. Ganz einfach: Wir nehmen RS-485 und verwenden es mit Hilfe des Puffer-ICs P82B96 als physikalische Schicht für unsere I2C-Verbindung. Dieser Chip teilt die bidirektionalen I2C-Signale in jeweils zwei unidirektionale Signale für SCL und SDA auf – von dort aus können moderne RS-485-Transceiver verwendet werden, die eine Open-Bus/Floating-Bus-Failsafe in einem Pseudo-Open-Drain implementieren Weise (dh Draht DE mit dem Komplement von TX und D mit 0), wie im folgenden Schema dargestellt - U2 und U3 sind die RS-485-Transceiver, und das NOT-Gate kann alles sein, was Sie zur Hand haben und von dem ablaufen Versorgungsspannung vorhanden.

schematisch

Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan

(Sie benötigen 3,3-V-Transceiver für U2 und U3, um dies mit dem Pi BTW zu verwenden.)

sehr interessant! Ich versuche, mich mit dem I2C über RS-485 abzufinden (eher eine Bonusantwort, danke!). Es sieht so aus, als hätten wir in diesem Beispiel drei P82B96, von denen einer effektiv als Modulator und zwei als Demodulatoren fungieren Modems für I2C über RS-485? In diesem Fall haben wir die Takt- und Datensignale genommen und in ein Paar aufgeteilt (eines pro Richtung). Ist das ungefähr das Wesentliche? Mein ursprünglicher Plan war, nur einen USB-> RS485 auf dem Himbeer-Pi und einen Max-485 für die Arduinos zu verwenden.
@MitchellCurrie - U1 ist der einzige P82B96 im Schaltplan, U2 und U3 sind RS-485-Transceiver. Aber ja, die Gesamtschaltung ist effektiv eine Art Modem für I2C über RS485 und teilt den Takt und die Daten jeweils in ein bidirektionales Differenzpaar auf.
Ich verstehe. Richtig, es braucht also ein Paar davon, um den 4-Draht-Ausgang für unseren I2C über RS485 zu machen. Ich nehme an, ich habe die verfügbaren Adernpaare in 8-adrigem CAT6. Ich muss darüber nachdenken, es scheint einfacher zu sein, nur mit einem USB-Adapter zu verkabeln. Meiner Meinung nach ist der Hauptvorteil von I2C die Tatsache, dass Adressierungsmodi in das Protokoll integriert sind - ist das richtig?
Zweites Follow-up: Mit, sagen wir, 48-V-Netzteil, wie ist die Effizienz von, sagen wir, einem Arduino, das 0,25 W (50 mA bei 5 V) von 0,25 W (5 mA bei 48 V) benötigt. Wenn es sich um ein Schaltnetzteil handelt, haben sie normalerweise einen Wirkungsgrad von etwa 90%, wenn ich mich richtig erinnere.
Ein gutes Abwärtswandlermodul sollte einen Wirkungsgrad von 80-90 % haben, wenn es darum geht, 48 V auf 5 V herunterzubringen – sie sind bei Telekommunikationsarbeiten ziemlich üblich
Vielen Dank. Schließlich habe ich festgestellt, dass es möglicherweise eine einfachere Option gibt - P82B715, die I2C erweitert. Es scheint nicht zu viel "Boiler Plate" zu brauchen, um davon Gebrauch zu machen. Irgendwelche Gedanken? Jetzt, da Sie mich auf I2C verkauft haben, ist es die elegantere Lösung (da ich ein Softwareentwickler bin, spricht mich das in erster Linie an) tronixstuff.com/wp-content/uploads/2010/10/i2cbufferedss1.jpg
Sie können den P82B96 allein als Bus-Extender verwenden und er wird dem P82B715 stark vorgezogen. Die physikalische Schicht von RS-485 bietet Ihnen jedoch eine weitaus bessere Rauschbeständigkeit und Entfernung.
Aufgrund der Tatsache, dass RS-485 12 V ist. Der Puffer filtert also das Signal, die RS-485-Verbindungsschicht verstärkt es. Basierend auf einem 20-m-Lauf von CAT6, wie hoch ist die Wahrscheinlichkeit, dass der RS-485 realistisch benötigt wird? Die Baudrate ist nicht sehr wichtig, um ehrlich zu sein, aber Einfachheit wäre schön.
@MitchellCurrie - RS485 ist per se nicht "12 V", verstärkt es jedoch durch Bereitstellung einer differenziellen / symmetrischen Leitungsschnittstelle. Bei CAT-6 gibt es keinen großen Grund, es nicht zu verwenden, übrigens - Sie haben die Drähte zur Hand und würden sie nur für die Signale parallel schalten, wenn Sie mit dem P82B96 direkt Single-Ended übertragen würden .
Danke, ich schaue mir jetzt auch MCP2515 an, das anscheinend auch bevorzugt wird - wie das TJA1050-Modul.
Der MCP2515 ist ein etwas anderes Biest – er wird mit CAN verwendet, was ein ganz anderer Protokollstapel ist, obwohl einer, der auch für Ihre Anwendung ziemlich gut funktionieren würde, vorausgesetzt, Sie wären bereit, mehr Hardware für das Problem zu verwenden.
Danke an alle. Ich werde RS-485 alleine ausprobieren, um ein Gefühl dafür zu bekommen und bei Bedarf auf eine andere Stapelebene aufzusteigen.