8x8 Matrix mit Hallsensoren

OP #6425518
Lesenswert?

Hallo in die Runde!

Ich zerbreche mir den Kopf über eine Matrix.
Zum Abfragen von Tastenfeldern nutzt man ja gerne Matrizen, z.B. 8x8, 
alles nix Neues.
Die werden aber logischerweise mit Schaltern realisiert.
Nun würde ich statt Schaltern gerne Hallsensoren nutzen, Problem:
mit einer klassischen Diodenmatrix nicht machbar, da der Output des Hall 
zwar bei Erkennen eines Magneten auf GND zieht (Open Collector), aber ja 
nicht als klassischer Schalter fungiert.

Mein Ziel soll sein: Klassische 8x8 Matrix statt mit Schaltern über 
Hall.... mit wenigen zusätzlichen Bauteilen.

Es handelt sich um eine MIDI-Projekt. Rein Theoretisch könnte ich die 
einzelnen Eingabetasten als Einzeleingang (Scanrow) auf den MIDI-Encoder 
schicken, aber aus Platzgründen geht das nicht (54 Einzeltasten), daher 
muß es schon eine 8x8-Matrix sein.

Die Hallsensoren sollen dauerhaft auf Vss und GND sein, d.h., die 
Variante, bei der solche Sensoren in einer Matrix mittels Transistoren, 
Multiplexer etc. ein- und ausgeschaltet werden, fällt flach. Mir geht es 
darum, eine Version zu entwerfen, bei der der Ausgang des Halls quasi 
"schaltet". Transistor?

Besten Dank für Eure Anregungen!!
Moderator (Firma: Titel) Persönliche Seite #6425529
Lesenswert?

Andreas K. schrieb:
> Es handelt sich um eine MIDI-Projekt. Rein Theoretisch könnte ich die
> einzelnen Eingabetasten als Einzeleingang (Scanrow) auf den MIDI-Encoder
> schicken, aber aus Platzgründen geht das nicht (54 Einzeltasten), daher
> muß es schon eine 8x8-Matrix sein.
Der logische Kurzschluss erschließt sich mir nicht. Ich würde da der 
Einfachheit halber ein paar Schieberegister nehmen.

Andreas K. schrieb:
> Die Hallsensoren sollen dauerhaft auf Vss und GND sein, d.h., die
> Variante, bei der solche Sensoren in einer Matrix mittels Transistoren,
> Multiplexer etc. ein- und ausgeschaltet werden, fällt flach.
Würde das Parallelschalten prinzipiell fuktionieren? Halten die nicht 
versorgten Schalter am Ausgang still? Hast du das probiert?
OP #6425534
Lesenswert?

Das Problem beim Multiplexen der Vss ist ja dann die Reaktionszeit. Das 
haben einige Freaks schon probiert, mit bescheidenen Ergebnissen. 
Teilweise hat der MIDI-Encoder Müll eingelesen.

Man müßte also schon den in der klassischen 8x8-Diodenmatrix vorhandenen 
Schalter mittels des Hall-Ausgangs simulieren.
Das wäre dann die ultimative Lösung, weil man dann eine Platine 
entwerfen kann, die anreihbar und zu jedem üblichen MIDI-Encoder paßt, 
der 8x8 kann, was bei den meisten so ist, die mit Klaviertasten o.ä. zu 
tun haben.
OP #6425546
Lesenswert?

Es wird natürlich so sein, daß bis zu 10 Tasten (zehn Finger) gedrückt 
sein können.
Bei klassischen 8x8-Scannern ist das auch kein Thema.
Die Firma FATAR, weltweit größter Klaviaturhersteller, löst das ja nicht 
mit Hallsensoren, sondern mit kleinen Gummihütchen, die dann auf ein 
Graphitbeet drücken, so wie beim Taschenrechner quasi.
Problem: die nutzen sich rapide ab.
Hallsensorlösungen gibt es, klar, aber nicht als Matrix, sondern nur als 
Einzelkontakt, was bei 64 Tasten ein 64pol. Kabel fordert mit 
entsprechender Anbindung an die Auswertelektronik. Gerade bei MIDI hat 
sich aber die 8x8 bewährt. Deswegen bin ich an einer Lösung für Hall 
dran.
#6425558
Lesenswert?

Eine Handvoll Schieberegister ala 74HC595 oder PCF8574.

Wenn es denn UNBEDINGT eine Matrix sein soll, könnte man 
PNP-Transistoren über den Open Collector Ausgang ansteuern und deren 
Emitter an die geschalteten Zeilen klemmen. Siehe Anhang. Könnte 
funktionieren. Wenn man welche mit integriertem Basiswiderstand nimmt 
("Digitaltransistor"), wird das auch alles recht klein.
Angehängte Dateien:
#6425561
Lesenswert?

Die ICs, die sich "8*8" nennen sind leider nicht brauchbar, die werden 
digital angesteuert, nicht über einzelne Tasten (auch das von Maxim, das 
ich nannte).
https://www.mouser.de/Semiconductors/Communication-Networking-ICs/Analog-Digital-Crosspoint-ICs/_/N-50nch?P=1yyhncd

Ich habe ein aufrollbares "Klavier" von Pollin (35€ damals), da hat der 
Hersteller die Matrixdioden eingespart. Wenn ich mehr als drei Tasten 
gleichzeitig drücke gibt es noch mindestens einen vierten Misston gratis 
dazu.
Gast #6425611
Lesenswert?

Andreas K. schrieb:
> Mir geht es
> darum, eine Version zu entwerfen, bei der der Ausgang des Halls quasi
> "schaltet". Transistor?

Da brauchst du Schalter, ob Transistor Relais Opto .. ist vom Prinzip 
her egal. Deine Abfrage muss auch schnell genug sein um den "Hallimpuls" 
zu erwischen

Wenn es ein Keyboard ist will man noch wissen ob mehrere Tasten 
gleichzeitig gedrückt wurden, evtl später noch ne Anschlagdynamik usw 
...

Wird das jetzt weniger Aufwand als mit Schieberegistern?


Alternativ, die Ausgänge sind ja aktiv, kann man auch über analoge 
Messung per Spannungsteiler nachdenken. Dann muss der Analogwert für 
jede Taste verschieden sein und man nimmt ein paar A/D Wandler als 
Eingänge. Hat auch den Charme das keine Frequenzen durch das ganze 
laufen die andere Teile stören können
Gast #6425749
Lesenswert?

Andreas K. schrieb:
> Besten Dank für Eure Anregungen

Jeder Kreuzungspunkt:
1
+5V+5V
2
 |     |
3
 |   10k  +---- Scanrow (die eine, die ausgewertet wurd, auf high)
4
 |    |   |
5
Hall--+--|< NPN
6
 |        |
7
 |        +----+--- Scanline (aktiver Hallsensor bleibt low)
8
 |              |
9
 |             10k common pull down
10
 |              |
11
GND          GND
Die Transistoren wirken als Dioden, also dürfen simultan mehrere 
Hallsensoren aktiv sein. So lange VCC nur 5V beträgt, ist UBE reverse 
kein Problem. Leider braucht man 64 10k pull ups weil die meisten 
Hgallsensoren nur open collector Ausgänge haben. Bei Halsensor mit 
push-pull können die entfallen, braucht auch keine Basisvorwiderstände.
OP #6425812
Lesenswert?

Toby P. schrieb:
> Andreas K. schrieb:
>> Mir geht es
>> darum, eine Version zu entwerfen, bei der der Ausgang des Halls quasi
>> "schaltet". Transistor?
>
> Da brauchst du Schalter, ob Transistor Relais Opto .. ist vom Prinzip
> her egal. Deine Abfrage muss auch schnell genug sein um den "Hallimpuls"
> zu erwischen
>
> Wenn es ein Keyboard ist will man noch wissen ob mehrere Tasten
> gleichzeitig gedrückt wurden, evtl später noch ne Anschlagdynamik usw
> ...
>
> Wird das jetzt weniger Aufwand als mit Schieberegistern?
>
>
> Alternativ, die Ausgänge sind ja aktiv, kann man auch über analoge
> Messung per Spannungsteiler nachdenken. Dann muss der Analogwert für
> jede Taste verschieden sein und man nimmt ein paar A/D Wandler als
> Eingänge. Hat auch den Charme das keine Frequenzen durch das ganze
> laufen die andere Teile stören können

Die MIDI-Encoder, die ich im Blickfeld habe, fragen mit ca. 300Hz ab, 
das reicht locker für jede musikalische Anwendung.
Problem ist halt, wie schon beschrieben, daß die Encoder, die wirklich 
was taugen, mehrheitlich entweder mit 8x8 Diodenmatrix oder mit 64x1 
Scanrow (alle Taster liegen an einem GND-Bus und jeder hat einen Input 
am Encoder) fahren.
Diodenmatrix ist Standard im Musikbereich, Korg, Roland, Kawai, Yamaha, 
alles nutzen das. Teilweise sogar mit zwei oder drei Tastern pro Ton, 
damit man die Dynamik "berechnen" kann (laut, leise...). Hallsensoren 
gibt es nur im professionellen Orgelbau, da aber, wie gesagt, nicht für 
MIDI, sondern eben Ton für Ton auf Rechner und weiter zur 
Leistungsstufe.

Angehängt das übliche Diodenschema mit den Tastern. So läuft das in Mio 
Tastaturen.
Die Taster sollen eben jetzt durch Hall ersetzt werden, da die
1. ewig robust
2. prellfrei
3. besser justierbar sind
4. man nix mechanisch drücken muß, was wiederum zu Lasten des 
Druckpunktes der Tasten geht.
Angehängte Dateien:
OP #6425818
Lesenswert?

MaWin schrieb:
> Andreas K. schrieb:
>> Besten Dank für Eure Anregungen
>
> Jeder Kreuzungspunkt:
>
>
1
> +5V+5V
2
>  |     |
3
>  |   10k  +---- Scanrow (die eine, die ausgewertet wurd, auf high)
4
>  |    |   |
5
> Hall--+--|< NPN
6
>  |        |
7
>  |        +----+--- Scanline (aktiver Hallsensor bleibt low)
8
>  |              |
9
>  |             10k common pull down
10
>  |              |
11
> GND          GND
12
>

Die Elektronik würde 5V+ erhalten, demnach wäre das machbar. Der 10k 
Pulldown ist notwendig? Hat die Auswerte-Elektronik nicht schon 
pull-downs drin?
Pull-Ups kein Problem, SMD.
Die Platine soll immer 8 Halls enthalten, modular erweiterbar über 
Flachstecker... da passen die paar Pull-Ups gut drauf.
Gast #6425822
Lesenswert?

Andreas K. schrieb:
> Das Problem beim Multiplexen der Vss ist ja dann die Reaktionszeit.

Dann verrate doch mal, wie lang die Reaktionszeit sein darf, ohne dass 
es sich störend auswirkt?

> Das haben einige Freaks schon probiert, mit bescheidenen Ergebnissen.

Und du bist sicher, dass die kein Problem in ihrer Verschaltung und dem 
Auswertealgorithmus hatten?
OP #6425829
Lesenswert?

Wolfgang schrieb:
> Andreas K. schrieb:
>> Das Problem beim Multiplexen der Vss ist ja dann die Reaktionszeit.
>
> Dann verrate doch mal, wie lang die Reaktionszeit sein darf, ohne dass
> es sich störend auswirkt?

ab 10ms wird es kritisch, je nachdem, was Du spielst....

>
>> Das haben einige Freaks schon probiert, mit bescheidenen Ergebnissen.
>
> Und du bist sicher, dass die kein Problem in ihrer Verschaltung und dem
> Auswertealgorithmus hatten?

300Hz sollten es schon sein, ist halt Standard bei MIDI... mir geht es 
ja darum, etwas zu entwerfen, was mit bereits erhältlichen Teilen 
kompatibel ist.

Das Problem bei anderen war offenbar, daß die Hallsensoren beim 
Zuschalten offenbar undefinierte Zustände angenommen hatten und just in 
dem Moment eine Abfrage generiert wurde, die dann ein fehlerhaftes 
Ergebnis lieferte.

Auf jeden Fall ist diese Art der Hallverschaltung (Vss über Transistor 
etc. zuschalten) nicht bei instrumentalen Sachen anwendbar, wurde 
probiert, unbefriedigend. Deswegen hängt man ja immer noch auf 
Graphit-Gummi-Kontakten fest oder eben auf Hall mit Einzelton-Einlesung.

Ich weiß, keine befriedigende Antwort auf Deine Frage, aber alle 
MIDI-Hersteller und Lieferanten schütteln den Kopf, wenn ich nach Hall 
und Matrix frage. Selbst hochpreisige im Orgelbau-Zubehör..... da reden 
wir dann mal über 5000 für die Klaviatur, und 15000 für die Elektronik, 
bei 10 Registern und knapp 700 Pfeifen.
Gast #6425867
Lesenswert?

Schau mal ob Du ne alte DDR Tastatur bekommst. ich weis nicht mehr 
welche es war, da war jede Taste mit Hall IC gebaut. Vlt. schau ich mal 
nach, ich müsste sogar noch welche von den Tasten haben.
Gast #6426278
Lesenswert?

Alternativ das ganze per Mikrocontroller und SPI lösen. Sind dann ja nur 
64 Bit durchzuschieben. Du kannst z.B jeweils 8 Tasten an einen Klemmen. 
Da die Hall Tasten ja aktiv sind geht das empfangen auch per Interrupts.

Das lässt sich auch beliebig in Module aufteilen.
Gast #6426331
Lesenswert?

Andreas K. schrieb:
> Wolfgang schrieb:
>> Andreas K. schrieb:
>>> Das Problem beim Multiplexen der Vss ist ja dann die Reaktionszeit.
>>
>> Dann verrate doch mal, wie lang die Reaktionszeit sein darf, ohne dass
>> es sich störend auswirkt?
>
> ab 10ms wird es kritisch, je nachdem, was Du spielst....

Wenn man den Multiplexer nicht ausgerechnet mit Relais aufbaut, sind 
10ms doch überhaupt kein Problem. Das wären gerade 100 Scans pro 
Sekunde, d.h. bei einer 8x8-Matrix hätte man mehr als 1ms pro Spalte ;-)
OP #6426535
Lesenswert?

Falk B. schrieb:
> Eine Handvoll Schieberegister ala 74HC595 oder PCF8574.
>
> Wenn es denn UNBEDINGT eine Matrix sein soll, könnte man
> PNP-Transistoren über den Open Collector Ausgang ansteuern und deren
> Emitter an die geschalteten Zeilen klemmen. Siehe Anhang. Könnte
> funktionieren. Wenn man welche mit integriertem Basiswiderstand nimmt
> ("Digitaltransistor"), wird das auch alles recht klein.

z.B. BCR185 SMD?
Gast #6426661
Lesenswert?

Wenn man Anschlagdynamik will, braucht man das ganze zweimal.

128 Hallsensoren lassen sich leicht mit 16 165er Schieberegistern
einlesen. Man hat ueberhaupt keine Probleme mit Roll-over, vielen
gleichzeitig gedrueckten Tasten und dem Timing.
Die Schieberegister kann mit man direkt per SPI in den Controller
einlesen.

Bautechnischer Vorteil: Man muss keine 128 Strippen von den
Hallsensoren zu einer Auswerteelektronik fuehren, sondern
nur zwei bzw 3. Takt, Daten-In und Daten-Out.
Und kann jeweils einer Gruppe von Tasten eine Baugruppe
mit Schieberegistern zuordnen und dann per SPI kaskadieren.

Kommerzielle Instrumente haben Platinen von Manualgroesse
verbaut. Das will man sich selber vielleicht nicht antun.
Schieberegister erlauben, den gesamten Aufbeu in handliche
Teile zu zerlegen.

Alles andere ist m.E. voellig sinnfrei.
Gast #6426680
Lesenswert?

Aus den Daten kann man natuerlich auch selbst dann MIDI-Befehle
erzeugen. Note-On, Note-Off und aus der Geschwindigkeit des
Anschlags die Velocity.
Kein Grund fuer einen weiteren "komischen" Matrixdekoder.
Persönliche Seite #6426688
Lesenswert?

Larry schrieb:
> Bautechnischer Vorteil: Man muss keine 128 Strippen von den
> Hallsensoren zu einer Auswerteelektronik fuehren, sondern
> nur zwei bzw 3. Takt, Daten-In und Daten-Out.
> Und kann jeweils einer Gruppe von Tasten eine Baugruppe
> mit Schieberegistern zuordnen und dann per SPI kaskadieren.

und schnell genug wäre es auch.
10ms / 54 Tasten = 185us, das entspricht einem Mindest-Bittakt von nur 
5,4 kHz.
Gast #6426698
Lesenswert?

> 5,4 kHz

Wenn man bei der Velocity einigermassen exakte Werte
haben will, muss man da schon einen Zahn zulegen.
Sonst hat man da nur einen Hausnummerngenerator.
Aber selbst 1.28 MHz ist ja fuer HCMOS kein Problem.
Dann hat man alle 100 us eine Abfrage jedes Ein- und
Aus-Hallsensors.
Oder man teilt das auf 2 SPI-Kanaele auf.
Gast #6426855
Lesenswert?

Auf die Schnelle habe ich nicht gesehen, ob folgender Vorschlag schon 
mal kam:

Jedem Hall-Sensor wird ein ein 1-Gatter Analogschalter (z. B. 74HCT1G66) 
und eine Diode zugeordnet. Platz für die beiden Elemente in 
SOT23-Gehäusen, oder auch viel, viel kleiner, sollte sein. Der 
Analogschalter wirkt wie ein potentialfreier Kontakt, so dass die 
Schaltung wieder wie in 
Beitrag "Re: 8x8 Matrix mit Hallsensoren" aussieht. Der 
Hall-Sensor müsste natürlich einen digitalen Ausgang mit aktiv high 
haben.

Prinzipiell würde es statt der '66 auch ein kleiner MOS-FET tun, wenn 
seine Schaltschwelle (und sein Gehäuse sowie sein Preis) klein genug 
ist. Oder 4-fach eine 'HCT4066.
#6429453
Lesenswert?

Andreas K. schrieb:
> Zum Abfragen von Tastenfeldern nutzt man ja gerne Matrizen, z.B. 8x8,
> alles nix Neues.
> Die werden aber logischerweise mit Schaltern realisiert.
> Nun würde ich statt Schaltern gerne Hallsensoren nutzen, Problem:

Kein Problem. Du mußt nur passende Hallsensoren verwenden.

Die Tätärä hat Tastaturen auf dieser Basis gebaut, mit dem B461 
Hallsensor. Der hat 4 Pins: GND, Vcc, Enable (l-aktiv) und Out (open 
collector). Damit konnte man direkt eine Matrix aufbauen. 
Enable-Eingänge als Zeilen und open-collector Ausgänge als Spalten. Der 
Äquivalenztyp zum B461 war der SAS261 von Siemens. Diese historischen 
Typen wirst du nicht mehr bekommen (bzw. nur als Restposten aus 
unzuverlässigen Quellen). Aber neuere Typen dieser Art wird es ja wohl 
geben.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren