Forum: Mikrocontroller und Digitale Elektronik Wechselschalter mit 3 gleichberechtigten Tastern und FF


von Mike (Gast)


Lesenswert?

Hallo,

ich habe gerade ein Problem, bei dem ich nicht recht weiter kommt. 
Vielleicht könntet Ihr mir einen kleinen Schubs in die richtige Richtung 
geben.

Um eine Schaltung sicher gegen Fehlbedienung zu machen, möchte ich drei 
Bustreiber über drei Taster schalten können. Jeder der drei Taster soll 
gleichberechtigt sein. Jedoch darf immer nur ein Taster einen der 
Bustreiber freischalten. Die gleichzeitige Betätigung von mehreren 
Tastern ist unzulässig. Wird nach dem aktivieren eines Bustreibers der 
Taster für einen anderen Treiberstein betätigt, so müssen alle Treiber, 
ausser dem zu wählenden, deaktiviert werden. Zudem braucht die Schaltung 
einen definierten Ausgangszustand.

In etwa so:
1=high/gedrückt/aktiv, 0=low/offen/inaktiv

Ausgangszustand

Taster1: 0 --> Bustreiber1: 0
Taster2: 0 --> Bustreiber2: 0
Taster3: 0 --> Bustreiber3: 0

ein Taster gedrückt:

Taster1: 1 --> Bustreiber1: 1
Taster2: 0 --> Bustreiber2: 0
Taster3: 0 --> Bustreiber3: 0

ein anderer Taster gedrückt:

Taster1: 0 --> Bustreiber1: 0
Taster2: 1 --> Bustreiber2: 1
Taster3: 0 --> Bustreiber3: 0

wieder ein anderer Taster gedrückt:

Taster1: 0 --> Bustreiber1: 0
Taster2: 0 --> Bustreiber2: 0
Taster3: 1 --> Bustreiber3: 1

zwei oder mehr Taster gedrückt:

Taster1: 1 --> Bustreiber1: 0
Taster2: 1 --> Bustreiber2: 0
Taster3: 0 --> Bustreiber3: 0

Ich habe versucht, eine solche Logik zunächst aus Einzelgattern zu 
realisieren. Dann habe ich meine Versuche auf RS- und D-FlipFlops 
erweitert. Mein Problem besteht nun darin, dass jeder Taster die 
bisherigen Schaltzustände wieder negieren können muss.

Wie würdet Ihr solch eine Aufgabe lösen? Habt Ihr vielleicht ein paar 
Schlagworte für mich, denn die G*****-Suche war bisher auch nicht 
sonderlich erfolgreich.

Mit Gruß

Mike

von Karl H. (kbuchegg)


Lesenswert?

8 aus 3 Dekoder.
Die Bustreiber kommen nur an die Ausgänge, die von einem einzelnen 
Taster 'angesteuert' werden. Zwischen den Dekoder und die Treiber kommt 
jeweils ein Flip-Flop, um sich den Zustand zu merken.
Wird eine andere Taste gedrückt, so schaltet der entsprechende 
Decoderausgang
* sein eigenes Flip-Flip mittels Set auf 1
* die anderen Flip-Flips mittels deren Reset auf 0.

Oder aber ich programmier mir einen kleinen Tiny.

von Mike (Gast)


Lesenswert?

Hallo,

vielen Dank für die schnelle Antwort. Ich hatte an einen solchen 3 auf 8 
auch schon gedacht, aber nicht weiter verfolgt. Ich werde das gleich mal 
versuchen.

Ja, auch an einen Atmel dachte ich schon. Da auf der Platine jedoch 
ebenfalls ein sehr empfindlicher Messverstärker liegt, würde ich gerne 
alles, was irgendwie schwingt, gerne vermeiden. Daher die Überlegungen 
zu den FlipFlops und Logikgattern. Die erzeugen nur selten Stromspitzen 
durch Umschaltvorgänge. Die Datenleitungen und die Bustreiber muss ich 
leider auf der Platine haben. Sie werden aber in die dreckige Ecke 
verbannt :).

Mit Gruß

Mike

von Peter D. (peda)


Lesenswert?

Mike schrieb:
> würde ich gerne
> alles, was irgendwie schwingt, gerne vermeiden.

Dazu gibts den Pin-Change Interrupt. Der ATtiny13 wacht auf, wenn sich 
ein Eingang ändert, verarbeitet ihn und geht wieder schlafen. Der 
CPU-Takt ist dann wieder aus.


Peter

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.