"Wer wird Millionär"-Schaltung / Schieberegister

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From German to

Threaded View
Hallo,

gleich mal vorneweg: Ich hab zwar von Programmierung Ahnung, aber nicht von
Elektronik. Also gleich mal Entschuldigung für dumme Fragen...

Folgende Situation:
Ich will den Zustand von etwa 120 Tastern an meinem PC abfragen (ähnlich dem
Studiopublikum bei "Wer wird Millionär"). Meine Idee war, die Tastenzustände
über 15 kaskadierte 8bit-Schieberegister (4021) abzufragen und über die
serielle Schnittstelle an den PC auszugeben.

- Macht das so Sinn?
- Gibt es Schieberegister mit mehr Eingängen als 8 (habe keine gefunden)?
- Kann man so viele Schieberegister kaskadieren?
- Sehe ich das richtig, dass die Kaskade von PIN 11 (serieller Eingang ?) an
PIN 3 (serieller Ausgang) geschaltet wird?

Vielen Dank für Eure Hilfe! Jeder Gedanke ist willkommen.

Seb



Re: "Wer wird Millionär"-Schaltung / Schieberegister
Quoted text here. Click to load it

Ja, parallele statt serielle ist einfacher zu programmieren.

Quoted text here. Click to load it

Ja, aber preislich loht das nicht. Der 74HC165 ist je nach Laden vielleicht
etwas billiger weil nur fuer 5V, ansonsten identisch mit dem 4021.

Quoted text here. Click to load it

Ja


Ja (wenn mir auch deine Reihenfolge etwas ungewohnt erscheint,
aber Kabel sind gluecklicherweise bidirektional...)

Den Takteingang von allen natuerlich auch verbinden, und den Takt erzeugt dein
Rechner.

Die Taster schalten an +, also muss ein Widerstand von z.B: 10kOhm den Eingang
auf Masse ziehen damit der Eingang bei offenem Taster mit irgendwas verbunden
ist.

+5V
 |
Taster
 +-------4021Eingang
10k
 |
Masse

Zwischen + und Masse des 4021 sollte ein 100nF Vielschicht-Keramik-Kondensator
um Stoerungen zu verhindern, zumindest bei jedem 5ten IC.

Das einzige Problem: Du musst immer wieder deine Schieberegister in den
Rechner einlesen, um kurze Tastendruecke erkennen zu koennen. Bist du
langsamer, koennte ein Tastendruck verloren gehen. Und es wird unmoeglich
festzustellen, wer als 'erster' gedrueckt hat, weil einige beim Einlesen
gleichzeitig umgeschaltet haben koennen. Aber das wird dir bekannt sein.
--
Manfred Winterhoff, reply-to invalid, use mawin at despammed.com
homepage: http://www.geocities.com/mwinterhoff /
We've slightly trimmed the long signature. Click to see the full one.
Re: "Wer wird Millionär"-Schaltung / Schieberegister

Quoted text here. Click to load it

Nichts "macht" Sinn! Es hat einen Sinn oder es hat keinen...


Re: "Wer wird Millionär"-Schaltung / Schieberegister
|>
|> >> - Macht das so Sinn?
|> >
|> > Ja, parallele statt serielle ist einfacher zu programmieren.
|>
|> Nichts "macht" Sinn! Es hat einen Sinn oder es hat keinen...

Tja... Mal wieder ein Zwiebelfisch.

Rainer


Re: "Wer wird Millionär"-Schaltung / Schieberegister
Hmmm
was meinst Du zu Latches?
Du machst sie "auf" und nach der Zeit die das Publikum
hatte um sich zu entscheiden, schliesst Du sie wieder und die
Infos bleiben bestehen. Dann kann man sich sogar zwischendrin
noch umentscheiden.

Gruß
 Tobi




Re: "Wer wird Millionär"-Schaltung / Schieberegister
 (Tobias Aurand)  15.11.03 in /de/sci/electronics:

Quoted text here. Click to load it

Typischer weise kann man das so mit jeden Schiebregister machen.
"Halten Sie ihre Taste gedrückt bis das Lämpchen ausgeht".

Man kann so aber nicht feststellen, wer erster war.
Ich glaube das war bei dem Spiel nötig (Hab mir den Kommerz-Muell
nicht angetan).

Re: "Wer wird Millionär"-Schaltung / Schieberegister
 (Sebastian Schöps)  15.11.03 in /de/sci/electronics:

Quoted text here. Click to load it


Üblicherweise macht man so etwas in dem man
die Taster in einer Matrix anordnet. (Hier die
Entkopplungsdioden nicht vergessen, da ja mehr als 1 Taste
zugleich gedrückt sein darf.

Also 8*8= 16 Pins auf 2 ICs für 64 Taster.

"Einfach so" ein serielles Signal durch die Welt zu schicken
klappt nicht sonderlich gut.
Wenn irgendwo ein Takt verloren geht, fehlt nicht nur diese
"Stimme", sondern alle anderen sind um eine Postion falsch,
ohne das man es bemerken kann.



Quoted text here. Click to load it

Du nimmst einen uC mit einer Echtzeituhr.
Dafür besorgst du dir einen "IP stack" und klatsch einen
Ethernet-Baustein ran.(Leider haben die wenigsten uC Hersteller
die antiquierte serielle Schnittselle inzwischen langsam mal
gegen eine Ethernet getauscht ;-(  Das "Beste" was es gibt ist
wohl CAN-Bus, aber der ist wohl zu zuverlässig wie man ja bei den Autos
lernen musste.)

Wenn jmd. eine Taste drückt wird die Uhrzeit gespeichert
und als (z.B. UDP-)Paket an einen Server gesendet.

Vorteil:
- Es "skaliert" auch bei 300 oder 30000(*) Leute noch.
  Mittels Routing könnten auch 50 Mio Leute abstimmen...
- Der Ausfall eines Taster-Moduls blockiert nicht alle
  299 davor liegenden.
- Ein Fehler in einem Modul verfälscht nicht alle anderen.  
- Du hast auch die genauen Zeitpunkte wann gedrückt worden ist.
  (Man kann Uhren der Tastenmodule bei der Auswertung nochmals
  zeitlich definiert zurücklesen um jede 2deutig zu vermeiden.)
- Es ist wurscht ob jeder Teilnehmer einen Schalter oder
  10 bekommt.  
- Man könnte anonym abstimmen, da irgendwer irgendwo
  sein Gerät anschliessen könnte, aber auf Grund der
  ggf. gewählten Busstruktur dieser Punkt nicht bestimmt
  werden kann/muss. (Man könnte auch fest zuordnen wenn man will,
  aber das hat man heute ja generell)

Ok, der Aufwand ist "etwas" grösser, aber...






(*) das kann natürlich "etwas" dauern (20 byte @ 1MByte/s * 30000 = 600ms),
aber da die Uhrzeit gespeichert wird macht es nix.


Re: "Wer wird Millionär"-Schaltung / Schieberegister
Danke erstmal. Aber du hast vergessen: du hast es mit einem absoluten
Anfänger zu tun... ;-)

Zu der Geschichte mit dem uC:
- Ich habe mal geguckt und finde uCs mit bis zu 53 I/O Pins. Heisst das, ich
brauche für 120 Tastzustände drei so Dinger? Wie synchronisiere ich dann
deren Uhren?
- Oder brauche ich pro Tastermodul ein so uC und wenn ja wo senden die ihre
Daten hin?
- Ist das für einen Anfänger realisierbar (Programmierung des uCs sollte
nicht das Problem sein) oder sollte ich doch lieber die Lösung mit den
Schieberegistern nehmen, die ich immerhin schon verstanden habe?

I blicks no net so ganz, sorry. Danke für eure Hilfe!



Re: "Wer wird Millionär"-Schaltung / Schieberegister
  (Sebastian Schöps)  15.11.03 in /de/sci/electronics:

Quoted text here. Click to load it

Ja, habe ich. sorry.
Aber es lesen hier ja noch andere mit die keine sind
udn die sollen auch unterhalten werden ;-)


Quoted text here. Click to load it

Könnte man machen...

Du könntest aber auch an jedem der IO Pins 3 Tasten legen
und deren 5V jeweils nur kurzzeitig nacheinander anlegen.
(Dioden zur Entkopplung sind nötig)



Quoted text here. Click to load it

Du misst die Zeit die Du zum Abfragen brauchst und fragtst dann die
andere wie spät es ist, subtrahierst die Zeit die die Abfrage brauchte
und stellst Deine Uhr passend.
Das machst Du solange bis die Differenz ausreichend klein ist.
Dazu gibt es einen RfC "NTP network tiem protocol", der aber wohl
"etwas" overpowered wäre.


Quoted text here. Click to load it

So war das gedacht. Idealerweise ein uC mit nur 6 Pins...


Quoted text here. Click to load it

An einen Server, die die Pakete einsammelt.

Du hast quasi ein "Netz" mit 120 PCs die einen
"ping" machen wenn wer die Taste drückt.
Der Server zählt diese "pings".

Das dürfte aber so ziemlich die maximal teuerste Lösung sein,
wenn auch die flexibelste.

(Ist aber nicht ungewöhnlich: Die Lichtbitzer auf Flughäfen werden auch
nicht durch ein Schieberegister aneinander angesteuert, wie man ja
vermuten könnte, sondern jeder Blitzer ist ein eigener Rechner mit
Netzwerkanschluss...)



Quoted text here. Click to load it

Vermutlich nicht.


Naja, stell es Dir nicht soo einfach vor, das Taktsignal
der Schieberegister über zig meter vernüftig und ungestört weiterzuleiten.
Du willst ja nicht von jeder Taste ein extra Kabel zur Auswertebox ziehen?
Wenn doch, macht das Schieberegistern keinen Sinn:
da kannst Du auch multiplexen.

Auch wären evtl. Schieberegister mit einem Einganglatch sinnvoll,
da Du so den Tastenzustand auch mehrfach abfragen kannst, falls etwas
mit der Übertragung schief gegangen ist.
(Man sollte das SR "von hinten" mit einem Muster auffüllen,
das ja nach 120 Takten wieder bei der CPU angekommen sein müsste.
So hätte man eine kleine Chance Übertragungsfehler zu erkennen.)


Re: "Wer wird Millionär"-Schaltung / Schieberegister
On Sat, 15 Nov 2003 23:47:03 +0100, "Sebastian Schöps"

Hi!

Quoted text here. Click to load it

Blick mal auf Deine Tastatur: 102 Tasten, vermutlich.
Blick mal _in_ Deine Tastatur, wenn Du Dich traust: Irgendwo in der
Ecke ein kleiner IC mit deutlich weniger als 102 Anschlüssen.

Das Zauberwort heißt Tastaturmatrix. Nimm mal ein Blatt Papier und
male Dir 4 senkrechte und 4 waagerechte Linien (die senkrechten
kreuzen die waagerechten). Stell Dir vor, die senkrechten sind 4
Ausgänge Deines Controllers und die waagerechten sind 4 Eingänge. Und
jetzt stell Dir vor, auf jedem Kreuzungspunkt sitzt ein Taster, der
die einen mit den anderen verbindet. Dein Controller legt jetzt
nacheinander Spannung auf die Ausgänge (immer nur auf einen
gleichzeitig), und schaut, auf welchen Eingängen sie wieder
zurückkommt. So findest Du nacheinander raus, welche der 16 Taster
gedrückt sind. Da mehrere Taster gleichzeitig gedrückt sein dürfen,
brauchst Du noch je eine simple Dioden in Reihe mit jedem Taster,
damit der Strom nur von den Ausgängen zu den Eingängen fließen kann,
sonst gibts Signalsalat.

Auf diese Weise kannst Du zB mit 16 Ausgängen und 16 Eingängen ganze
16*1625%6 Taster abfragen. Genaugenommen reichen sogar 4 Ausgänge und
16 Eingänge, denn von Deinen 16 Senkrechten ist ja immer nur einer
aktiv, macht 16 Möglichkeiten = 4 Bit. Das "übersetzen" macht ein
4-to-16-Multiplexer (auch line decoder genannt), zB 74154 für wenige
cent.
http://www.semiconductors.philips.com/acrobat/datasheets/74HC_HCT154_CNV_2.pdf

Das ganze geht sehr schnell, immerhin musst Du nur 16 mal einen 16-Bit
Wert lesen, um alle Taster abgefragt zu haben. Schneller jedenfalls,
als 256 mal 1 Bit zu lesen (Schieberegister). Nun kenne ich nicht das
Verhalten von 256 drückenden Menschen, aber wenn denn die Frage
schwierig genug ist, findest Du sicher heraus, wer als erster gedrückt
hat :-)

Die eigentliche Schwierigkeit - egal ob Schieberegister oder Matrix
oder was ganz anderes - sehe ich allerdings in den Unmengen an
Drahtverhau, den Störungen, die Du Dir einfangen willst, den
Kapazitäten der Leitungen,.... Und am Ende hast Du einen
Lottozahlengenerator gebaut, ohne Gewähr, versteht sich. :-)

Gruß,
Michael.

Re: "Wer wird Millionär"-Schaltung / Schieberegister
(Michael Eggert)  16.11.03 in /de/sci/electronics:

Quoted text here. Click to load it



Guter Hinweis.


Bei einer PC Tastatur dürfen aber i.d.R. nur spezielle Tasten
gleichzeitig mit andern gedrückt werden.

Sonst könnte man ja einfach 2 Tastaturen schlachten und mit
60 Kabel jedden Matrixpunkt verlängern...
(Was dem Controler bei mehr als 20cm wohl nicht gefallen wird.
Aber: Versuch macht kluch)


Quoted text here. Click to load it

ACK.


Re: "Wer wird Millionär"-Schaltung / Schieberegister
(Andreas Wenzel)  16.11.03 in /de/sci/electronics:

Quoted text here. Click to load it


Keines bei dem ich alle 102 Tasten drücken musste ;-)

Hast Du Dir mal angesehen wie die Matrix auf der Tastatur verteilt ist?

Die geht nicht einfach 9*8 gerade durch, sondern Tasten die
evtl. doch zusammen mit anderen gedrück werden können liegen
anders. Z.B beim Tippen mit 10 Fingern wäre es sehr unpraktisch
wenn rechts und links auf derselben Matrix lägen.


Re: "Wer wird Millionär"-Schaltung / Schieberegister
     snipped-for-privacy@zocki.toppoint.de (Rainer Zocholl) writes:
Quoted text here. Click to load it
Wenn pro Bedienteil je 4 Tasten verwendet werden würde ich zwei 16X4
Matrixen aufbauen.

Das ergibt 16 Spaltentreiber und 8 Eingänge.

ich stelle mir das so vor:

Box 0
Spaltentreiber0----+--Taster---Diode--Eingang0
                   +--Taster---Diode--Eingang1
                   +--Taster---Diode--Eingang2
                   +--Taster---Diode--Eingang3

Box 1
Spaltentreiber0----+--Taster---Diode--Eingang4
                   +--Taster---Diode--Eingang5
                   +--Taster---Diode--Eingang6
                   +--Taster---Diode--Eingang7

....

Box 5
Spaltentreiber2----+--Taster---Diode--Eingang4
                   +--Taster---Diode--Eingang5
                   +--Taster---Diode--Eingang6
                   +--Taster---Diode--Eingang7

Die Spaltentreiber sollten mindestens mit 12 Volt arbeiten und
auch etwas Strom liefern können, damit bei den Empfängern
ordentlich entstört werden kann.
Ich würde mindestens 10 mA fließen lassen weil der Aufbau vermutlich
großräumig wird. Abgeschirmte Leitungen währen auch gut damit die
Scanimpulse in der Leitung bleiben.
Um Störimpulse auf Nachbarleitungen gering zu halten sollten die
Scanimpulse nicht zu steilflankig sein.

--
MFG Gernot

Re: "Wer wird Millionär"-Schaltung / Schieberegister
On Mon, 17 Nov 2003 09:39:10 +0100, Uwe Hercksen

Hi!

Da Sebastian schrieb:

Quoted text here. Click to load it

wird er sich um das...

Quoted text here. Click to load it

...wohl schon Gedanken gemacht haben.

Gerade um viele Scanvorgänge mit niedrigem Takt zu schaffen, bietet
sich die bereits vorgeschlagene Tastaturmatrix an. Evtl würde ich
Optokoppler vorsehen, um Störungen zu vermeiden. Also von den Tastern
über die langen Kabel zu den Optokopplern in der Matrix. 4er gibts für
0,24 - da werden die Taster im ansprechenden Gehäuse vielfach teurer
sein. Zugegeben, das wird ne hübsch volle Platine, und 100x 10mA sind
auch nicht wenig - aber ich wüsste nicht, wie man sonst die möglichen
Störungen in den Griff bekommen sollte.

Gruß,
Michael.

Re: "Wer wird Millionär"-Schaltung / Schieberegister
Quoted text here. Click to load it

Es ist natürlich ersteinmal die Frage ob bei WwM die Taster auch wirklich
ausgewertet werden... kann ja auch sein, daß da ein Zufallsgenerator ant-
wortet oder eine vom Frage-Erfinder vorgegebene Verteilung angezeigt
wird - schließlich ist ja nicht alles echt beim Fernsehen...

Es ist wirklich schwer, Dir einen passenden Rat zu geben wenn man die
Rahmenbedingungen nicht kennt. Z.B. ob da 120 Taster in der Pampa ver-
teilt werden oder ob diese wie bei WwM zu Gruppen a 4 Taster zusammen-
gefasst werden? Bei letzterem könnte ein BCD-2-Binary-Encoder die Anzahl
der auszuwertenden Signale schon mal halbieren und auch das Problem der
gleichzeitig zu drückenden Tasten reduzieren...

*Ich* würde es wohl so machen: In jedes der 30 Kästchen mit 4 Tastern
kommt ein kleiner uC, z.Zt. nehme ich für so etwas gerne den PIC 12F629.
Daran die 4 Tasten. Dieser PIC sendet dann auf 1 Leitung die zuerst ge-
drückte Taste zusammen mit einer Gerätenummer. Dabei kann man dieses
Protokoll nehmen - Name ist mir leider entfallen - wo der PIC die Über-
tragung abbricht wenn auf dem Bus ein anderes Bit anliegt als er senden
will und es nach einer zufälligen Wartezeit nochmal versucht. Ein 31. PIC
sammelt diese Übertragungen und leitet sie an Deinen PC weiter.

cu,

 Aguja

::Update:: www.PROuC.de ==> Free AVR-, PIC- & 8051-Programmers, Apps & Tips

Re: "Wer wird Millionär"-Schaltung / Schieberegister
Es sollen 24 Taster a 5 Tasten werden (WwM war nur ein Anwendungsbeispiel,
will mir auch andere Möglichkeiten offen halten, ist ja dann nur noch eine
Frage der Programmierung).
Und mit der 5. Taste kommt leider ein drittes Bit ins Spiel... Naja gibt
Schlimmeres.
Verpackt der 12F629 auch 5 Tasten?
Danke!

Gruss Seb

Quoted text here. Click to load it
von
dem
Tastenzustände
Quoted text here. Click to load it
Tips



Re: "Wer wird Millionär"-Schaltung / Schieberegister
Immer wieder wird hier die Störanfälligkeit genannt. Nun ist aber ist doch
die Situation so, dass der Normalzustand einer Taste "nicht gedrückt" ist
(ich schätze in 98% aller Abfragen), d.h. das Signal läuft über den "kurzen
Weg":

+5V
 |
 |    <== langer Weg
 |
Taster
 |
 |
 |
 +-------4021Eingang
10k
 |  <== kurzer Weg
Masse

Gibt es auch dann die genanten Probleme?

Außerdem:
- Was denkt ihr, wieviel Abfragen der Tasterzustände sind pro Sekunde
möglich?
- Zur Abschirmung: Ich dachte, CAT5-Kabel ist billig und gut geschirmt. Habe
mir deswegen ein 24 Port RJ45-Patchpanel besorgt, an dem die Module
eingesteckt werden sollen. Ist das ne gute Idee zur Verbindung mit den
Tastmodulen? Wahrscheinlich nicht...
- Wo bekomme ich Module mit 5 Tastern (will die nicht auch noch selberbauen,
sollten außerdem gut aussehen, dürfen meinetwegen ein bisschen was kosten)?

Danke für Eure Hilfe weiterhin! Bin schon ganz blede im Kopf wegen den
ganzen verschiedenen Vorschlägen, die hier kommen... Zuviel Input für mein
armes Hirn. Aber nur weiter so!

Seb

Quoted text here. Click to load it
von
dem
Tastenzustände
Quoted text here. Click to load it
an



Re: "Wer wird Millionär"-Schaltung / Schieberegister
Quoted text here. Click to load it

Du hast es nicht richtig verstanden. Die Probleme kommen nicht vom Weg
zwischen Taster und IC (gesetzt der Fall, das IC ist mit im Handgehäuse)
sondern über die Kabelverbindung zwischen den Handgehäusen.

Quoted text here. Click to load it

Nunja, es ist Dein Geld :-)

Quoted text here. Click to load it

Es gibt fertige Gehäuse mit eingebauten Tastern für Fernsteuerungen (bei
fast allen Versendern): Loch reinbohren, Kabel durch und fertig.

Ach ja: Der PIC 12F629 kann auch mehr als 4 Taster, man kann auch hier eine
Diodenmatrix einsetzen. Einen (komfortabler 2) der 6 I/O-Pins brauchst Du
ja noch für das Bus-System.

cu,

 Aguja

::Update:: www.PROuC.de ==> Free AVR-, PIC- & 8051-Programmers, Apps & Tips

Site Timeline