Forum: Mikrocontroller und Digitale Elektronik 2 Taster ein Kabel


von Simon (Gast)


Lesenswert?

Hallo,

Ich stehe vor folgendem Problem, zwei Taster sollen an "einen" Port des 
Raspberry Pi und dieser soll auswerten welcher Taster gedrückt wurde. 
Ich dachte mir, vielleicht gibt es einen IC, an welchem man mehrere 
Schalter anschließen kann und der dann auswertet, welcher gerade 
gedrückt wurde und dann einen codierten Wert an den Raspi schickt. Gibt 
es solch einen IC oder bin ich auf dem Holzweg und man löst das Problem 
auf andere Art eleganter? Für eure Antworten und Bemühungen danke ich 
bereits im Voraus.

MfG

Simon

von Soeren K. (srkeingast)


Lesenswert?

Kann man z.Bsp. mit ADC (MCP3204 oder MCP3208 oder MCP3004/MCP3008) und 
ein paar Widerständen machen: R2R-Netzwerk.

Bin mir aber nicht sicher was die Anforderung ist; nur ein Kabel oder 
nur einen Pin benutzen?

von Georg G. (df2au)


Lesenswert?

AD-Wandler für arme Leute.
Ein Pullup am Port, hochohmig, 100kOhm.
Jeder Taster schaltet einen Kondensator nach Masse an diesem Port, 10nF 
und 20nF als Beispiel.
0 ausgeben, sofort auf Eingang schalten und warten, bis 1 gelesen wird.
1 ist sofort da: Kein Taster betätigt.
1 ist nach wenigen Zyklen da: 10nF-Taster ist betätigt.
Es dauert länger, bis die 1 kommt: 20nF-Taster ist betätigt.
Es dauert noch länger: Beide Taster sind betätigt.

von Joe F. (easylife)


Lesenswert?

Wenn kein ADC Eingang, sondern nur ein Digitaleingang zur Verfügung 
steht:

NE555, mit den Tastern die Frequenz ändern. Mit dem Pi die Frequenz 
messen.

von Wolfgang (Gast)


Lesenswert?

Simon schrieb:
> Ich dachte mir, vielleicht gibt es einen IC, an welchem man mehrere
> Schalter anschließen kann und der dann auswertet, welcher gerade
> gedrückt wurde und dann einen codierten Wert an den Raspi schickt.

Wie wäre es mit zwei Dioden? Das sind auch nur vier Beine zu löten.

von Joe F. (easylife)


Lesenswert?

Wolfgang schrieb:
> Wie wäre es mit zwei Dioden?

Details bitte.

von Wolfgang (Gast)


Lesenswert?

Joe F. schrieb:
> Details bitte.

Wenn der Strom "links" rum durchs Kabel fließt, wird über die eine Diode 
in Serie zum Taster 1 der Zustand von Taster 1 abgefragt, wenn der Strom 
"rechts" rum fließt, entsprechend über die zweite Diode der Taster 2.

Andere Mögliochkeit: 3-adriges Kabel verwenden ...

von Joe F. (easylife)


Lesenswert?

Wolfgang schrieb:
> Wenn der Strom "links" rum durchs Kabel fließt
(...)

Bist du sicher, dass du gerade im richtigen Thread postest?
Wie soll denn das alles mit einem Port-Pin funktionieren?

von högli (Gast)


Lesenswert?

Wolfgang schrieb:
> Joe F. schrieb:
>> Details bitte.
>
> Wenn der Strom "links" rum durchs Kabel fließt, wird über die eine Diode
> in Serie zum Taster 1 der Zustand von Taster 1 abgefragt, wenn der Strom
> "rechts" rum fließt, entsprechend über die zweite Diode der Taster 2.
>
> Andere Mögliochkeit: 3-adriges Kabel verwenden ...

Da lohnt sich ignorieren mehr als zu antworten.

von Tiggt im Taltech Nicker (Gast)


Lesenswert?

1-Wire-Bus (Dallas)?

10b2 Ethernet (Coax cable)?

von Wolfgang (Gast)


Angehängte Dateien:

Lesenswert?

Joe F. schrieb:
> Wie soll denn das alles mit einem Port-Pin funktionieren?
"ein Port-Pin" wirfst du hier erstmals in die Runde.

Vielleicht sollte man erstmal ein paar Grundlagen klären.
 - Geht es nun um einen Port oder um einen einzelnen Port-Pin
 - Wieviele Adern hat das Kabel?

högli schrieb:
> Da lohnt sich ignorieren mehr als zu antworten.

Sorry, wenn ich dich mit der Kurzbeschreibung etwas überfordert habe ...

von Carsten R. (kaffeetante)


Lesenswert?

Wolfgang schrieb:
> Joe F. schrieb:
>> Details bitte.
>
> Wenn der Strom "links" rum durchs Kabel fließt, wird über die eine Diode
> in Serie zum Taster 1 der Zustand von Taster 1 abgefragt, wenn der Strom
> "rechts" rum fließt, entsprechend über die zweite Diode der Taster 2.
>
> Andere Mögliochkeit: 3-adriges Kabel verwenden ...

Versuch das mal aufzubauen. ^^

Nette idee, aber so geht es leider nicht. Das wirst du in dem Moment 
merken indem du es mal aufzeichnest und durchspielst.

die beiden besten Vorschläge sind bislang:

Analogwert lesen oder ohne ADC das Zeitverhalten beobachten.

Wolfgang schrieb:
>> Wie soll denn das alles mit einem Port-Pin funktionieren?
> "ein Port-Pin" wirfst du hier erstmals in die Runde.

Ok, das wörtliche PIN hat gefehlt, aber bei einem Port mit mehreren Bits 
ist die Aufgabe ohne Witz.

: Bearbeitet durch User
von Wolfgang (Gast)


Lesenswert?

Carsten R. schrieb:
> Nette idee, aber so geht es leider nicht. Das wirst du in dem Moment
> merken indem du es mal aufzeichnest und durchspielst.

Und warum nicht? Spiel das mal durch.

Abfrage Taster 1:
GPIO2 als Ausgang auf Low, Pegel GPIO1 lesen

Abfrage Taster 2:
GPIO1 als Ausgang auf Low, Pegel GPIO2 lesen

Das ganze nennt sich dann Zeitmultiplex

von Carsten R. (kaffeetante)


Lesenswert?

@Simon

Warum sollen mehrere Taster an einen Pin?
Hast du nur noch einen Pin frei oder geht es darum sich eine Leitung zu 
teilen? Je nachdem eröffnet dieses weitere Alternativen.

von Wolfgang (Gast)


Lesenswert?

Carsten R. schrieb:
> Ok, das wörtliche PIN hat gefehlt, aber bei einem Port mit mehreren Bits
> ist die Aufgabe ohne Witz.

Das kommt auf die Zahl der Adern im Kabel an.
Je wabeliger die Frage gestellt ist, um so mehr Irrläufer entstehen.

von Simon (Gast)


Lesenswert?

Hallo,

wow ich bin begeistert, in welch kurzer Zeit so viele konstruktive 
Antworten gepostet wurden. Nochmals vielen Dank.

@Soeren Die MCP AD-Wandler hatte ich auch schon entdeckt, deren 
Anbindung an den Raspi funktioniert aber nur über SPI, welcher mehr als 
ein Kabel voraussetzt. Trotzdem Danke.

@Georg Dein AD-Wandler für arme Leute sollte so wirklich funktionieren, 
dass werde ich mir mal näher anschauen.

@Joe Wie konnte ich nur den NE555 vergessen? Damit sollte es auf jeden 
Fall funktionieren und scheint mir die "schönste" Lösung zu sein. Vielen 
Dank

@Wolfgang hier muss ich mich den anderen anschließen, ich verstehe die 
deinen Ansatz mit zwei Dioden nicht wirklich. Trotzdem auch dir vielen 
Dank

MfG

Simon

von högli (Gast)


Lesenswert?

Simon schrieb:
> Ich stehe vor folgendem Problem, zwei Taster sollen an "einen" Port des
> Raspberry Pi und dieser soll auswerten welcher Taster gedrückt wurde.

@Wolfgang
Du bist anscheinend der einzige hier, der "zwei" Portpins gelesen hat.

von Carsten R. (kaffeetante)


Lesenswert?

@Wolfgang

Da stimme ich dir völlig zu, darum auch meine Frage nach dem Warum?

Was das andere betrifft, so haben wir aneinander vorbeigeredet. Du 
benutzt zwei Pins.

@ Simon

Das Warum ist noch immer offen. Ich kann nur aus dem Zusammenhang 
erraten, daß du nur noch einen Pin am Raspi frei hast.

: Bearbeitet durch User
von Simon (Gast)


Lesenswert?

@Carsten,

es geht um zwei Klingeltaster welche ihr Signal an den Raspi schicken 
sollen. Ich hab leider nicht die Möglichkeit einen weiteren Klingeldraht 
zu verlegen ohne das halbe Haus ein zu reißen.

von Butsu (Gast)


Lesenswert?

Also geht es um ein 2-adriges kabel, du kannst aber zwei Pins benutzen?

von Joe F. (easylife)


Lesenswert?

Simon schrieb:
> es geht um zwei Klingeltaster welche ihr Signal an den Raspi schicken
> sollen. Ich hab leider nicht die Möglichkeit einen weiteren Klingeldraht
> zu verlegen ohne das halbe Haus ein zu reißen.

Hihi, Wolfgang kann als einziger hellsehen...
Bashing einstellen!

von Isolator (Gast)


Lesenswert?

Das ist eben der Knackpunkt. Wie viele Adern hat das Kabel, der 
Klingeldraht?

Aus Wikipedia: "Als Kabel wird allgemein ein mit Isolierstoffen 
ummantelter ein- oder mehradriger Verbund von Adern (Einzelleitungen) 
bezeichnet, welcher der Übertragung von Energie oder Information dient."

"Draht ist in der Regel dünn, lang und biegsam geformtes Metall oder 
Kunststoff mit oft kreisförmigem Querschnitt. " - Also eine einzelne 
Ader.

Ich weiß, dass vermutlich wieder einige Besserwisser, Egomanen und 
Glaskugelbesitzer behaupten werden, dass völlig klar ist, was sie 
persönlich vermutet oder geraten haben. Aber es bleibt der Fakt, dass 
die Darstellung mindestens widersprüchlich, eher aber unvollständig ist.

Was den TO angeht, kann man ihm das eigentlich nicht vorwerfen. Da kann 
man sich schon mal irren und annehmen, dass die Bezeichnung bezüglich 
der relevanten Fakten eindeutig ist. Aber das ist sie nicht.

von Wolfgang (Gast)


Lesenswert?

Simon schrieb:
> es geht um zwei Klingeltaster welche ihr Signal an den Raspi schicken
> sollen. Ich hab leider nicht die Möglichkeit einen weiteren Klingeldraht
> zu verlegen

So langsam kommt doch Licht ins Dunkel ;-)

Simon schrieb:
> @Wolfgang hier muss ich mich den anderen anschließen, ich verstehe die
> deinen Ansatz mit zwei Dioden nicht wirklich.

Die Sache mit den Dioden funktioniert so, dass derselbe Draht 
nacheinander für zwei verschiedene Stromrichtungen benutzt wird. Über 
die Dioden wird jeder Stromrichtung einer der beiden Taster zugeordnet. 
Der Raspberry läßt durch Schalterei an zwei GPIO-Pins abwechselnd den 
Strom in der einen oder anderen Richtung fließen und guckt dabei den 
Pegel am anderen der beiden Port-Pins an (wie bei Anfrage eines 
Einzeltasters). Damit fragt man dann unter Verwendung eine 2-adrigen 
Kabels beide Taster immer abwechselnd ab.

von Simon (Gast)


Lesenswert?

ok, ich hab mich da wirklich unklar ausgedrückt. Das Wort Kabel ist in 
dem Zusammenhang wirklich schlecht gewählt. Um es jetzt eindeutig zu 
machen:Es handelt sich um eine Ader die ich zur Verfügung habe.

von Erwin (Gast)


Lesenswert?

Mit einer Ader alleine kann aber kein Strom fließen. Dazu wird auf jeden 
Fall ein Bezugspunkt benötigt (GND). Du meinst vermutlich eine 
Signal-Ader und dazu eine Masse-Ader. Richtig?

von Simon (Gast)


Lesenswert?

@Erwin richtig, da hast du natürlich recht.

von Iolator (Gast)


Lesenswert?

Simon schrieb:
> ok, ich hab mich da wirklich unklar ausgedrückt. Das Wort Kabel ist in
> dem Zusammenhang wirklich schlecht gewählt. Um es jetzt eindeutig zu
> machen:Es handelt sich um eine Ader die ich zur Verfügung habe.

Hm. Bist Du da GANZ sicher?
Falls ja, dann gibt es keine Lösung, denn mit nur einer leitenden 
Verbindung kannst Du keinen Stromkreis herstellen.

Schau Dir bitte mal das oberste Bild in dem Artikel 
https://de.wikipedia.org/wiki/Stromkreis an. Dort siehst Du drei 
Adern. Eine zwischen der Spannungsquelle und der Lampe, eine zweite 
zwischen der Lampe und dem Schalter und die dritte zwischen Schalter und 
Spannungsquelle.
Denke Dir die Lampe als Klingel. Den Schalter als Klingeltaster. Denke 
Dir die Spannungsquelle und die Klingel nahe beieinander (etwas einige 
Zentimeter bis zu einem Meter, wie es häufig in Wohnungen der Fall ist). 
Dann ist die eine Verbindung zwischen Klingel und Spannungsquelle ebenso 
kurz. Dennoch hast Du zwei Adern zum Schalter. Eine von der 
Spannungsquelle zum Taster. Eine zweite vom Taster zur Klingel. Diese 
beiden führen meistens bis in Deine Wohnung.

Ist das bei Dir so? Oder anders?


An sich wäre eine Ader auch unüblich für eine Verkabelung, die 
zwischen Klingel und Klingeltaster besteht (oder bestanden hat). 
Andererseits ist es auch nicht ausgeschlossen, dass die zweite 
Verbindung für Dich nur an den Endpunkten zugänglich ist und auf einem 
Potential liegt. Wo ist denn der Klingeltrafo? Wo die Klingel?

von Isolator (Gast)


Lesenswert?

Ich sehe Du hast die Frage beantwortet, in dem Du Erwin antwortetest.

OK. Also zwei Adern.

von Isolator (Gast)


Lesenswert?

Gut. Dann ist Wolfgangs Lösung die einfachste und für einen Anfänger 
auch leicht zu verstehen. Brauchst Du zu der Lösung noch weitere 
Erklärungen? Dann frage bitte.

von Soeren K. (srkeingast)


Lesenswert?

Mit 2 Adern geht's selbstverständlich auch mit ADC; der ADC sitzt dann 
einfach am Raspberry. Der neue analoge Eingang (du hast dann übrigens 
noch 3 oder 7 übrig für andere Sachen) bekommt dann z.Bsp. 1.5V oder 3V, 
je nach Wahl deines R2R Netzwerk.

von Isolator (Gast)


Lesenswert?

Zweifellos funktioniert es auch mit einem AD-Wandler und R2R-Netzwerk.

Einem Anfänger aber ist es vielleicht nützlich, wenn er die potentiellen 
Schwierigkeiten und die notwendigen Schritte vergleichen kann.

1. Wolfgangs Lösung
a) Schaltplan kann einfach nachgebaut werden.
b) Zum Verständnis und Implementierung der Funktion ist die Kontrolle 
der Port-Richtungen sowie die Funktionsweise von Dioden notwendig.
c) Kabelverbindungen sind an sich nicht perfekt. Die Toleranz der 
Eingänge mit der High und Low unterschieden werden spielt eine Rolle. 
(Siehe unten bei Sörens Lösung). Leitungslänge spielt bei den üblichen 
Längen fast keine Rolle.

2. Sörens Lösung
a) Schaltplan ist "komplizierter". Je nach Erfahrung wird evtl. eine 
Schwelle überschritten, die kein Verständnis mehr erlaubt.
b) Neben der Port-Kontrolle ist auch die AD-Wandlung zu implementieren 
(hat der Pi einen AD-Wandler? Keine Ahnung) und/oder die Schnittstelle 
zu dem Wandler sowie die Berechnung des R2R-Netzwerkes (dazu gibt es 
allerdings auch Applets im Netz).
c) Je nach Auslegung des R2R-Netzwerkes kann man den Einfluss von 
imperfekten Kabelverbindungen verringern. In dem man höhere Ströme 
fliessen lässt. Aber dazu muss man wissen was man tut. Leitungslänge 
begrenzt aber den Spielraum.

Ich will mich hier nicht für eine der beiden Lösungen aussprechen. 
Mindestens aber wollte ich einen Eindruck vermitteln was die 
Unterschiede sind.

von Soeren K. (srkeingast)


Lesenswert?

Isolator schrieb:
> Ich will mich hier nicht für eine der beiden Lösungen aussprechen.
> Mindestens aber wollte ich einen Eindruck vermitteln was die
> Unterschiede sind.

Danke für deine ausführliche Antwort für ihn! Klar ist Wolfgangs Lösung 
einfacher, ich wollte meine nur auch noch einmal für ihn ausführen.

von Joe F. (easylife)


Lesenswert?

Eine weitere Frage, die sich mir förmlich aufdrängt...

Was macht dann eigentlich der Raspberry Pi?
2 unterschiedliche Klingeln ansteuern?
Das könnte man (auf Wolfgangs Schaltung basierend) auch noch einfacher 
haben... ;-)

: Bearbeitet durch User
von WehOhWeh (Gast)


Lesenswert?

Viel geht schon mit One-Wire Portexpandern:
https://www.maximintegrated.com/en/products/digital/memory-products/DS2408.html

... das wäre dann ein Beispiel für deinen IC.

Ich denke, eine One-Wire Lip für den Raspberry wird sich auftreiben 
lassen. Theoretisch könnte man versuchen, das hier anzupassen:
https://www.kompf.de/weather/pionewiremini.html

von Mark S. (vdb)


Lesenswert?

ich bin der Suche auf diesen Beitrag gestoßen, denn ich habe ein 
ähnliches Problem und bevor ich Wolfgangs-Dioden Lösung ausprobieren 
wollte ich mir noch Expertenrat einholen.

Situation:
Ich habe am Haus einen Sickerschacht mit ein Tauchpumpe. Dorthin führt 
ein 5-adriges Stromkabel (1,5mm^2) von denen 3 Adern die Pumpe mit Strom 
versorgen. Ein weiters Kabel zu legen ist sehr auswändig und steht außer 
Disskussion. Zudem herrscht in dem Schacht ein sehr 
Elektronik-unfreundliches Klima (feucht) so das ich dort keine 
zusätzliche Elektronik nebst Netzteil installieren möchte.
Die Leitung ist etwa 30m lang, die Tauchpumpe hat einen Nennleistung von 
300W jedoch sicher einen höheren Anlaufstrom.

Nun möchste ich zwei Schwimmschalter im Schacht installieren:
1. Wasserstand unter dem Einschaltpunkt der Tauchpumpe
2. Wasserstand über dem Einschaltpunkt der Pumpe

Schalter 1 sagt mir ob überhaupt Wasser im Schacht vorhanden ist, 
welches nicht von selbst versickert.
Schalter 2 sagt mit ob die Wassermenge entweder die Pumpenleistung 
übersteigt oder wenn dauerhaft an ob die Pumpe evtl. defekt ist, oder 
hängt.

Ein Raspberry PI soll diese beiden Signale auswerten und regelmäßig in 
eine Datei zur Auswertung sichern.

Ich habe Bedenken bezüglich der Leitungslänge und dem induzierten Strom 
auf die Steuerleitung, wenn die Pumpe anspringt.

Auf Seite des Raspi sind noch min 3 GPIOs frei und dort liesse sich auch 
eine aufwändigere Schaltung (24V ist vorhanden) mit Optokopplern zu 
galvanischen Trennung aufbauen.

Ideal wäre noch ein 3ter Schwimmschalter, der sich zwischen 
Aus-/Einschaltpunkt der Pumpe befindet und anhand dessen sich auf die 
Einschaltdauer der Pumpe schliessen lässt.

Es muss aber alles über 2 Drähte...

Danke für die Tipps und Grüße
vdb

von Stefan F. (Gast)


Lesenswert?

Das Thema ist seit über einem Jahr abgeschlossen. Eröffne bitte einen 
eigenen Thread.

von Heinz (Gast)


Lesenswert?

Ich weiss nicht ob Du jetzt nen neuen Thread aufgemacht hast, aber 
letztendlich ist doch Dein Problem ganz einfach, sofern Deine 
Schwimmerschalter für 230V zugelasen sind

- die Pumpe hat L, N und PE, sicher wird nur L geschaltet, N ist also 
immer vorhanden
- die beiden Schwimmerschalter an N, dann die beiden geschaltete N über 
die freien Adern zurück

- im Haus 2 Kleine Trafos zwischen L und den geschalteten N, 
Sekundärseitig dann zum Raspi

von Mark S. (vdb)


Lesenswert?


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.