Forum: Mikrocontroller und Digitale Elektronik Riesige Schaltermatrix auswerten


von Elektro Nick (Gast)


Lesenswert?

Ich suche nach einer Möglichkeit, eine riesige Schaltermatrix mit 
möglichst wenig Aufwand auswerten. Dabei sollen nach Möglichkeit 
Leitunngen und Platz gespart werden. Die Matrix wird aus 44 x 62 
Schaltern bestehen. Jeder Schalter schaltet "aus", d.h. er ist im 
Ruhezustand geschlossen. Bei Druck öffnet er sich kurz, ca 100ms und 
schliesst sich dann wieder. Bei Druckentlastung tut sich nichts, ausser 
gfs etwas Prellen.

Die erste Idee, 44 x 62 Leitungen zu nehmen und diese als Eingänge zu 
verwenden, scheitert am Verkabelungsaufwand. Es war gedacht, jeweils 
einen Pin mit 12V zu bedrahten und dann die anderen Pins zu multiplexen.

Dies müsste wenn, vorort geschehen, erfordert dort aber 
Schaltungsaufwand und ebenfalls Platz.

Daher folgende Idee:

Eigentlich müsste es reichen, die 44 Spalten sehr schnell zu 
multiplexen, d.h. nur eine davon bekommt 12V Strom und dann einfach 62 
Pins der Schalter auf eine Elektronik zu führen. Man sagte mir aber, 
dass dort Dioden rein müssen, wegen Querströmen, allerdings sehe ich 
nicht, wo die wie fliessen sollen. Idee?

Angenommen, man schafft es, die Matrix zu anzusteuern, wäre eine weitere 
Idee, ein R2R-Netzwerk zu benutzen, und AD-Wandler einzusetzen. Man 
erweitert die 62 auf 64 und bekommt 8 Kanäle mit R2R- also 8 AD-Wandler. 
Die 8 Wandler bekommen permanent die Schalterstellungen jeder Spalte und 
man hätte mit Umschaltverlusten etwa 1/50tel der Geschwindigkeit. Vor 
allem könnten mehrere Taster gepresst werden.

Angenommen, ein Wandler mit 8 Bit schafft 1 MHz Daten, dann hätte ich 
doch alle Taster mit 29 kHz abgetastet, oder?

Die Auswertung könnte mit einem FPGA gemacht werden, der  die 8 Wandler 
steuert und deren Werte auf die insgesamt 44x64 Speicherplätze verteilt. 
Damit (mit FPGAs) habe ich schon gearbeitet und denke, das bekomme ich 
hin.

Ich frage mich, ob irgendwas gegen die AD-Lösung spricht? Oder muss ich 
dort 62 Leitungen in den FPGA legen?

von Elektro Nick (Gast)


Lesenswert?

Ach so nochmal zur Erklärung: Es sollen 8 Schalter in einer Gruppe 
arbeiten, also sind es dann wohl 8 Leitungen zurück und 44 Leitungen 
hin. Vielleicht gäbe es auch da noch eine Option, das zustraffen.

von Wolfgang (Gast)


Lesenswert?

Elektro Nick schrieb:
> Angenommen, ein Wandler mit 8 Bit schafft 1 MHz Daten, dann hätte ich
> doch alle Taster mit 29 kHz abgetastet, oder?

Wenn die Schalter bei Betätigung für 100ms geöffnet sind, sollte es 
reichen, mit 1/1000 der Abtastrate zu arbeiten, um eine Betätigung zu 
detektieren. Oder muss der Zeitpunkt der Betätigung genauer bestimmt 
werden?

von Mario (Gast)


Lesenswert?

http://www.mikrocontroller.net/articles/Netiquette#Klare_Beschreibung_des_Problems

Und, nein. R2R macht das Problem noch größer, weil Umschalter gebraucht 
werden. Siehe http://de.wikipedia.org/wiki/R2R-Netzwerk

von Uwe B. (uwe_beis)


Lesenswert?

Elektro Nick schrieb:
> Jeder Schalter schaltet "aus", d.h. er ist im
> Ruhezustand geschlossen.
Das ist extrem ungünstig und macht jegliche Lösung sehr aufwändig. 
Schließer wären viel einfacher.

Elektro Nick schrieb:
> Man sagte mir aber,
> dass dort Dioden rein müssen, wegen Querströmen, allerdings sehe ich
> nicht, wo die wie fliessen sollen. Idee?
Ja: Zeichne dir die Schaltung mal auf (es reicht mit z. B. 3 x 3 
Schaltern), sieh' sie dir an und du solltest merken, was die Anderen 
meinen.

Elektro Nick schrieb:
> eine weitere Idee, ein R2R-Netzwerk zu benutzen
Leider auch nicht. Ein R2R-Netzwerk braucht bipolare Quellen, keine 
öffnenden oder schließenden Schalter. Außerdem wären das auch 2 
Widerstände pro Schalter oder ein 8er R2R-Netzwerk pro 8 Schalter.

Elektro Nick schrieb:
> Die Auswertung könnte mit einem FPGA gemacht werden
Was wird dadurch einfacher? Immer noch 44 x 62 Anschlüsse!

Also, gemultiplexte Öffner würde 44 x 62 Dioden erfordern. Wenn du statt 
je 8 Dioden ein 8-fach Analog-Multiplexer nimmst, ist das ungefähr der 
gleiche Platzbedarf. (Analog-Multiplexer, weil sonst pro Taster ein 
Pull-irgendwohin-Widerstand gebraucht wird.) Es dürfte auch komplexere 
ICs geben, die nur zum Einlesen von Tasten gedacht sind. Alles sehr viel 
Aufwand, aber eine andere Lösung sehe ich nicht.

von Elektro Nick (Gast)


Lesenswert?

Hm, das mit den Umschaltern habe ich nicht bedacht. Die habe ich nicht. 
Ich dachte, ich könnte das mit pullups erledigen?

Die 100ms resultieren aus den Relaxationsbedingungen der Schalter. Der 
Zeitpunkt muss so schnell wie möglich erfasst werden. Man wird auch ein 
und denselben Wert mehrfach brauchen, wegen dem Prellen.

von c-hater (Gast)


Lesenswert?

Elektro Nick schrieb:

> Ich suche nach einer Möglichkeit, eine riesige Schaltermatrix mit
> möglichst wenig Aufwand auswerten. Dabei sollen nach Möglichkeit
> Leitunngen und Platz gespart werden. Die Matrix wird aus 44 x 62
> Schaltern bestehen.

D braucht einfach nur einen µC mit 106 (eigentlich bei optimierter 
Matrix nur 105) IOs. Das war's.

Höllisch kompliziertes Problem, so einen µC oder FPGA zu finden... 
Wieviel bezahlst du mir, wenn ich an deiner Stelle Google benutze?

von Jürgen S. (engineer) Benutzerseite


Lesenswert?

Ein Microcontroller wäre sicher eine Alternative. Mit dem R2R wird das 
ohnehin problematisch, weil es nicht so einfach ist, damit 8 Bit 
rauszukitzeln. Das braucht eng tolerierete Widerstände und meistens auch 
Kalibration. Ich würde maximal 16 Stufen nehmen. Ob das mit Deinen 
Schaltern hinzubekommen ist, hängt von den Schaltern und deren 
Ausgangswiderstand ab. Bei maximal 1 Ohm kann man das mit pull-up-Rs 
machen, darf die Anordnung aber nicht stark belasten. Sagen wir 330 Ohm 
als pull-up und ein R2R aus 10k-Widerständen mit 4 Eingängen. Du 
könntest die 44 Schalter der "Spalten" zu 11 Leitungen zusammenfassen 
und die Ansteuerung über Schieberegister realisieren. 8 Stück in 
Kaskade, macht die 62 Ausgänge. Allerdings musst Du dann noch auf 12V 
wie ich sehe. Wozu eigentlich?

Die Auswertung kannst Du noch dahingehend verbessern, indem Du Daten 
direkt auswertest: Ein Sigma-Delta-Wandler im FPGA kann bei z.B. 50 MHz, 
die man da leicht machen kann, eine ausreichende Genauigkeit 
hinbekommen, um die 4 Bit mit 1MHz sauber zu trennen. Musst halt dann 
fenstern und die Zuordnung zu den 64 Kanälen leisten. Von denen brauchst 
Du dann eben 11 Stück.


Bei einem meiner MIDI-Controller habe ich das so gemacht, um die 
Dreh-Enconder auszuwerten. Jeder Encoder arbeitet mit 8 Stufen für A,B 
und die Taste. Angesteuert und gelesen werden sie aber einzeln. Dann 
braucht man keine Matrixdioden.

Fazit: Du kannst bei der Ansteuerung eher und einfacher Leitungen 
sparen. Daher sollten die 62 die Spalten sein. Ich würde dann bei den 
Rückleitungen ebenfalls zu Analogmultiplexern raten.

Eine andere Möglichkeit wäre, die Ausgänge voll digital zu halten und 
alle zu latchen, um sie auszulesen. Kommt dann drauf an, wie viele 
Leitungen akzeptabel sind. Dazu hast Du Dich aber noch nicht geäußert.

von Peter D. (peda)


Lesenswert?

Elektro Nick schrieb:
> Jeder Schalter schaltet "aus", d.h. er ist im
> Ruhezustand geschlossen.

Dann scheidet Matrix schonmal aus.
Eine Matrix ohne Diode je Taster kann nur max 2 gleichzeitig 
geschlossene Verbindungspunkte sicher erkennen.

von Uwe B. (uwe_beis)


Lesenswert?

Peter Dannegger schrieb:
> Elektro Nick schrieb:
>> Jeder Schalter schaltet "aus", d.h. er ist im
>> Ruhezustand geschlossen.
>
> Dann scheidet Matrix schonmal aus.
> Eine Matrix ohne Diode je Taster kann nur max 2 gleichzeitig
> geschlossene Verbindungspunkte sicher erkennen.
Richtig. Das ist echt dumm gelaufen bei dir.

Elektro Nick schrieb:
> Hm, das mit den Umschaltern habe ich nicht bedacht. Die habe ich nicht.
> Ich dachte, ich könnte das mit pullups erledigen?
Dann funktioniert der R2R nicht mehr ideal. Ob das zu völliger 
Fehlfunktion führt, oder zu enormer Ruhestromaufnahme, hängt von vielen 
Faktoren ab. Aber die Tatsache, dass ziemlich viele Bauteile benötigt 
werden, macht den R2R-Ansatz ohnehin sehr uninteressant.

Du wirst mindestens eine Diode pro Taste brauchen, dazu 44 Zeilentreiber 
und 62 Spaltenempfänger samt Decodierlogik.

Oder ein IC pro mehrere Tasten. Also z. B. in der 1. Ebene mehr als 340 
Analogmultiplexer + Pull-Up/Down, dazu in der 2. Ebene 44 digitale 
Multiplexer, die in der 3. Ebene auf weitere 5 und in der 4. Ebene auf 
einen letzten Mux gehen, sind insgesamt ungefähr 390 ICs. Ob in so einem 
System die 100ms drin sind? Mag sein.

44 CPLDs mit 62 Eingängen oder 62 CPLDs mit 44 Eingängen, ggf. auch 
FPGAs, könnten eine echte Alternative sein. Die haben auch Pull-Ups. Mit 
welchen programmierbaren ICs es ein Optimum gibt, möglichst preiswert 
die 2728 Eingänge einzusammeln, kann ich nicht vorhersagen. Ist halt 
etwas Recherche und hängt z. B. auch davon ab, ob du BGAs einsetzen 
kannst oder nicht. Aber sie könnten dem µC von seiner Multiplex- und 
Auswertarbeit erheblich entlasten.

von Lurchi (Gast)


Lesenswert?

Um eine Diode pro Schalter wird man nicht drum rum kommen. Wegen der 
Geschwindigkeit kann es ggf. hilfreich zu sein die Matrix nicht als 44 x 
62 zu organsieren, sondern etwa als 88 x 31 oder so.

von Uwe B. (uwe_beis)


Lesenswert?

Lurchi schrieb:
> Um eine Diode pro Schalter wird man nicht drum rum kommen.
Mit (Analog-)Multiplexern oder z. B. einer CPLD-Lösung schon. Ist aber 
hauptsächlich ein Rechenexempel, ob es sich lohnt.

von Axel R. (Gast)


Lesenswert?

Will niemand wissen, was das am Ende werden soll?
Ich langsam schon :)

von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

Alles Gedöns. Man muss einfach erkennen, wann eine eigentlich 
altbewährte Methode (Matrix) an ihre Grenzen stößt und dann nicht endlos 
'rumfummeln, sondern etwas Neues suchen:

Welches ist der preiswerteste MC mit 4 oder 6 Beinchen? Hänge so einen 
(passend programmiert) an jeden Schalter und ale MCs zusammen an eine 
Busleitung - erledigt der Fall und (beinahe) grenzenlos weiter 
skalierbar ...

von Uwe B. (uwe_beis)


Lesenswert?

Eine echte Spitzenlösung.
Frank Esselbach schrieb:
> Welches ist der preiswerteste MC mit 4 oder 6 Beinchen?
PIC10F200T, ca. -,33 € bei 3000 Stück (zumindest der vom Microchip).

> Hänge so einen
> (passend programmiert) an jeden Schalter und ale MCs zusammen an eine
> Busleitung - erledigt der Fall und (beinahe) grenzenlos weiter
> skalierbar ...
Also 33 Cent pro Taste (statt ca. 1 Cent pro Taste bei Dioden), fast 
3000 Prozessoren programmieren, von fast 3000 Prozessoren die Daten 
einsammeln (an einem Bus? Wohl kaum. Also weitere Prozessoren oder 
irgendwelche Hardware) - das ist doch mal ein innovativer Ansatz. Spitze 
in Kosten und Arbeitsaufwand.

Wenn es wenigstens 8, 16 oder 32 Tasten an einem Prozessor sein dürften! 
Ein 5M40ZE64C5N (CPLD) im QFP64-Gehäuse hat 54 IOs, davon dürften sich 
50 für die Tasten nutzen lassen (der Rest für serielles I/O) und kostet 
deutlich unter 1,- €. Ok, da kommt noch Clock hinzu.

Axel R. schrieb:
> Will niemand wissen, was das am Ende werden soll?
> Ich langsam schon :)
Das verstehe ich, teile die Neugier aber nicht, jedenfalls nicht in dem 
Maße. Es ist eine technisch ausreichend definierte Aufgabenstellung. Das 
reicht mir. Weitere Erklärungen führen möglicherweise nur dazu, dass 
hier, statt Lösungen zu diskutieren, das ganze Projekt (und damit auch 
der Fragesteller) für bescheuert erklärt werden, weil man alles viel 
eleganter machen kann (was ja durchaus möglich ist). Deswegen verzichte 
ich lieber auf weitere Hintergründe und konzentriere mich auf die 
Beantwortung der Fragestellung.

: Bearbeitet durch User
von MaWin (Gast)


Lesenswert?

c-hater schrieb:
> > Die Matrix wird aus 44 x 62 Schaltern bestehen.
> D braucht einfach nur einen µC mit 106 (eigentlich bei optimierter
> Matrix nur 105) IOs. Das war's.

Nö, er braucht mindestens 2728 Dioden zusätzlich.
Und auch jede andere Lösung braucht mindestens 1 Bauteil oder 1 Pin pro 
Schalter.
Eine Matrix aus überwiegend geschlossenen Schaltern ist einfach blöd.

Frank Esselbach schrieb:
> Welches ist der preiswerteste MC mit 4 oder 6 Beinchen? Hänge so einen
> (passend programmiert) an jeden Schalter und ale MCs zusammen an eine
> Busleitung

Wenn du wenigstens Grundschulmathematik beherrschen würdest...

von Rolf S. (audiorolf)


Lesenswert?

Uwe Beis schrieb:
> Also 33 Cent pro Taste (statt ca. 1 Cent pro Taste bei Dioden), fast
> 3000 Prozessoren programmieren, von fast 3000 Prozessoren die Daten
> einsammeln (an einem Bus? Wohl kaum. Also weitere Prozessoren oder
> irgendwelche Hardware) - das ist doch mal ein innovativer Ansatz. Spitze
> in Kosten und Arbeitsaufwand.

Ich habe mich bei dem Vorschlag auch wundern müssen, einen PIC pro 
Schalter. :-)

Ich meine, dass die Aufgabe eher eine quantitative Komponente hat und 
weniger eine qualitative, die einen Prozessor braucht.

Komisch sind die Schalter:

Elektro Nick schrieb:
> Jeder Schalter schaltet "aus", d.h. er ist im
> Ruhezustand geschlossen. Bei Druck öffnet er sich kurz, ca 100ms und
> schliesst sich dann wieder. Bei Druckentlastung tut sich nichts, ausser
> gfs etwas Prellen.

Warum ist das so gelöst? Was sind das für Schalter?

von Stefan F. (Gast)


Lesenswert?

> Man sagte mir aber, dass dort Dioden rein müssen, wegen Querströmen,
> allerdings sehe ich nicht, wo die wie fließen sollen.

Im Ruhezustand sind alle Schaltkontakte geschlossen. Ergo sind alle 106 
Leitungen miteinander verbunden.

Wenn du dann einen einzelnen Schaltkontakt öffnest, ist das nach außen 
nicht erkennbar, weil immer noch alle Leitungen miteinander verbunden 
sind.

Deswegen die Dioden. Diese ermöglichen es erst, die Matrix Reihe für 
Reihe nacheinander abzufragen.

von Helmut K. (hk_book)


Lesenswert?

Was soll eigentlich passieren, wenn 2 oder mehr Tasten gleichzeitig oder 
kurz hintereinander gedrückt werden, z.B. so, dass eine noch gedrückt 
ist, eine zweite dazu und dann die erste wieder losgelassen?! Das gibt 
einen herrlichen Code-Mix. Stichwort: N-Key-Rollover und Phantom-Key.

von Helmut L. (helmi1)


Lesenswert?

Und wenn die Matrix so riesig ist gibt es auch ein riesiges EMV Problem 
anschliessen, das sollte man auch bei der Entwicklung von vornerein 
beruecksichtigen. Je nachdem wie gross die Matrix raeumlich wird ist das 
ein riesige Antenne.

von Schlumpf (Gast)


Lesenswert?

Abgesehen von den genannten Problemen bezüglich EMV etc. wäre ein 
weiterer möglicher Ansatz, komplett auf eine Matrix zu verzichten, 
sondern ein riesengroßes Schieberegister zu bauen, wo jeder Schalter 
sein eigenes Register bekommt.

Wäre dann z.B. 44 x 62 / 8 = 341 Stück 74HC597

Wenn ein Taster bei Betätigung immer 100ms geöffnet wird, kann man 
daraus die mindest-Datenrate des SPI berechnen, die notwendig ist.

Klar, die Steuerleitungen (SCK) müssen mit entsprechendem Bumms in das 
System gepresst werden, bei der Last.

Aber ist ja nur mal ein Ansatz, weg von der Matrix

von Schlumpf (Gast)


Lesenswert?

Oder man spendiert jeder Zeile einen µC an dem alle Schalter parallel 
angeschlossen sind.
Ein Master-Controller sammelt dann die Daten jedes Zeilencontrollers 
über SPI zyklisch ein.

Oder man nimmt eine Touch-Folie o.Ä., malt die Tasten auf ein Blatt 
Papier, Klebt die Folie drauf und macht die Auswertung mit nem Pi oder 
sowas in der Art.

Vermutlich billiger, als knapp 3000 Schalter zu kaufen, aber ich glaube, 
der TO hat die Schalter bereits rumliegen..

von Ulrich P. (uprinz)


Lesenswert?

Ich würde auch eine Kompromiss versuchen.

Parallel-In Serial-Out Schieberegister, wie vorgeschlagen und dann mit 
einem preiswerten uC jeweils per SPI ausgelesen. Da man 5V Signale nicht 
in jeder Umgebung auf beliebiger Länge transportieren kann, muss man 
selber einschätzen, wie viele S/R man auf einen Fleck baut.

12V sind ok, kann man über einen Widerstandsteiler auf 5V runter teilen, 
47R und Shottky von 5V1 vor den Pin des Registers, das ganze mit einem 
ATtiny auf einen RS485 Bus gebracht.

Dann muss man noch überlegen, wie man die Boards so anspricht, dass sie 
nicht alle durcheinander reden, wenn an verschiedenen Boards Tasten 
gedrückt werden. Aber da gibt es schon andere Threads drüber.

von Rolf S. (audiorolf)


Lesenswert?

Schlumpf schrieb:
> Wenn ein Taster bei Betätigung immer 100ms geöffnet wird, kann man
> daraus die mindest-Datenrate des SPI berechnen, die notwendig ist.

Bei 10 Abtastungen 300kHz für die Matrix und 3MHz für den SPI.

von Chris S. (schris)


Lesenswert?

Man kann aber wirklich auch adc verwenden,
44x32 geht noch, man braucht dann z.B. 10x 16f1503 oder weniger wenn
man externe Mux verwendet.
Schalter auf GND und mit zwei Widerständen auf Spalte und Zeile 
aufgetrennt.

von Hv (Gast)


Lesenswert?

Alle Taster in Reihe in einer Stromschleife und jeder Taster mit LED
Auswertung mit ccd ...

von Georg (Gast)


Lesenswert?

Hallo,

divide et impera - man teilt so eine Matrix in Module auf, z.B. 48 Stück 
mit 8 x 8 Schaltern und je einem Prozessor, die werden wie üblich 
vernetzt. So macht man das auch bei den hauswandgrossen 
LED-Videoanzeigen in chinesischen Einkaufszentren. Bei einem Defekt ist 
ein Modul mit ein paar Handgriffen ausgetauscht.

Das Problem 8 x 8 Schalter abzufragen sollte ja wohl beherrschbar sein, 
zweckmässig wäre es die Schalter und die Kontrolllogik zusammen zu 
montieren, etwa auf 2 Leiterplatten.

Georg

von Jürgen S. (engineer) Benutzerseite


Lesenswert?

Die entscheidende Frage ist, ob und welche Schalter gleichzeitig 
gedrückt werden und ob das erkannt werden muss. Diese Info steht noch 
aus.

Ich meine, dass es das Einfachste wäre, möglichst viele Spalten zu 
verwenden und möglichst wenige Zeilen, mit denen auf eine 
Ausgangsleitung gegangen wird. Wie oben beschrieben, kann man 4 
Leitungen bequem analog codieren. Das braucht keine speziellen 
R2R-Netzwerke und keine enge Toleranz. Vor allem muss es nicht 
kalibriert werden, sondern man kann die Werte ausrechnen und ablesen. 
Wenn es wirklich ein FPGA sein soll, kann man das ohne Wandler machen 
und hat auch Leitungen genug. Nach obigem Beispiel 44/4 = 11 Stück x 62 
und einige wenige für die Steuerlatches.

Diese rund 660 Leitungen müssen eben vorort mit Multiplexern 
runtergeteilt werden, soweit als möglich. Wieviele es maximal sein 
dürfen, hat uns "Tech Nick" ja ebenfalls noch nicht mitgeteilt.

von Axel R. (Gast)


Lesenswert?

Hatte ich schon gefragt, was es werden soll? :))

von Thomas W. (Gast)


Lesenswert?

Schlumpf schrieb:
> Abgesehen von den genannten Problemen bezüglich EMV

Solange die EMV gegeben ist, werden wohl kaum Probleme auftreten.

von X4U (Gast)


Lesenswert?

So als (Schnaps)Idee:

Wie wäre es die Schalter mit Widerstandsdraht zu einer Matrix (Netz) zu 
verschalten

Dann ändert sich beim öffnen eines Schalters der Widerstand des Netzes.

von Oliver R. (orb)


Lesenswert?

X4U schrieb:
> Wie wäre es die Schalter mit Widerstandsdraht zu einer Matrix (Netz) zu
> verschalten

Das so auszulegen, daß jeder Schalter eindeutig erkannt wird, dürfte 
eine Lebensaufgabe werden.

von oldmax (Gast)


Lesenswert?

Hi
Ich glaub, hier führt euch Elektro-Nick an der Nase herum. Er stellt 
euch einfach eine Aufgabe und läßt euch mal machen. Eine Matrix mit 2728 
Schaltern ist ein so gewaltiges Projekt, das man den Sinn anzweifelt. 
Und dann noch die Frage nach den Dioden. Da fragt sich ein "Elektriker" 
mit Recht, was das soll. Einfach mal aufzeichnen und in der Matrix mehr 
als einen Schalter einschalten. Schon wird klar, das Schalter aus ganz 
anderen Reihen Signale liefern können und damit der aktuellen Reihe 
vorgaukeln, es seien Schalter betätigt. Eine Matrixauswertung in diesem 
Maße ist eine Aufgabe für mehr als einen Controller. Ansonsten ist es 
einem Controller völlig egal, ob ein Öffner oder Schließer den 
Signalwechsel verursacht. Hier ist einfach mal ein wenig Ehrgeiz und 
Nachdenken gefragt, gepaart mit Wissen um den Stromkreis in der 
Elektrik.
Um Verdrahtungs- und Beschaltungsaufwand kommst du sowieso nicht herum, 
also kannst du auch deine Aufgabe auf mehrere Controller verteilen und 
diese dann seriell verbinden. Einen zusätzlichen nimmst du dann, um die 
Signale zuzuordnen und auszuwerten. So kannst du deine Matrix in allen 
Controllern gleich programmieren und die Controlleradresse selektiert 
die Tastersignale im Zentral-µC. Das, was an Zeit für seriellen 
Datentransfer benötigt wird, spart die leichzeitige Signalaufbereitung 
mehrerer Controller und die Auswertung in dem zeitlich unabhängigen 
zusätzlichen µC.
Aber meine Meinung ist immer noch, das hier eigentlich nur mal so 
abgefragt wird, wer auf so eine Projekt reinfällt.
Gruß oldmax

von oszi40 (Gast)


Lesenswert?

oldmax schrieb:
> Eine Matrix mit 2728 Schaltern ist ein so gewaltiges Projekt,
> das man den Sinn anzweifelt.

Abgesehen davon, scheint mir das räumliche Gebilde mit der Drahtmenge 
eine prima Antenne zu werden, die jeden Dreck einfängt. Ob der TS einen 
RAM durch Schalter ersetzen möchte?

von Simpel (Gast)


Lesenswert?

hmm.. 2728 Schalter... scheint ne PC-Tastatur für chinesische 
Schriftzeichen zu werden.

von Udo S. (urschmitt)


Lesenswert?

Simpel schrieb:
> hmm.. 2728 Schalter... scheint ne PC-Tastatur für chinesische
> Schriftzeichen zu werden.

Nö, ein Touch Screen für Grobmotoriker
SCNR

von Marcus H. (Firma: www.harerod.de) (lungfish) Benutzerseite


Lesenswert?

Ich vermute mal Elektro Nick möchte seine Modelleisenbahn oder eine 
Netzleitstelle o.ä. verdrahten. Wir wissen nichts über die räumliche 
Anordnung der Schalter. Für zukünftige Anwendungen würde ich mir jedoch 
Flexibilität wünschen (Modifikation, Reparatur, etc.).

qualidats Vorschlag geht daher genau in die richtige Richtung.
Die Kosten für "busfähige Taster" (siehe Onlinesuche) sind im Vergleich 
zum erreichbaren Nutzen und dem gesparten Folgeaufwand absolut 
vernachlässigbar.

Falls Elektro Nick aus irgendwelchen Gründen keine Standardbauteile 
verwenden kann oder möchte, findet sich sicher ein 
Elektronikdienstleister, der ihm eine passende Interfaceplatine entwirft 
- selbstverständlich CE konform. Bei Interesse - gerne PM an mich.

von Philipp K. (philipp_k59)


Lesenswert?

Eigentlich wurde ja schon alles gesagt.. was spricht denn gegen 1 Bit 
Shifter bzw einen MC als OneWire Rutschregister,mit Clock jeden takt 
1bit Speichern/Ausgeben pro Schalter und dann nur noch die Zeilen 
einlesen. Würde das überhaupt möglich sein?  Insgesamt kommt es ja auch 
auf den ganzen Aufbau an ob das eine 40x40cm Kiste oder 2x2m wird und 
die ganzen anderen Faktoren.

: Bearbeitet durch User
von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Philipp K. schrieb:
> Eigentlich wurde ja schon alles gesagt
Jawohl! Und Elektro Nick (Gast) hat sich seit dem 22.04.2015, 20:08 Uhr 
nicht mehr gemeldet. Alles klar?

: Bearbeitet durch User
von Ulrich P. (uprinz)


Lesenswert?

Naja, aber im Grunde ist es ja auch eine Frage, die sich andere Stellen 
könnten. Leider ist es aber auch, wie so oft, eine unvollständige Frage, 
bzw. es fehlen die Rahmenparameter.

Philipp K. schrieb:
> ...Aufbau an ob das eine 40x40cm Kiste oder 2x2m wird und
> die ganzen anderen Faktoren.

Und das ist tatsächlich ein Unterschied, denn ein kleines 
Modelleisenbahn Stellpult kann man durchaus mit I2C Chips aus der PCF 
Serie auf I2C bringen und könnte zumindest Gruppen aus Schaltern machen, 
die dann, durch die Interrupts der Chips, nur ausgelesen werden wenn ein 
Eingang geändert wird.

Bei einem original großen Eisenbahn Stellpult würde ich aber nicht mehr 
mit I2C arbeiten wollen und die Bahn wird es auch nicht abnehmen wollen.

Generell wird man aber bei beiden Anwendungen nicht umhin kommen, ein 
wenig Entstörung an den Eingängen vorzusehen.

von Harald (Gast)


Lesenswert?

Torsten C. schrieb:
> Philipp K. schrieb:
> Eigentlich wurde ja schon alles gesagt
>
> Jawohl! Und Elektro Nick (Gast) hat sich seit dem 22.04.2015, 20:08 Uhr
> nicht mehr gemeldet. Alles klar?

Zwischen dem ersten und letzten Beitrag des TE liegen ganze 44 Minuten. 
Und es wird weiter gemacht und gelöst. Beeindruckendes Forum.

von Ulrich P. (uprinz)


Lesenswert?

Naja, Torsten...

Es ist ja so, dass hier jeder, der die Suche benutzen kann, auch eine 
Lösung finden sollte. Wenn man da einfach mal weiter diskutiert, obwohl 
der Fragesteller schon aufgegeben hat, warum ist das schlimm?

Das Forum heißt ja nicht: Wir lösen dein Probleme und Aufgaben und 
machen für Dich Deine Arbeit.

Wir haben einfach Spaß dabei, sonst macht es keinen Sinn.

von Uwe B. (uwe_beis)


Lesenswert?

Ulrich P. schrieb:
> Es ist ja so, dass hier jeder, der die Suche benutzen kann, auch eine
> Lösung finden sollte. Wenn man da einfach mal weiter diskutiert, obwohl
> der Fragesteller schon aufgegeben hat, warum ist das schlimm?
>
> Das Forum heißt ja nicht: Wir lösen dein Probleme und Aufgaben und
> machen für Dich Deine Arbeit.
>
> Wir haben einfach Spaß dabei, sonst macht es keinen Sinn.

Das sehe ich genau so. Deswegen tendiere ich auch eher dazu eine Frage 
zu beantworten, als dem Fragesteller zu unterstellen, auf dem Holzweg zu 
sein (was ja oft genug der Fall ist).

Wenn ich Antworten bekomme, die sinngemäß lauten: "Hey, ich habe keine 
Lösung für deine Aufgabenstellung, aber ich weiß eine Lösung für eine 
andere Aufgabenstellung, also stell' dich nicht so an, sei so schlau wie 
ich und mach es anders!" steigt bei mir das Blutdruck.

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Harald schrieb:
> Und es wird weiter gemacht und gelöst.

In der Tat, sehr beeindruckend!

Zumal am 25.04.2015 um 13:00 Uhr noch jemand schrieb: "Falls Elektro 
Nick aus irgendwelchen Gründen …". Nick leist hier doch gar nicht mehr 
mit! ;-)

Schade, dass es Öffner sein sollten. Ich finde nämlich die Schaltungen 
von Helge immer wieder elegant:
Beitrag "Re: Taschenrechner Tastatur: Ist das möglich?"

Ulrich P. schrieb:
> Naja, Torsten...

Wie ist das gemeint?

von Ulrich P. (uprinz)


Lesenswert?

Torsten C. schrieb:
> Ulrich P. schrieb:
>> Naja, Torsten...
>
> Wie ist das gemeint?

Harald schrieb:
> Zwischen dem ersten und letzten Beitrag des TE liegen ganze 44 Minuten.
> Und es wird weiter gemacht und gelöst. Beeindruckendes Forum.

Ursprünglich hatte ich Deinen Text als Ironie aufgefasst. Daher 
entschuldige das Missverständnis!

I.d.R. fangen Posts so an, wenn einer anfängt dem TO das Interesse 
abzusprechen. Und ich halte solche Posts für überflüssig, weil das Ziel 
des Forums eben immer der Weg zu einer Lösung ist.

Tatsächlich bist Du wohl wirklich beeindruckt, danke dafür :)

Sorry
Ulrich

von Elekto Nick (Gast)


Lesenswert?

Nett, was hier alles bereits an Mutmassungen unterwegs ist. Ich war 
krankheitsbedingt weg vom Fenster, wie man bei uns sagt. Es geht weiter:

Zu den Fragen: Die Schalter sind vorgegeben und ich kann sich nicht 
ersetzen, bestenfalls anders orientiert verdrahten. Ja das ginge. Bei 
den Schaltern handelt es sich um eine bereits fest verbaute Druckmatrix 
in Mattenform, welche ein Art differenzielles Signal abgibt. Ich könnte 
ein Kennlinie posten aber es reicht, zu wissen, dass bei flächigem Druck 
sich etliche der Schalter öffen und erfasst werden sollen. Der 
Widerstand der Schalter springt von einigen hundert Kiloohm auf unter 10 
Ohm. Daher auch die 12 Volt Verdrahtung, die genug Strom liefern soll, 
bzw Spannung für Störabtand.

Ich sehe also, dass ich eine Reihe von Analogschaltern benötige, die das 
Signal umschalten könnten müssen. Ich muss jetzt in Erfahrung bringen, 
wieviel Platz um das System vorhanden sein wird, um das zu realisieren.

Zu dem "OneWire Rutschregister":

Ich steuere also ein sehr langes Schieberegister an, verstärke jeden 
Ausgang auf 12V und lege ihn an die Spalten. Die anderen Spalten sind 
damit weg. Direkt verodern kann ich die Zeilen nicht, wegen der 
Querstrominformatioen, weil ich sonst Dioden brauche, richtig?

Dann fasse ich z.B. 4 Ausgange zu einem R2R zusammen und bekomme 11 zu 
multiplexende Spannungen.

11 x 62 macht rund 1/700stel der Abstastfrequenz. Ich brauche demnach 
für 100 ms zusammen etwa 100us. Bei 10x Abtasten also 10us = 10KHz.

Dann ginge das doch sicher mit einem kleinen Microcontroller und einem 
einfachen ADC?

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Elekto Nick schrieb:
> Der Widerstand der Schalter springt von einigen hundert Kiloohm auf unter
> 10 Ohm.
Also ein Schließkontakt?

Elektro Nick schrieb:
> Bei Druck öffnet er sich kurz, ca 100ms und schliesst sich dann wieder.
Oder ein Öffner?

Vielleicht ist es heute schon zu spät, ich verstehe es nicht.

Hört sich aber an, wie eine Gummi-Matte, wo Leute drauf laufen und mit 
der die Fußabdrücke erfasst werden sollen.

: Bearbeitet durch User
von lrep (Gast)


Lesenswert?

Elekto Nick schrieb:
> Bei
> den Schaltern handelt es sich um eine bereits fest verbaute Druckmatrix
> in Mattenform,

Hatte der Singer nicht schon vor ca. 20 Jahren etwas derartiges für die 
Aachener gebastelt?

Torsten C. schrieb:
> Hört sich aber an, wie eine Gummi-Matte, wo Leute drauf laufen und mit
> der die Fußabdrücke erfasst werden sollen.

Iirc ging es damals um eine Matte, auf der Menschen mit großflächigen 
Verbrennungen gelagert werden sollten.

von MaWin (Gast)


Lesenswert?

Elekto Nick schrieb:
> Zu dem "OneWire Rutschregister":
>
> Ich steuere also ein sehr langes Schieberegister an, verstärke jeden
> Ausgang auf 12V und lege ihn an die Spalten. Die anderen Spalten sind
> damit weg. Direkt verodern kann ich die Zeilen nicht,

Nein, du hast ein Schieberegister mut 2500 Eingängen und verbindest 
jeden Taster einzeln.

Das Problem ust hat, dass sich Taster (0 Ohm/unendlich Ohm) nicht als 
Matrix verschalten lassen.

Elekto Nick schrieb:
> Der Widerstand der Schalter springt von einigen hundert Kiloohm auf
> unter 10 Ohm.

Aber deine Taster haben gar nicht 0 Ohm/unendlich Ohm. Und du musst 
scheinbar auch gar nicht so genau wissen, welche Taster geöffnet wurden, 
sondern nur wolkenweise Erfassen. Da kann eine Matrix eine Tomographie 
erlauben. Da du aber immer noch Informationen zurückhältst, kann man 
auch nicht mehr dazu sagen.

von Elekto Nick (Gast)


Lesenswert?

Nein, es ist ein Öffnungskontakt

Nein, ich muss keine Wolken erfassen. Ich brauche die Taster einzeln als 
"on/off" und dies auf besser, als 10ms genau um eine Bewegung zu 
erkennen.

Fussmatte mit Bewegungserkennung kommt dem im Prinzip schon nahe.

von Rolf S. (audiorolf)


Lesenswert?

Elekto Nick schrieb:
> Dann fasse ich z.B. 4 Ausgange zu einem R2R zusammen und bekomme 11 zu
> multiplexende Spannungen
5 müssten eigentlich auch gehen - wären noch mal 2 Leitungen gespart.

Wenn es digital wäre, hättest Du es einfacher:
http://www.ti.com/lit/ds/symlink/sn74hc151-q1.pdf

von Route_66 H. (route_66)


Lesenswert?

Hallo!
Die vielen Leute, die hier helfen wollen, sind wohl immer noch konfus 
über die Art des Schalters.
Also:
Schalter ohne Druck ergibt
( ) einige hundert Kiloohm
( ) unter 10 Ohm

Schalter mit Druck ergibt
( ) einige hundert Kiloohm
( ) unter 10 Ohm

Ich vermute irgend ein Missverständnis zu "Öffner" und "Schließer".

Mache einen Stern oder ein "x" oder... in die Klammern und wir wissen 
mehr!

von Stefan F. (Gast)


Lesenswert?

Wenn eine Diode pro Taster schon zu viel sind, dann sind alle anderen 
Lösungsvorschläge doch Sinnlos, denn sie können nur Aufwändiger sein.

Denn es geht um Taster mit Öffner. In Ruhelage sind also alle Kontakte 
geschlossen.

von Elektro Nick (Gast)


Lesenswert?

Route 66 schrieb:
> Schalter ohne Druck ergibt
> ( ) einige hundert Kiloohm
> ( ) unter 10 Ohm

Schalter ohne Druck ergibt >100kOhm

gedrückter Schalter ergibt eine Zeitlang 10 Ohm, während des 
Einpressvorgangs, danach wieder 100Ohm. Ist ein Differentielles Signal.

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Elektro Nick schrieb:
> Schalter ohne Druck ergibt >100kOhm
> gedrückter Schalter ergibt eine Zeitlang 10 Ohm, während des
> Einpressvorgangs, danach wieder 100Ohm.

Vielleicht ist es heute schon wieder zu spät, ich verstehe es immer noch 
nicht:

Taster ohne Druck hochohmig (>100kOhm),
Taster gedrückt 10..1000Ohm (niederohmig).

Elekto Nick schrieb:
> es ist ein Öffnungskontakt

Ist ein Öffnungskontakt bei gedrücktem Taster nicht eigentlich 
hochohmig?

> Ist ein Differentielles Signal.

Aus einem Taster kommt kein Signal Ein Taster kann nur leiten oder 
nicht.

Und dann noch ein differentielles Signal? Wie wird das erzeugt? 
Vielleicht mit LVDS-Treibern? ;-) Irgendwas wichtiges verschweigst Du 
doch, oder?

: Bearbeitet durch User
von Elektro Nick (Gast)


Lesenswert?

Vielleicht habe ich das falsch geschrieben mit dem Kontakt, aber es ist 
nach Messungen wirklich so, dass die Schalter in dem betroffenen Bereich 
kurzfristig niederohmig(er) werden. Das differenzielle Verhalten ist 
ähnlich einem Piezoeffekt, nennen wir es Elektrostriktion. Das Verhalten 
ist eigentlich analog, aber die Umschaltcharateristik ist im Groben eher 
digital. Die Flanken sind entsprechend verschliffen und es reicht, die 
Schalter also solche auszuwerten. Die Matrix wird dazu mit einer 
ausreichend hohen Spannung versorgt, damit ein klares Signal rauskommen 
kann und die sehr unterschiedlichen Kennlinienverläufe keinen Einfluss 
haben. Genaueres in Sachen Trimmung , eventueller Kalibrierung erfolgt 
im Anschluss an die Auswertung. Dann wird weitergedacht.

Ich verwende aufs erste niederohmige Analogschalter, und sehe dann, ob 
man es für die weitere Auswertung gfs noch kleiner hinbekommt. Danke an 
alle.

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Elektro Nick schrieb:
> Ich verwende aufs erste …. Danke an alle.

Dann hat sich die Frage also erübrigt? Trotzdem aus Interesse:

> Die Matrix wird dazu mit einer ausreichend hohen Spannung versorgt,
> damit ein klares Signal rauskommen kann.

Annahme: Es geht also um einzelne Signale mit Masse als Bezugspunkt (ein 
Anschluss pro Taster) und nicht um Taster mit zwei Anschlüssen, die 
man mit Dioden^^ entkoppeln könnte, richtig?

: Bearbeitet durch User
von lutz (Gast)


Lesenswert?

Elektro Nick schrieb:
> Route 66 schrieb:
>> Schalter ohne Druck ergibt
>> ( ) einige hundert Kiloohm
>> ( ) unter 10 Ohm
>
> Schalter ohne Druck ergibt >100kOhm
>
> gedrückter Schalter ergibt eine Zeitlang 10 Ohm, während des
> Einpressvorgangs, danach wieder 100Ohm. Ist ein Differentielles Signal.

Was verstehst du hier unter einem differntiellen Signal?

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Elektro Nick schrieb:
> Vielleicht habe ich das falsch geschrieben mit dem Kontakt, aber es ist
> nach Messungen wirklich so, dass die Schalter in dem betroffenen Bereich
> kurzfristig niederohmig(er) werden.

Dann ist das mit einem Schließer und nicht mit einem Öffner 
vergleichbar.

Ein schließender Taster wird bei Druck niederohmig und ist ohne Druck 
hochohmig. Genau das machen Deine "Kontakte".

Und damit wird das alles viel einfacher...

Aber noch eine Frage: Ist die Riesen-Matrix so fix verdahtet oder lässt 
sie sich in Unter-Matrizen aufteilen?

von Stefan F. (Gast)


Lesenswert?

Also doch keine Öffner. Dann ist die Matrix ohne Dioden machbar. Nun 
brauchst du nur noch Schieberegister für die Reihen und Spalten.

von Hardwareonkel (Gast)


Lesenswert?

Von den vielen Dioden hatte man sich doch bereits verabschiedet, wenn 
ich richtig lese, oder?

von MCUA (Gast)


Lesenswert?

Nimm ein paar ShiftRegister mit PullUps(Down) an jeden (Taster)Eingang 
und fertig.

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.