Ich habe einige Sensoren, von denen ich jeweils - eine Spannung lesen - in der Lage sein muss, sie einzuschalten. (Sie werden mit einer 220-V-Wechselstromversorgung betrieben).
Die zurückzulegende Entfernung beträgt etwa 40 Meter.
Ich möchte nicht zu viele Drähte verwenden, um dies zu erreichen.
Folgende Lösungen habe ich in Betracht gezogen: - 1-Wire-Protokoll - es ist ziemlich einfach, aber einige Leute haben einige Probleme gemeldet;
Falls ich mich für das 1-Wire-Protokoll entschieden habe, wie würde ich meine Sensoren an eine 1-Wire-Schnittstelle anschließen?
Wenn RS422 nicht zu kompliziert und umfangreich ist, würde ich mich für diese Option entscheiden, da ich in Betracht ziehen könnte, das Netzwerk in Zukunft auf etwa 200-250 Meter zu erweitern.
Wie würde ich meine Sensoren an eine RS422-Schnittstelle anschließen? Wie würde ich meinen Arduino dazu bringen, mit RS22 zu sprechen? Haben Sie RS422-Chips getestet? Ich habe einige davon online gesehen, bin mir aber nicht sicher, welche ich wählen soll.
Wäre es zu kompliziert, ein RS22-Kabel selbst herzustellen? Ich habe bei ebay geschaut und nur Drähte gefunden, die nicht lang genug und zu ausladend sind.
Ich persönlich würde mich weder für RS422 noch für 1-Wire entscheiden.
RS422 ist wirklich eine Punkt-zu-Punkt-Verbindung, wie RS232 (und wird normalerweise verwendet, um RS232 zu erweitern), und 1-Draht ist wirklich nur für lokale Verbindungen innerhalb einer Leiterplatte.
Stattdessen sollten Sie RS485 verwenden.
RS485 ist wie RS422 (RS232 mit differentieller Signalisierung), außer dass es als Punkt-zu-Mehrpunkt oder vollständig Peer-to-Peer ausgelegt ist.
Die Kommunikation erfolgt normalerweise halbduplex (wenn auch nicht immer, aber es ist am einfachsten, sie halbduplex zu halten), und Sie würden normalerweise einen MAX485-Chip (oder einen ähnlichen) Chip verwenden, um die UART-Verbindung eines Mikrocontrollers in RS485 umzuwandeln. Ein einzelner GPIO-Pin wird verwendet, um in den Sendemodus zu wechseln, wenn Sie Daten über das Netzwerk senden möchten, und ansonsten befindet er sich im konstanten Empfangsmodus und wartet auf das Eintreffen von Daten.
Sie benötigen für jeden Sensor einen kleinen Mikrocontroller, um ihn mit dem Bus zu verbinden - etwas Einfaches wie einen ATTiny oder einen PIC16 - vorzugsweise etwas mit einem Hardware-UART und natürlich alle Einrichtungen, die Sie für die Kommunikation mit Ihrem Sensor benötigen.
Sie würden dann ein Protokoll schreiben (oder ein vorhandenes verwenden), wodurch der Arduino eine Nachricht mit einer "Adress" -Kennung zusammen mit einem Befehl auf den Bus sendet und der mit der entsprechenden Adresse programmierte Sensor auf diesen Befehl reagiert. möglicherweise dann das Zurücksenden von Daten an das Arduino (ein typisches "Call-Response" -Protokoll).
Für die Verkabelung benötigen Sie nichts Besonderes. Ein einfaches zweiadriges abgeschirmtes serielles Kabel ist in Ordnung, obwohl dies als übertrieben angesehen werden kann - wenn es in einer Umgebung nicht zu laut ist, würde jedes zweiadrige Kabel ausreichen. Das Beste ist natürlich Twisted Pair, und das Beste von absoluter Spitzenqualität ist geschirmtes Twisted Pair. Eine gute Wahl ist ein CAT5-Ethernet-Kabel. Es ist billig, wird in 305-m-Rollen geliefert und hat 4 verdrillte Paare. Sie benötigen natürlich nur eines dieser Paare, sodass die anderen drei für andere Dinge verwendet werden können - zum Beispiel zum Tragen von Strom.
Ignacio Vazquez-Abrams
Majenko
Nick Alexejew
GeraldCelente
Majenko
GeraldCelente