Forum: Mikrocontroller und Digitale Elektronik 2 Taster an Zweidrahtverbindung mit einer Ader als Masse


von Tjareson T. (tjareson)


Lesenswert?

Hallo,

mich beschäftigt momentan folgende Aufgabenstellung:

An einem Mikrocontroller sind zwei Bedieneinheiten über je ein 4-adriges 
Kabel angeschlossen.
Eine der Adern ist Masse. Zwei weitere Adern werden zur Ansteuerung von 
je zwei LEDs pro Bedieneinheit genutzt. (LEDs werden u.a. mit 
unterschiedlichen Helligkeiten angesteuert usw.)

Über die vierte Ader sollen nun je zwei Taster pro Bedieneinheit 
abgefragt werden. Am Mikrocontroller stehen noch zwei bidirektionale 
Ports zur Verfügung.

Erster Ansatz von mir war, eine Funktion des Microcontrollers zu nutzen 
(Basic Stamp 1), bei der mittels RC Glied ein Widerstandswert eingelesen 
werden kann. Das RC Glied muss dabei gegen Masse an den Port geschaltet 
werden, hätte also prima gepasst. Und ich hätte über nur einen Port 
recht einfach 4 Taster einlesen können, da einfach 4 verschiedenen 
Widerstände an einem Kondensator am Microcontroller-Port gegen Masse 
geschaltet werden.

Prinzipiell funktioniert das auch, praktisch aber leider nicht, da bei 
Kabelverbindungen um ca. 2 Meter sich irgendwie andere Kapazitätswerte 
einkoppeln, welche die Messung des Mikrocontrollers unvorhersagbar 
machen. (Beispielsweise halbieren sich die Messwerte, wenn eine der LEDs 
eingeschaltet ist.) Leider kann ich das Kabel selbst nicht auswechseln, 
da fest verlegt.

Gibt es nicht irgendeine andere einfach Möglichkeit, zwei Taster über 
eine Zweidrahtverbindung auszulesen, wenn eine Ader davon Masse ist?

Ich hatte schon an irgendetwas mit Dioden gedacht, aber dazu wäre 
wahrscheinlich eine symmetrische Spannungsversorgung notwendig, scheint 
alles recht aufwendig für das Abfragen von ein paar Tastern.

Hat irgendjemand noch eine Idee dazu?
OneWire hatte ich schon schon durch: unterstützt Basic Stamp 1 leider 
nicht und der Umweg über OneWire->RS232-Wandler geht leider auch nicht, 
da der Mikrocontroller serielle Verbindungen nur bis 2400 baud kann.

Beste Grüße
Tjareson

von Stefan K. (s-light)


Lesenswert?

Hallo Tjareson,

mir ist auch spontan nur die Variante mit Pro Taster einem Anderen 
Widerstand eingefallen -
hast du noch einen AnalogIn zu Verfügung? damit müsstest du genau genug 
die verschiedenen Widerstände und Widerstandskombinationen der vier 
Taster Messen können - auch könnte man dabei ja einen automatischen 
Abgleich des 'Leitungsfehlers' machen. immer wenn definitiv nix gedrückt 
ist misst man auch und kann so auswerten was der Grundwert ist - 
getriggert wird dann nur bei den passenden 'Deltas'.

Sonnige Grüße
Stefan

von Peter D. (peda)


Lesenswert?


von Easylife (Gast)


Lesenswert?

Du könntest auch die 2 LED Leitungen nehmen, um sie parallel für Clock 
Signale für ein 74xx165 Schieberegister zu nutzen.

Du würdest periodisch die LEDs kurz ausmachen, mit einer schnellen Clock 
kurz die 8 Bit des SR "reinclocken", und danach mit den LEDs normal 
weitermachen.
Das ganze dauert mit einer 1 MHz Clock unsichtbare 10us.

Die 4. Leitung nimmst du dann als Eingang für die seriellen Daten des 
Schieberegister.

von Helge A. (besupreme)


Lesenswert?

Gehe auf eine niedrigere Impedanz. Widerstandswert / 10, Kondensatorwert 
* 10.

Hast du einen ADC in deinem Chip?

von Tjareson T. (tjareson)


Lesenswert?

Hallo,

der Vorschlag von Helge hat die Lösung gebracht:

Beschaltungsvorschlag vom Hersteller war ein RC-Glied mit 0.1μF mit 
Widerstandswerten von 5-50k.
Der Controller ist dieses Teil hier:
https://wilke.de/embedded-computer/verschiedenes.html
("Basic Briefmarke 1" - schon ein etwas älteres Modell, aber für den 
Anwendungsfall auch fast schon überdimensioniert.)

Ich habe jetzt Werte mit 4.7μF und 150 - 220 - 470 Ohm genommen und an 
den AD-Eingang des Controllers auch noch einen 100k Pull-Down gegen 
Masse geschaltet, da sonst der Eingang ohne Tastendruck in der Luft 
hängt. Jetzt klappt es tadellos und störungsfrei.

Zusätzliche Erkenntnis, die sich noch eingestellt hat: selbst über das 
Kabel des Programmieradapters vom Hersteller koppeln sich mitunter 
Störungen ein, wenn man in der Nähe Netzspannung schaltet.

Vielen Dank für die zahlreichen weiteren Tipps und Antworten.


Beste Grüße.
Tjareson

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.