Forum: Offtopic seriell verkabelte und auslesbare Schalter bzw. Sensoren?


von Frank E. (Firma: Q3) (qualidat)


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.

von Stefan S. (chiefeinherjar)


Lesenswert?

Frank E. schrieb:
> 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 ...

74HC595 oder ein anderes beliebiges Schieberegister? Oder ein I2C 
Portexpander?

von Steve van de Grens (roehrmond)


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.

von Wolfgang R. (Firma: www.wolfgangrobel.de) (mikemcbike)


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...

von Peter D. (peda)


Lesenswert?

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.

von Harald K. (kirnbichler)


Lesenswert?

Wolfgang R. schrieb:
> Das funktioniert aber aus messtechnischen Gründen nur stabil
> bei <=8 Tastern...

Oder man muss sehr, sehr präzise Widerstände verwenden.

Schon bei 8 Tastern braucht man bessere Toleranzen als 0.5%

von Bruno V. (bruno_v)


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.

von Manfred P. (pruckelfred)


Angehängte Dateien:

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.

von Sven L. (sven_rvbg)


Lesenswert?

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.

von Carsten-Peter C. (carsten-p)


Angehängte Dateien:

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

von Frank E. (Firma: Q3) (qualidat)


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.

von Frank E. (Firma: Q3) (qualidat)


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 ...

von Bruno V. (bruno_v)


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.

von Oliver R. (orb)


Lesenswert?

Bruno V. schrieb:
> Fertig gibt's solche Chips als TWI (Two Wurre Interface) mitallen
> möglichen Features.

TWI ist aber nicht simples Schieberegister sondern Atmels Bezeichnung 
für I2C.
Aber ja, auch I2C könnte gehen, auch wenn es nicht für längere Strecken 
und getörte Umgebungen gedacht ist.

von Benjamin K. (bentschie)


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.

von Peter D. (peda)


Lesenswert?

Bruno V. schrieb:
> Schieberegister sind prinzipiell auch beliebig anreihbar.

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. Ein langsamer HEF4021 geht 
deutlich besser.

von Matthias B. (turboholics)


Lesenswert?

Wie groß ist deine Anlage als das du damit nennenswerte Einsparungen 
(zeitlich und finanziell) erzielst?

Und wozu alles zur "Zentrale" leiten? Bei klassischer 
Modellbahn-Blocksteuerung geht die entsprechende Ader direkt zum 
nächsten Signal und stellt es um, fertig.

VG

von Bruno V. (bruno_v)


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.

von Stefan S. (chiefeinherjar)


Lesenswert?

Peter D. schrieb:
> Allerdings benötigt man recht viele Leitungen (parallel Load, Clock,
> Din, Dout).

Naja, parallel Load und Din können permanent auf einen definierten 
Zustand (mittels Pullup bzw. Pulldown) gelegt werden. Bleiben nur noch 
Clock und Dout. Und genau das will der TO.

von Frank M. (ukw) (Moderator) Benutzerseite


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.

: Bearbeitet durch Moderator
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.