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
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
Sowas macht man ganz einfach mit einem SAS580 Ein IC,paar Widerstände und C`s und fertig.
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!
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.
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!
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...
Ich habe so eine Funktion mal in einem CMOS-Logikbaustein gesehen, komme aber nicht mehr drauf. Von dieser Lösung weis niemand? Camel
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
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.
Hab nochmal drüber nachgedacht! Es müsste doch eigentlich auch mit einem BCD/DEZ Decoder (7442) gehen, oder?
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
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
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.
@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.
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
@ Andi: Bei diesem chip sind aber keine ausgänge, die gesetzt oder zurückgesetzt werden oder?
@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
mitm ATtiny2313:
1 | #include <avr\io.h> |
2 | |
3 | |
4 | int main( void ) |
5 | {
|
6 | unsigned char in; |
7 | |
8 | PORTD = 0; |
9 | DDRD = 0x0F; |
10 | |
11 | for(;;){ |
12 | in = PINB & 0x0F; |
13 | switch( in ){ |
14 | case 1: |
15 | case 2: |
16 | case 4: |
17 | case 8: PORTD = in; |
18 | }
|
19 | }
|
20 | }
|
Peter P.S.: Ist wie im Fernsehquiz (wer zuerst drückt, gewinnt).
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
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.
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.