www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 4 Taster gegenseitig verriegeln


Autor: Eisenbahner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

möchte 4 Taster gegenseitig verriegeln, sodass bei drücken eines 
Taster's
der jeweilige Ausgang "High" geht und die anderen "Low".

     A1 A2 A3 A4
S1 = 1  0  0  0
S2 = 0  1  0  0
S3 = 0  0  1  0
S4 = 0  0  0  1

Des weiteren sollte der Zustand so bis zum nächsten Impuls eines anderen 
Tasters gehalten werden.

Gibt es hierfür einen Baustein, oder geht nur prog. Logik?

Gruß Modelleisenbahner

Autor: Gerd Vg (gerald)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Eisenbahner,

kodieren kann man die Signale mit einem Baustein 74HC154, 
Haltefunktionen gehen im Prinzip mit dem Baustein 74HC74 und bischen 
Logik drumherum.


Einfacher geht es mit einem AVR-Controller, bischen Programm rein und 
fertig, ergibt EIN Baustein.
Quarz und Krempel nicht notwendig, naja Abblockkondensatoren natürlich 
noch.

Gruss

Gerd

Autor: Micha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sowas macht man ganz einfach mit einem SAS580
Ein IC,paar Widerstände und C`s und fertig.

Autor: Sonic (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das meistert der kleinste AVR mit Bravour, Tiny11 (falls man den noch 
kriegt), oder Tiny12, gibt's im DIP8 oder SOIC8 (SMD)-Gehäuse, ist auch 
nur noch ein 100nF Blockkondensator erforderlich. Kleiner geht's wohl 
kaum!

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sonic wrote:
> Das meistert der kleinste AVR mit Bravour, Tiny11 (falls man den noch
> kriegt), oder Tiny12, gibt's im DIP8 oder SOIC8

Pins zählen ist wohl nicht Deine Stärke :-)
Der Tiny11 hat max 6 IOs, für 4 Tasten und 4 Ausgänge braucht man aber 
doch 8.
Also muß es schon ein Tiny26 oder 2313 sein.


Peter

P.S.:
Oder man nimmt 2*Tiny11, die über eine Leitung verbunden sind.

Autor: Sonic (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es war nirgends die Rede von 4 Ausgängen, nur von 4 Tastern. Die Ausgabe 
des Ergebnisses ist was Anderes! Es können die 6 IOs auch gleichzeitig 
als Ein- und Ausgang arbeiten. Die geforderte Funktion kann durchaus 
umgesetzt werden!

Autor: Kliby (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eisenbahner (Gast)
nim doch einfach ne kleine sps... bei ebay müsstest du was günstiges 
finden, sind einfach zu programmieren, viel weniger aufwand als mit 
einem uP...

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Also muß es schon ein Tiny26 oder 2313 sein.

Oder ein Tiny24.

Autor: Camel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe so eine Funktion mal in einem CMOS-Logikbaustein gesehen, komme 
aber nicht mehr drauf.
Von dieser Lösung weis niemand?

Camel

Autor: dernixwois (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie wäre es mit einem EPM 7032 SLC44 von Altera! Mit dem Baustein lassen 
sich solche Loigik Gatter programmieren wie RS-Flip Flop usw.

Dazu benötigt man lediglich Quartus von Altera Freeware und einen 
Programieradapter.

Allerdings kommt dir µC billiger oder ein paar andere Käfer :-)

dernixwois

Autor: Pöhli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sonic hat schon recht, 4 Tasten abfragen brauch man nur 4 Pins. Die 
Software gibts fertig im Netz.

Verriegelung und Taste merken mach ich meist dadurch das Tastatur 
externen Interrupt auslöst in dem die Abfrage abläuft und ich mir in 
einem separaten Statusregister die Taste merke.

Was letztendlich besser ist hängt wohl in dr Realität weniger von der 
Anzahl der Pins ab als den Fähigkeiten und Vorlieben des Umsetzenden.

Autor: Camel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab nochmal drüber nachgedacht!
Es müsste doch eigentlich auch mit einem BCD/DEZ Decoder (7442) gehen, 
oder?

Autor: Manuel (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Ich habe mir über ähnliches Problem auchmal den Kopf zerbrochen.
Die angehängte schaltung ist für vier Taster (schlieser), die wie die 
alten bekannten Radiobuttons rausspringen, sobald ein anderer gedrückt 
wird.
Es sind also vier eingänge mit pullup und vier ausgänge für LED´s.
Desweiteren sind noch 2 binärausgänge dabei um damit auf nen MC zu 
gehen.


Ich hoffe es hilft!

Manuel

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sonic wrote:
> Es war nirgends die Rede von 4 Ausgängen, nur von 4 Tastern.

Komisch, ich sehe da aber S1..4 und A1..4, das macht zusammen 8.
Und das nur ein Ausgang high sein darf steht auch explizit da.

Ist das vielleicht so formatiert, daß es nicht mit jedem Browser 
sichtbar ist ?


Peter


Autor: Sonic (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nu sieh' das mal nicht so verbissen, Peter!
Dann schiebste mit den übrigen 2 Bit eben das Ergebnis in ein 
Schieberegister, haste halt 'n Bauteil mehr und wenn's brennt 8 Ausgänge 
(je nach Schieberegister).
Nix für ungut, lesen und Zählen kann ich schon.

Autor: Jörn Paschedag (jonnyp)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Camel
Ich weiss auch von dieser Schaltung, ist aber schon lange her. Könnte 
mal im Elektor gewesen sein, aber ich komm nicht drauf, welcher chip es 
gewesen ist, geschweige denn, wo ich die verdammte Schaltung gelassen 
habe. Sorry.

Autor: Andi (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hier eine Lösung mit einem CMOS-Baustein 4017. Zusätzlich wird nur noch 
ein Taktsignal benötigt (so 100Hz bis 10kHz sollte gehen).
Beschreibung: CP0 ist der Takteingang, der Counter zählt aber nur wenn 
/CP1 auf LOW ist. Der Zähler ist ein Decade-Counter es geht also 
nacheinander einer der Ausgänge Q0..Q9 auf HIGH die anderen sind LOW. 
Wird eine Taste mit Ausgang = LOW gedrückt zählt der Counter so lange 
bis da ein HIGH erscheint und stoppt dann. Auch bei losgelassener Taste 
ist CP1=High (PullUp).
Die Schaltung lässt sich auf bis zu 10 Taster erweitern!

Gruss Andi

Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Für die Taster-Eingänge bietet sich ein Prioritäts-Encoder 74HC147 bzw. 
74HC148 an.

Autor: Manuel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Andi:

Bei diesem chip sind aber keine ausgänge, die gesetzt oder zurückgesetzt 
werden oder?

Autor: Andi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Manuel
Doch nur einer der Ausgänge Q0..Q3 (..Q9) werden durch das Drücken der 
entsprechenden Taste auf HIGH gesetzt, die anderen sind auf LOW. Die 
Umschaltung geschieht allerdings nicht sofort, sondern die 
dazwischenliegenden Ausgange werden nacheinander kurz aktiviert (im Takt 
des Clocks). Wird von Q0 auf Q3 umgeschaltet werden ganz kurz Q1 und 
dann Q2 aktiviert (=HIGH), bei Q3 stoppt dann der Zähler und Q3 bleibt 
auf HIGH bis wieder eine andere Taste gedrückt wird.

Gruss Andi

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mitm ATtiny2313:
#include <avr\io.h>


int main( void )
{
  unsigned char in;

  PORTD = 0;
  DDRD = 0x0F;

  for(;;){
    in = PINB & 0x0F;
    switch( in ){
      case 1:
      case 2:
      case 4:
      case 8: PORTD = in;
    }
  }
}


Peter

P.S.:
Ist wie im Fernsehquiz (wer zuerst drückt, gewinnt).

Autor: Εrnst B✶ (ernst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jup, bau dir nen ATTiny ein... ist billiger als das TTL-Grab für die 
diskrete Lösung mit Flipflops, hat kein "Flackern" auf den Ausgängen wie 
die Counter-Variante, und der Hauptvorteil:

Wenn du erstmal nen µC auf der Platine hast, fallen dir sicher noch 1000 
andere Sachen ein, die der miterledigen könnte.

(z.B Speichern des Tastenzustandes im EEProm, damit wie bei den "realen" 
Radioknöpfen der Zustand auch beim Ausschalten erhalten bleibt...)

/Ernst

Autor: Philipp Sªsse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Warum der Rückzieher, Sonic? Üblicherweise müssen die Low-Ausgänge ja 
keinen nennenswerten Strom aufnehmen. Also setzt man die als Eingänge 
und zieht sie mit externem Widerstand low. Die Taster ziehen die 
Ein-/Ausgänge dann auf high, was der µC auswerten kann und was den 
Ausgang nicht stört (wird ja anschließend ohnehin auf high geschaltet).

Was man nicht detektieren kann, ist der Taster am aktiven Ein-/Ausgang 
-- spielt aber auch keine Rolle, da laut Aufgabenstellung das Drücken 
vom Taster des bereits aktiven Ausgangs keine Funktion hat (Ausgang 
bleibt aktiv).

Die Lösung geht nur dann nicht, wenn

a) beim passiven Ausgang dauerhaft ein nicht vernachlässigbarer Strom 
fließen soll (es unzumutbar ist, den aktiven µC-Pin permanent gegen den 
kleinen PullDown-Widerstand arbeiten zu lassen).

b) ausgeschlossen werden muß, daß kurzzeitig oder bei Fehlbedienung 
(mehrere Tasten gleichzeitig drücken) mehrere Ausgänge aktiv sind.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.