Aufbau Tastenmatrix (Frage)

  • Hallo Zusammen,

    ich habe mal eine dumme Frage da ich gerade das erste mal eine Tastenmatrix bzw. die Platine dafür selber aufbauen muss. Ich will 25 Tasten abfragen und dies mit einer 5x5 Matrix lösen. Ich habe mir daher auf eine Lochplatine mal meine Idee zusammengesteckt und wollte mal von euch mit mehr Ahnung davon wissen ob mein Plan so richtig ist. Hier einmal mein Plan. In Rot sind die Leitungen eingezeichnet und grün ist eine Beispielverbindung. Stellt euch da einfach einen Schalter dazwischen vor :)

    matrix.jpg

    Ich habe also Rechts Oben und Unten die jeweils 5 Anschlüsse für Zeilenleser und Zeilentreiber. Dies geht durch jeweils eine Diode. Anschluss Nummer 4 unten ist noch nicht auf diesem Bild, da dies noch eingefügt werden muss. Grün zeigt die Verbindung. Zeilentreiber Nummer 3 ist verbunden mit Zeilenleser 1-5. Soweit richtig?

    Melodeum.de - Wissenswertes zu Harmonium

    • Offizieller Beitrag

    Hallo Haralder

    Grundsätzlich ist alles ok.

    An jeder Diode auf der grünen Seite wird eine Taste angeschlossen. Dahinter werden:

    Die Tasten 1, 6, 11, 16, 21 zusammengeführt und an Zeilenleser 1 angeschlossen

    Die Tasten 2, 7, 12, 17, 22 zusammengeführt und an Zeilenleser 2 angeschlossen

    Die Tasten 3, 8, 13, 18, 23 zusammen an Zeilenleser 3

    Die Tasten 4, 9, 14, 19, 24 zusammen an Zeilenleser 4

    Die Tasten 5, 10, 15, 20, 25 zusammen an Zeilenleser 5

    Die Abfrage geht dann wie folgt:

    Zeilentreiber 1 wird aktiv und Zeilenleser 1, 2.....5. stellt fest welche Taste gedrückt ist.

    Zeilentreiber 2 wirs aktiv und Zeilenleser 1, 2.....5. stellt fest welche Taste gedrückt ist usw

  • Danke, da bin ich froh dass ich es richtig verstanden habe. Wobei es ja nicht so kompliziert ist. Zum Auslesen nutze ich entweder mein Arduino Due mit meinem seit 2 Jahren erprobten Code oder meinen Pi Pico. Beim Verkabeln wird es eben immer etwas doof und wenn du ein Kabel falsch steckst, dann viel Spaß beim finden des Fehlers :) Vielleicht sollte ich da unterschiedliche Farben nehmen, oder zumindest beschriften.

    Ich frage mich gerade ob man bei einem Pedal tatsächlich die Dioden braucht. Ohne wird es bei mehr als zwei Tasten schwierig die dritte zu erkennen, wobei man das mit Microcontroller und cleverer Software noch lösen könnte. Aber da man ja nur zwei Füße hat wäre auf einem Pedal das Szenario mehr als zwei Tasten gleichzeitig drücken ja eher ausgeschlossen. Auf der anderen Seite tun die 30 Cent für Dioden nicht weh und Löttraining schadet auch nie :)

    Melodeum.de - Wissenswertes zu Harmonium

    • Offizieller Beitrag

    Die Dioden dienen zur Sicherheit der Zeilentreiber.

    Beispiel ohne Dioden:

    Du betätigt gleichzeitig die Taste 1 und 6.

    Der Zeilentreiber 1 beginnt die erste Abfrage und schaltet Spannung auf den Treiberausgang. Durch die gleichzeitige Betätigung der Tasten 1 und 6 geht diese Spannung auf den Treiberausgang 2. Der ist bei der Abfrage durch Zeilentreiber 1 noch ausgeschaltet und kann Schaden nehmen.

    Gleiches gilt für Taste 1 und 11 mit Treiber 3

    Ob die Dioden vom Treiber zum Leser geschaltet sind oder entgegengesetzt ist vom verwendeten Treiber abhängig. Ob dieser zum Auslesen von Null auf Spannung oder von Spannung auf Null schaltet

    • Offizieller Beitrag

    Wenn du alle Tasten einzeln mit Leitungen zum Scanner führst hast du 25 Tastenleitungen plus eine Ansteuerungsleitung.

    Werden die Dioden direkt an die Pedalkontakte angelötet hast du gesamt 10 Leitungen zum Scanner (5 Treiber, 5 Leser)

    Positioniert du die Dioden auf der Platine hast du 25 Leitungen von den Dioden zu den Tasten und 5 Leitungen zu den Zeilenlesern. Dann musst du an den Pedalkontakten zusätzlich 1 mit 6 und 11 usw verbinden.

    Fazit: Mit den Dioden auf der Platine hast du mehr Aufwand als mit Einzelverdrahtung.

    Wenn Matrix, dann die Dioden direkt an den Kontakten

  • Ich habe noch einmal nachgeschaut auch im Code. Die Abfrage ist eigentlich ganz simpel:

    Also würden im besten Falle ja eigentlich 5 Dioden ausreichen oder? Ich muss ja nur sicherstellen das keiner der Output Pins die auf HIGH stehen untereinander sich treffen um einen Kurzschluss auszuschließen. Danach ist im Grunde ja immer nur noch ein Pin auf HIGH und der Strom kann dann ja nur noch einen nachvollziehbaren Weg fließen und das Ergebnis ist dann ja eindeutig.

    Fazit: Mit den Dioden auf der Platine hast du mehr Aufwand als mit Einzelverdrahtung.

    Wenn Matrix, dann die Dioden direkt an den Kontakten

    Die Idee hatte ich auch, aber ich habe vorausschauend geplant. Jetzt habe ich einmal mehr Arbeit, aber nach meiner Erfahrung verändert sich alles ja mit der Zeit. Wenn alles auf dieser Platine ist, dann kann ich sie später ja auch für andere Zwecke ohne neuen Aufwand verwenden. Also wenn es kein Pedal mehr abfragen soll sondern Register, dann dann wird einfach der Reedkontakt abgezogen und ein Kippschalter angesteckt ohne dass ich dann noch etwas löten muss.

    Melodeum.de - Wissenswertes zu Harmonium

    • Offizieller Beitrag

    5 Dioden reichen nicht

    Z.B.

    Treiber 1 ist mit 5 Dioden an den Tasten 1 bis 5 ausgerüstet und wird aktiv. Dann betätigt man Taste 1 und 6 gleichzeitig. Da diese auf der anderen Seite verbunden sind bekommt Treiber 2 die Spannung von Treiber 1 abzüglich der Diodenspannung (ca 0,7V) über die Taste 6 auf seinen inaktiven Ausgang und wird zerstört. Das geschieht hardwaremäßig. Vom Programm und Ablauf der Steuerung ist alles ok. Selbst wenn keine Dioden verwendet werden. Jede Diode ist ein Schutz für den Treiberausgang.

    Bedeutet: alle Treiber mit allen Kontakten müssen mit Dioden abgesichert sein.

    Eine Ausnahme wäre nur wenn man Treiber mit Tristateausgängen einsetzt. Das bedeutet, dass eine Zusätzliche Elektronik zur Ansteuerung der Tristate nötig wird.

    Alle Tasten mit Dioden ausrüsten ist die einfachste und preiswerteste Idee

    • Offizieller Beitrag

    Wenn alles auf dieser Platine ist, dann kann ich sie später ja auch für andere Zwecke ohne neuen Aufwand verwenden. Also wenn es kein Pedal mehr abfragen soll sondern Register, dann dann wird einfach der Reedkontakt abgezogen und ein Kippschalter angesteckt ohne dass ich dann noch etwas löten muss.

    Das stimmt. Du hast nur mehr Kabel zu verlegen

    • Offizieller Beitrag

    Du hast also direkt an den Dioden die Stiftleisten für die Taster und am Leser die gesammelte Stiftleiste der Taster vom anderen Kontakt angeordnet. Alles klar, so funktioniert es. Selbstverständlich reichen Dioden vom Typ:

    1N 4401 o.ä.. Es fließt ja kaum Strom

    Die dicken Dioden 1N 4007 o.ä. sind sperrig und auch teurer

  • Die dicken Dioden 1N 4007 o.ä. sind sperrig und auch teurer

    Die 1N 4401 sind in meinen Augen sogar schon viel zu groß bemessen, aber mit 4 Cent pro Stück geht das in Ordnung. Kleinere Dioden sind sogar etwas teurer und auf der Lochplatte kann ich eh nicht kleiner bauen. Wenn ich eine Platine selber entwerfen würde, dann wäre es was anderes. Die Daten sind ja 50V, 1A.

    Der Pi Pico hat maximal an allen Pins 3,3 V und etwa 2-4 mA. Der Arduino Due kann ein par mA mehr, aber die Dioden juckt das vermutlich nicht einmal :)

    Melodeum.de - Wissenswertes zu Harmonium

  • Ich überlege gerade ob nicht I2C eine sinnvolle Alternative zu den Matrixschaltungens ein könnten. ( https://de.wikipedia.org/wiki/I2C )

    Vor allem bei einem Pedal kann man sich für wenig Geld fertige Reed Module kaufen wie hier: https://www.berrybase.de/bauelemente/sc…dschalter-modul und schraubt diese fest, klebt Magnete auf und verbindet alles mit einem Kabelstrang. Auch bei der Programmierung wäre es wohl trivialer als eine Matrix.

    I2C.svg

    Wobei es für den Einsteiger wohl mit den Widerständen und so etwas komplizierter sein könnte und wenn dann etwas nicht funktioniert, dann reicht es ja nicht mit einem Messgerät mal den Durchfluss zu prüfen... Aber ein Experiment wäre das mal wert und selbst bei großen Manualen mit vielen Tasten wäre das umsetzbar.

    Melodeum.de - Wissenswertes zu Harmonium

  • Stimmt, aber ich sehe durchaus vorteile. Digital mit Fehlererkennung hat schon Vorteile. Ich vermute einmal von der Latenz wird das nicht viel ausmachen.

    Wenn ich schaue das ein einzelner Reedkontakt aktuell um die 1,50€ kostet da ist so eine fertige Platine die man sicher montieren kann schon für 1,10€ ein Schnäppchen. Natürlich würde diese Konstruktion nicht mit fertiger Hardware laufen.

    Aber ein echtes Pedal könnte man so Mühelos midifizieren. Ich würde die Module oben direkt anbringen, so dass diese Geschlossen sind und man das Pedal drückt der Magnet sich entfernt und der Kontakt sich öffnet. Eigentlich macht man es ja umgekehrt, aber ich persönlich habe bessere Erfahrungen damit gemacht im Zustand Aus den Kreis geschlossen zu haben. Warum? Weil es sich besser und genauer bauen lässt. Dem Controller ist es ja egal ob er bei Geschlossen ein NoteON oder ein NoteOFF sendet.

    Melodeum.de - Wissenswertes zu Harmonium

  • Korrekt, zusätzlich wird beim loslassen der Taste durch das schnelle zurückgehen des Magneten ein Prellen sehr gut verhindert. Wobei zugegeben das Prellen ist ohnehin eher ein theoretisches Problem heutzutage. Wenn ich ein Kontakt direkt auf Ground ziehe beim Schließen, dann kann das zum Problem werden weil ich den Zustand sehr oft und schnell auslesen kann. Bis ein Mikrocontroller mit elektrischen Pausen und abarbeiten durch eine 8x8 Matrix geschaltet und geprüft hat, bis dahin ist das Prellen ohnehin schon vorbei.

    Ich gebe der Elektronik nach jedem umschalten eines Pins ein "delayMicroseconds(5);" und dann wenn die Matrix einmal durch ist noch einmal "delayMicroseconds(500);" bevor es von vorne losgeht. Natürlich erhöht das die Latenz etwas, aber wir müssen ja nun nicht über ein paar Mikrosekunden streiten. Bei einer Orgel hat das ja absolut keinerlei Relevanz.

    Melodeum.de - Wissenswertes zu Harmonium