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
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?
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.
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.
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.
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 ...
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?
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.
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 ...
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
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
@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.
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.
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
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.
@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
@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.
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!
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.
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.
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.
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?
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?
Ich sehe Du hast die Frage beantwortet, in dem Du Erwin antwortetest. OK. Also zwei Adern.
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.
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.
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.
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.
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
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
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
Das Thema ist seit über einem Jahr abgeschlossen. Eröffne bitte einen eigenen Thread.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.