seriell verkabelte und auslesbare Schalter bzw. Sensoren?

OP (Firma: Q3) #7608060
Lesenswert?

Ich bin bei jeder sich bietenden Gelegenheit ein Fan von seriel steuerbaren LEDs, wie z.B. WS2812B. Im Rahmen eines Modellbau-Projektes (Gleis-Sensoren auf Reed-Basis) stellt sich mir nun die Frage:

Gibt es eigentlich auch seriell anreihbare Taster/Sensoren nach dem gleichen Prinzip?

Ich stelle mir vor, die bräuchten dann 4 Leitungen: Vcc, GND, Takt und Data. Durch einen Takt-Aussetzer geht das System auf Reset, mit dem ersten Takt erscheint der Zustand des ersten Sensors/Tasters an Data ...

Gibts doch bestimmt schon fertig, oder? Hab nur nichts dergleichen gefunden. Danke für Tips.

Ansonsten müsste man das mit ATTiny oder diesen neuen 10ct-Prozessoren nachbauen. Ist allemal besser als hunderte sternförmig zu einem Interface verlegte Kabelpaare.

Gast #7608092
Lesenswert?

Bei meinem alten HiFi Receiver habe ich diese Schaltung entdeckt:

1
      ____     ____     ____     ____     ____
2
---+--o  o--+--o  o--+--o  o--+--o  o--+--o  o--+---
3
   |        |        |        |        |        |
4
   +--[==]--+--[==]--+--[==]--+--[==]--+--[==]--+

Also viele Taster in Reihe, und jeder hat einen anderen Widerstand parallel. Abgefragt wurde das dann offenbar mit einem analogen µC Eingang.

Das geht natürlich nur mit begrenzter Anzahl von Tastern.

(Firma: www.wolfgangrobel.de) #7608233
Lesenswert?

Steve van de Grens schrieb:

Bei meinem alten HiFi Receiver habe ich diese Schaltung entdeckt:

1
>       ____     ____     ____     ____     ____
2
> ---+--o  o--+--o  o--+--o  o--+--o  o--+--o  o--+---
3
>    |        |        |        |        |        |
4
>    +--[==]--+--[==]--+--[==]--+--[==]--+--[==]--+
5
>

Also viele Taster in Reihe, und jeder hat einen anderen Widerstand parallel. Abgefragt wurde das dann offenbar mit einem analogen µC Eingang.

Das geht natürlich nur mit begrenzter Anzahl von Tastern.

Hab ich schon öfter gesehen - geschickt binärcodiert kann man damit sogar beliebeig viele gleichzeitig gedrückte Taster herausfinden. Das funktioniert aber aus messtechnischen Gründen nur stabil bei <=8 Tastern...

#7608312
Lesenswert?

Frank E. schrieb:

Gibts doch bestimmt schon fertig, oder? Hab nur nichts dergleichen gefunden. Danke für Tips.

Schieberegister (wurde ja schon genannt) ist der Vater von all dem. Als JTAG/Boundary Scan gibt es das sogar für Tausende und abertausende Pins und Speicherstellen.

Schieberegister sind prinzipiell auch beliebig anreihbar.

Und wenn der letzte seinen Ausgang auf den Master zurückschickt, kann gleich festgestellt werden, ob alle Daten korrekt übertragen wurden.

#7608510
Lesenswert?

Harald K. schrieb:

Schon bei 8 Tastern braucht man bessere Toleranzen als 0.5%

Du musst nicht ständig Dein begrenztes Wissen zur Schau stellen.

Die angehängte Schaltung ist mit 1%-MELF aufgebaut und täte es auch klaglos bei größeren Toleranzen. Die klemmt an einem Arduino mit AT328, man muß halt bei der Programmierung der Abfrage das Hirn einschalten.

Angehängte Dateien:
#7608562
Lesenswert?

Moin, wenn du Signale über zwei Adern über eine weite Strecke übertragen möchtest, könntest du das mit Tönen machen. Das DTMF nutzt dieses Verfahren. Der Vorteil ist die Unempfindlichkeit gegenüber Störsignalen. Sender sind z.B. in AVR314 beschrieben oder als Hardware in alten Telefonen vorhanden. Empfänger findet man auch. Gruß Carsten

Angehängte Dateien:
OP (Firma: Q3) #7608596
Lesenswert?

Peter D. schrieb:

Frank E. schrieb:

Gibt es eigentlich auch seriell anreihbare Taster/Sensoren nach dem gleichen Prinzip?

Z.B. der DS2413 kann 2 IO-Pins steuern bzw. auslesen. Sie werden parallel an den Bus gelegt und jeder hat seine einmalige Adresse.

Das kommt meinen Ideen am nächsten, insbesondere, dass man eine quasi beliebige Menge davon zusammenschalten kann. Zusammen mit einem winzigen Reed-Kontakt passen die auch perfekt unter bzw. zwischen die Gleise einer Modellbahn. Danke für den Tip.

Danke auch an die anderen Tipgeber, aber deren Vorschläge haben alle nicht die Flexibilität, wie ich sie - in Analogie zu den WS2812-LEDs - im Startpost beschrieben habe.

OP (Firma: Q3) #7608597
Lesenswert?

Sven L. schrieb:

Es Fehlen halt Infos, welche Leitungslänge und wie viele Sensoren es denn sein müssen. Generell finde ich 1-Wire da auch ganz gut. Da gibt ID-Chips als SOT23. Sowas nutzen manche Smarthomer bspw. in Verbindung mit Reedkontakten zur Fensterüberwachung.

Die Anzahl sollte halt flexibel sein ... und möglichst wenig Kabelei. Halt ein serieller Bus, deshalb hab ich ja im Startpost auch die WS2812-LEDs zum Vergleich angesprochen ...

#7608605
Lesenswert?

Frank E. schrieb:

aber deren Vorschläge haben alle nicht die Flexibilität, wie ich sie - in Analogie zu den WS2812-LEDs - im Startpost beschrieben habe.

Was fehlt denn bei den aSchieberegistern? Der Vorteil ist die implizite Adressierung.

Prinzipiell geht auch ein uart pro Knoten, dann reicht 1 Signalleitung. Und je Knoten beliebig viele Arten von ein/Ausgängen.

Fertig gibt's solche Chips als TWI (Two Wurre Interface) mitallen möglichen Features.

#7608657
Lesenswert?

Manfred P. schrieb:

Harald K. schrieb:

Schon bei 8 Tastern braucht man bessere Toleranzen als 0.5%

Du musst nicht ständig Dein begrenztes Wissen zur Schau stellen.

Die angehängte Schaltung ist mit 1%-MELF aufgebaut und täte es auch klaglos bei größeren Toleranzen. Die klemmt an einem Arduino mit AT328, man muß halt bei der Programmierung der Abfrage das Hirn einschalten.

Hui hui. Die Aussage halte ich für nicht haltbar. Das Zitat kommt von weiter oben und bezieht sich auf:

Wolfgang R. schrieb:

geschickt binärcodiert kann man damit sogar beliebeig viele gleichzeitig gedrückte Taster herausfinden. Das funktioniert aber aus messtechnischen Gründen nur stabil bei <=8 Tastern...

Ich kann mir nicht vorstellen wie du mit 1% Widerständen das sicher und zuverlässig an einem 10Bit ADC mit Rauschen machen willst. Es kann gut sein, das das an einem Gerät mit viel Filterung un Mittelwertbildung geht. Aber vermutlich nicht mit der gleichen SW an einem zweiten.

Zum TO: ich würde auch sagen Schieberegister oder I2C Portexpander.

  • Portexpander sind zumeist bidirektional, jeder Knoten könnte also Eingang oder Steuerasugang sein.
  • I2C ist durch die Adressierung begrenzt auf typisch 8 oder auch bis zu 15 Teilnehmer (oder so in etwa was ich mich gerade noch erinnern kann)
  • Leitungslänge ist bei beidem kritisch, aber durch sehr langsames Takten bestimmt ausreichend.
  • Schieberegister sind beliebig viele möglich
  • ist beides billig und bewährt

p.s.: Ich verstehe immer nicht wieso man hier erstmal alle andern halbwegs beleidigen muss, nur um dann darauf hingewiesen zu werden das mal eventuell falsch selbst lag.

#7608765
Lesenswert?

Peter D. schrieb:

Allerdings benötigt man recht viele Leitungen (parallel Load, Clock, Din, Dout). Auch sind die sehr störempfindlich. Ein 74LV165 mit typisch bis 165MHz wird Dir haufenweise Störungen einfangen.

Du hast Recht. Ein Schieberegister erfordert sowohl Glue-Logik um mit 2 Leitungen zu arbeiten als auch Erfahrung um entweder sehr schnell oder zuverlässig für kleinere Geschwindigkeiten ausgelegt zu werden. Da sind von vornherein langsamere Systeme einfacher in Betrieb zu nehmen.

Moderator Persönliche Seite #7608858
Lesenswert?

Frank E. schrieb:

Das kommt meinen Ideen am nächsten, insbesondere, dass man eine quasi beliebige Menge davon zusammenschalten kann. Zusammen mit einem winzigen Reed-Kontakt passen die auch perfekt unter bzw. zwischen die Gleise einer Modellbahn.

Achso, um Modellbahn geht es. Eigentlich ist hier der bewährte (und uralte) S88-Bus schon ganz praktisch. Man verwendet ziemlich einfach gestrickte 16-fach-Moduleinheiten, welche höchst einfach seriell mit LAN-Kabeln in Reihe zusammengesteckt werden können. Diese Variante nennt sich S88-N. An jedem der Module können dann 16 Kontakte parallel angeschlossen werden.

Hier wird also Seriell- und Parallel-Verkabelung miteinander kombiniert. Man wird halt nicht gezwungen, das Kabel akribisch von einem Kontakt zum nächsten zu führen, denn das ist auch nicht immer das Gelbe vom Ei. Da könnten schon einige hundert bis tausend Meter zusammenkommen. Besser (und kürzer!) ist oft eine Sternverkabelung zu den Kontakten in der Nähe und Seriell-Verkabelung der Module untereinander, um den Kabelbaum nicht ausarten zu lassen.

Okay, LAN-Kabel sind nicht die dünnsten Kabel (obwohl: die gibt es auch!), die man sich hier vorstellen kann. Aber die werden ja auch nicht von Kontakt zu Kontakt geführt, sondern nur von Modul zu Modul.

Übrigens: S88 ist eigentlich nichts anderes als ein Schieberegister-Bus, siehe auch https://de.wikipedia.org/wiki/S88-R%C3%BCckmeldebussystem und http://www.s88-n.eu/

Insgesamt lassen sich an einem S88-Bus insgesamt 31 16-fach-Module anschließen. Damit werden dann an einem S88-Bus bis zu 496 Kontakte überwacht. Reicht das nicht aus, skaliert man halt die Anzahl der Busse. Der µC bestimmt den Takt, es sollte daher kein Problem sein, hier mehrere S88-Busse gleichzeitig zu betreiben.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren