Hallo Zusammen, Ich möchte 118 einzelne Taster auswerten. Da diese leider nicht alle auf einer Platine verbaut werden können, da die Gesamtfläche nicht produzierbar ist, wird es einzelne Module geben welche zwischen 10 und 40 Tasten beinhalten werde können. Nun ist meine Frage, wie das am besten gelöst werden kann. Ich habe mir bereits einige Schaltpläne angeschauft, dort wird oft die Matrix-Variante verwendet, dies würde in meinem Fall aber bedeuten, das man die Matrix über alle Platinen verbindet. Das wären bei 118 Tastern aber mindestens 11x11, also 22 Datenleitungen. Dazu kommt das jeder Taster zwei korrespondierende WS2812 besitzt, somit müssen bereits 3 Leitungen auf jedes Modul gebracht werden (5V, GND, Signal) Daher wäre mir eine Lösung welche z.b. mit I2C arbeiten würde lieber. Auch wäre wäre gut wenn die Lösung so wäre, das einzelne Schalter sich nicht "aussperren", also mehrer Taster gedrückt/nicht gedrückt sein dürfen. Am Ende möchte ich das Tastenergebniss auf einem Rpi auswerten, es kann aber auch ein Microcontroller das Endresultat bereitstellen, das wäre kein Problem. Hat jemand eine gute Idee wie das lösbar ist?
Johnny S. schrieb: > Hat jemand eine gute Idee wie das lösbar ist? 3 Stück HT16K33, wenn auch Overdressed wegen der ungenutzten Matrix für die LED-Ansteuerung. https://cdn-shop.adafruit.com/datasheets/ht16K33v110.pdf
:
Bearbeitet durch User
Oder 8 StücK MCP23017. Ich persönlich würde ja die APA102 dem bescheuerten WS2812 Timing vorziehen, gerade wenn man z.B. mit RPI arbeiten will. Dann kann man ganz normales SPI nutzen ohne irgendwelche Timing-Probleme.
Johnny S. schrieb: > da die Gesamtfläche nicht > produzierbar ist Ach, wieviel Quadratkilometer werden es denn dass du alle Platinen der Welt nicht reichen werden... Johnny S. schrieb: > zwischen 10 und > 40 Tasten beinhalten werde können. Und die Anzahl wird dann aus der Glaskugel entnommen, oder wirfst die Taster dann in die Luft um das konkret fest zu legen? Johnny S. schrieb: > Ich habe mir > bereits einige Schaltpläne angeschauft, Als nächstes kannst du dann ja noch die Zeitung lesen... Johnny S. schrieb: > das > man die Matrix über alle Platinen verbindet Stimmt, das wäre ja nicht in jedem Fall der Fall, wenn du jedes Modul mit einem Akku austsattest und sie per Funk verbindest würde das vermieden werden, dass also als Denkansatz von mir als Vorschlag... Johnny S. schrieb: > Daher wäre mir eine Lösung welche z.b. mit I2C arbeiten würde lieber. Am besten I2C Taster mit Funk und intregiertem Akku. Johnny S. schrieb: > die Lösung so wäre, das einzelne Schalter Schalter werden auch noch verbaut? Johnny S. schrieb: > also mehrer Taster gedrückt/nicht gedrückt sein > dürfen. Dann musst du erstmal festlegen welche im Normalzustand nicht gedrükt sind, damit sie nicht nicht gedrückt werden können... Johnny S. schrieb: > Microcontroller das Endresultat bereitstellen Bevorzugt auf einem Tablett? Oder einem Teller? Johnny S. schrieb: > Hat jemand eine gute Idee wie das lösbar ist? Du möchtest demnach einen Taster mit integriertem I2C, Akku und Funkschnittstelle welcher sich zwischen 10 und 40 mal auf einer etwas weniger als Erdumfassend großen Platine anordnen lässt. SO ETWAS GIBT ES NICHT :-)
Mein Klavier hat 88 Tasten mit jeweils 2 Kontakten, verteilt auf 3 Platinen. Die sind als ganz normale Matrix verschaltet. Wenn du nicht so viele Leitungen verlegen willst, könnten Schieberegister (74LS595) eine sehr preisgünstige Alternative sein. Die kannst du beliebig verketten. Die Taster kannst du direkt (ohne Widerstände) an die IC's anschließen, weil bei der 74LS Serie offene Eingänge von alleine auf HIGH liegen.
Stefan ⛄ F. schrieb: > Wenn du nicht so viele Leitungen verlegen willst, könnten > Schieberegister (74LS595) eine sehr preisgünstige Alternative sein. Ich glaube, Du hast dich versehen. Er braucht ja Schieberegister-Eingänge.
Stefan ⛄ F. schrieb: > Wenn du nicht so viele Leitungen verlegen willst, könnten > Schieberegister (74LS595) eine sehr preisgünstige Alternative sein. Damit alleine werden sich die Tasten nicht abfragen lassen. Ein paar 74hc165 o.ä. wird man noch zusätzlich brauchen.
Harald A. schrieb: > Ich glaube, Du hast dich versehen. Er braucht ja > Schieberegister-Eingänge. Oh die habe ich verwechselt. Richtig sind 74LS165.
Ich ziehe die 597er vor: da liegen immerhin 7 der 8 Eingänge auf einer IC-Seite.
Stefan ⛄ F. schrieb: > Harald A. schrieb: >> Ich glaube, Du hast dich versehen. Er braucht ja >> Schieberegister-Eingänge. > > Oh die habe ich verwechselt. Richtig sind 74LS165. Sag mal lieber HC, die LS sind ja aus dem Pleistozän der Elektronik. Und die Schieberegister ließen sich zusammen mit APA102 dann über eine einzige SPI bedienen, braucht man nichts außerhalb des RPI programmieren.
Harald A. schrieb: > Ich glaube, Du hast dich versehen. Er braucht ja > Schieberegister-Eingänge. nope, warum das. Er braucht nur einen Eingang am Controller. Dann lässt wer eine einzelne 1 durch die Register sausen, an jedem Regitser Ausgang ist ein Taster, alle Tasten sind mit dem einen Eingang verbunden... Man zählt intern die Takte mit und merkt sich wann der Eingang high geworden ist. Daraus resultiert ein Array aus 118 Bits in denen ständig der aktuelle Zustand der einzelnen Tasten abgelegt ist....
Thomas S. schrieb: > Johnny S. schrieb: >> Ich möchte 118 einzelne Taster auswerten. > > Sind diese irgendwie gruppiert? Ja auf ihrem Modul sind diese grundsätzlich schon "gruppiert" aber jedes Tastenevent ist eine einzelne Aktion Harald A. schrieb: > Oder 8 StücK MCP23017. Ich persönlich würde ja die APA102 dem > bescheuerten WS2812 Timing vorziehen, gerade wenn man z.B. mit RPI > arbeiten will. Dann kann man ganz normales SPI nutzen ohne irgendwelche > Timing-Probleme. APA102 (2020 Bauform) habe ich mir angesehen, leider kann ich die aber nicht direkt bestücken lassen bei JLCPCB. Für die Led habe ich mir überlegt auch allenfalls einen kleinen MCU zu setzen der das betreibt. Jürgen schrieb: > Johnny S. schrieb: >> da die Gesamtfläche nicht >> produzierbar ist > > Ach, wieviel Quadratkilometer werden es denn dass du alle Platinen der > Welt nicht reichen werden... Alles auf einer Platine wären ca. 780x490mm, mit extrem viel Leerfläche.. > Johnny S. schrieb: >> zwischen 10 und >> 40 Tasten beinhalten werde können. > > Und die Anzahl wird dann aus der Glaskugel entnommen, oder wirfst die > Taster dann in die Luft um das konkret fest zu legen? > Johnny S. schrieb: >> das >> man die Matrix über alle Platinen verbindet > > Stimmt, das wäre ja nicht in jedem Fall der Fall, wenn du jedes Modul > mit einem Akku austsattest und sie per Funk verbindest würde das > vermieden werden, dass also als Denkansatz von mir als Vorschlag... K > Johnny S. schrieb: >> Daher wäre mir eine Lösung welche z.b. mit I2C arbeiten würde lieber. > > Am besten I2C Taster mit Funk und intregiertem Akku. Keine Option, Akkus in einem Gehäuse das so oder so schon an Spannungsversorgung angeschlossen ist, ist nicht sinnvoll. > Johnny S. schrieb: >> Microcontroller das Endresultat bereitstellen > > Bevorzugt auf einem Tablett? Oder einem Teller? Nein, damit war gemeint, das es kein Problem ist, vor dem Raspberry nochmals einen MCU zu setzen, welcher dann z.b. über USB als HID-Tastatur die Tastenevents übergibt, oder ähnlich. Es muss nicht zwingend eine Lösung sein die direkt an den RPi angeschlossen werden kann
Jürgen schrieb: > alle Tasten sind mit dem einen Eingang > verbunden... Ja, meinetwegen auch so. Würde ich persönlich angesichts der räumlichen Ausdehnung der Baugruppe nicht bevorzugen.
Die „fehlende“ APA102 bei JLCPCB hat mich auch schon geärgert. Gehe zu PCBWAY, auch durchaus bezahlbar.
:
Bearbeitet durch User
Harald A. schrieb: > Sag mal lieber HC, die LS sind ja aus dem Pleistozän der Elektronik Dann brauchst du für jeden Taster noch einen extra Widerstand. An dieser Stelle sind die LS Typen vorteilhafter.
Johnny S. schrieb: > Ja auf ihrem Modul sind diese grundsätzlich schon "gruppiert" aber jedes > Tastenevent ist eine einzelne Aktion Dann male mal grob auf, wie diese gruppiert sind. Denn damit fängt dann das TTL-Grab an, mit Latche und Schieberegister. Und ob 3,3V, 5V oder 12V an den Tasten sind.
Stefan ⛄ F. schrieb: > Harald A. schrieb: >> Sag mal lieber HC, die LS sind ja aus dem Pleistozän der Elektronik > > Dann brauchst du für jeden Taster noch einen extra Widerstand. An dieser > Stelle sind die LS Typen vorteilhafter. Ja okay, hatte ich schon verdrängt nach all der Zeit… werden die LS echt noch aktiv produziert?
> die LS Typen vorteilhafter
Schon, aber mir wäre die Stromaufnahme zu hoch. 15* 35 mA, oder? Dann
doch lieber ein Widerstand je Taster.
S. Landolt schrieb: > Schon, aber mir wäre die Stromaufnahme zu hoch. 15* 35 mA, oder? Im Datenblatt von Fairchild sind es typisch 21 mA.
Harald A. schrieb: >> Dann brauchst du für jeden Taster noch einen extra Widerstand. An dieser >> Stelle sind die LS Typen vorteilhafter. Es sind in einem Tasten-Array keine Widerstände nötig. Außer zum Beleuchten der Tasten
Noch etwas: wenn Du pro Platine eine CPU bevorzugst, prüfe vorher, was Du derzeit überhaupt noch bekommen kannst. Ein paar Schieberegister könnten einfacher zu bekommen sein. Und bei einer CPU kommt auch noch hinzu, dass die eigentliche Programmierung bis zu einer wirklich stabilen Software am Ende des Tages doch mehr Aufwand war als geplant. Ein paar Schieberegister I2C oder SPI per RPI auslesen ist dagegen recht banal.
Jürgen schrieb: > S. Landolt schrieb: >> 597er > > sind schwer zu kriegen. Alleine Digikey hat von den 74HC597 aktuell um die 14000 liegen, so viele, dass sie dir davon sogar welche verkaufen würden. Gut 5000 davon wären sogar für Retroprojekte in THT geeignet.
> Datenblatt von Fairchild
Ich habe hier ein altes von TI. Aber auch die rund 300 mA wären viel.
Thomas S. schrieb: > Es sind in einem Tasten-Array keine Widerstände nötig. Klar, aber wir meinten das, wenn die Taster einzeln direkt an die Eingänge des Schieberegisters angeschlossen sind - ohne Matrix.
Thomas S. schrieb: > Harald A. schrieb: >>> Dann brauchst du für jeden Taster noch einen extra Widerstand. An dieser >>> Stelle sind die LS Typen vorteilhafter. > > Es sind in einem Tasten-Array keine Widerstände nötig. Außer zum > Beleuchten der Tasten Der erste Text kam von Stefan, nicht von mir. Außerdem braucht er bei einer APA102 oder WS2812 einen Kondensator, keinen Widerstand.
Ohne jetzt den ganzen Thread durcgelesen zu haben, Johnny S. schrieb: > Nun ist meine Frage, wie das am besten gelöst werden kann. Ich habe mir > bereits einige Schaltpläne angeschauft, dort wird oft die > Matrix-Variante verwendet, dies würde in meinem Fall aber bedeuten, das > man die Matrix über alle Platinen verbindet. Das wären bei 118 Tastern > aber mindestens 11x11, also 22 Datenleitungen. Das würde ich tatsächlich mit PCF8574 Lösen, Dan hast du nur 4 Leitungen die du zu allen Platienen leiten musst. Das schöne ist nämlich wenn du diese PCF8574 richtig Betreibst, kannst du bsw. eine 4x4 Matrix(16 Tasten)auch auf 2 Platinen Aufteilen und bsw. 2 2x4 Matrix mit der selben i²C Adresse ansteuern und Trotzdem die Tasten aus dieser Matrix beliebig auf den Print verteilen und als 4x4 Matrix auswerten. Mit ein paar Dioden kannst du die Matrix aus einem PCF8674 aber auch vergrößern auf bsw 8x4 Tasten usw. Oder auch 2 Tastenfelder mit den Selben Funktionen belegen (Etwa wenn eine Notstop Taste auf jedem Tastenfeld sein sollte, So kann man ohne großen Aufwand eine Matrix von 16x4(64 Tasten) mit nur einem PCF8574 pro Print realisieren.. In verschiedenen Anwendungen habe ich das so Realisiert.
Johnny S. schrieb: > Dazu kommt das jeder Taster zwei korrespondierende WS2812 besitzt, somit > müssen bereits 3 Leitungen auf jedes Modul gebracht werden (5V, GND, > Signal) Das sind dann schonmal 7A auf den 5V. Typisch nimmt man dafür eine 24V Hauptversorgung und alle paar (8..12) WS2812 einen TSR 1-2450 als Step-Down. Für die Tasten würde ich 15 Stück 74HC165 kaskadieren. Und als Pullups dann 8-fach Widerstandsnetzwerke.
:
Bearbeitet durch User
Peter D. schrieb: > Das sind dann schonmal 7A auf den 5V. > Für die Tasten würde ich 15 Stück 74HC165 kaskadieren. Und als Pullups > dann 8-fach Widerstandsnetzwerke. Wenn man den 74LS165 verwendet, braucht man keine Widerstände. Die Chips nehmen zwar mehr Strom auf als die HC Typen, aber im Vergleich zu den 7A kann man das hinnehmen, denke ich.
Stefan ⛄ F. schrieb: > Wenn man den 74LS165 verwendet, braucht man keine Widerstände. Die Chips > nehmen zwar mehr Strom auf als die HC Typen, aber im Vergleich zu den 7A > kann man das hinnehmen, denke ich. Bei LS sind die Eingänge Multi-Emitter und werden nur bis zur Schwellspannung aufgeladen, d.h. man hat keinerlei Störabstand. Es war mir schon bei Standard-TTL aufgefallen, daß man offene Eingänge prima mit einem Schraubendreher triggern konnte. Da LS deutlich weniger Strom ziehen, dürften offene Pins nochmal wesentlich störempfindlicher sein. Ich würde daher bei LS die Pullups besser nicht einsparen, ist ja nur ein Bauteil je 8 Eingänge.
Stefan ⛄ F. schrieb: > Wenn man den 74LS165 verwendet, braucht man keine Widerstände. Die Chips > nehmen zwar mehr Strom auf als die HC Typen, aber im Vergleich zu den 7A > kann man das hinnehmen, denke ich. Schmarrn. Wenn man schon die "teueren" Pull-Up Widerstände einsparen will, nimmt man 8xPCF8574 + 8xPCF8574A, (=128 IOs). Die haben interne Pull-Ups.
Falk B. schrieb: > Schmarrn. Wenn man schon die "teueren" Pull-Up Widerstände einsparen > will, nimmt man 8xPCF8574 + 8xPCF8574A, (=128 IOs). Die haben interne > Pull-Ups. Habe ich ja schon Vorgeschlagen, weil ich das selber oft so Umsetze, Und dank der Bidirektionalität dieser Bauteile ist auch das Unterbringen von LED sehr einfach zu realisieren. Als Beispiel (Siehe Bild) Wenn weniger LED gebraucht werden kann man sich sogar die Transistoren sparen.
:
Bearbeitet durch User
Patrick L. schrieb: > Habe ich ja schon Vorgeschlagen, weil ich das selber oft so Umsetze, Ein "sehr übersichtlicher Schaltplan", besonders durch das eingeblendete Raster. Ich würde die Leitungsbündel noch enger legen, so wie im Layout! 0,2mm Strichbreite und Abstand!
Falk B. schrieb: > Patrick L. schrieb: >> Habe ich ja schon Vorgeschlagen, weil ich das selber oft so Umsetze, > > Ein "sehr übersichtlicher Schaltplan", besonders durch das eingeblendete > Raster. Ich würde die Leitungsbündel noch enger legen, so wie im Layout! > 0,2mm Strichbreite und Abstand! Falls jemand Interesse hätte könnte ich ja das Schema selber Verlinken, aber da ich unterwegs bin habe ich halt nur die Photos auf dem Handy zur Verfügung. PS: ...Man glaubt gar nicht was man so alles zeitlich machen kann, wenn man vor einer geschlossenen Bahnschranke wartet... Und abgesehen davon ist es ja nur als "Gedankenstütze" gedacht und nicht als "Copy & Paste"
:
Bearbeitet durch User
Hi. Ich hatte beruflich mal fast die gleiche Aufgabenstellung: 96 Taster auf 4 Modulen verteilt und jeder Taster mit RGB LED. Sollte allerdings alles von einem Linux gesteuert werden. Gelöst habe ich das mit 74xx165 und SPI und die Verbindungen über 10 polige Flachbankabel, alle Module in Reihe. Von hier bin ich damals gestartet: ucapps.de -> din Viel Erfolg
An den 74HC165 gefällt mir die einfache Möglichkeit zum Kaskadieren. Die PCF8574/A müssen dagegen einzeln adressiert werden. Die 8-fach Pullups gibt es als SMD oder THT: https://de.farnell.com/bourns/cay17-103jalf/widerst-netzwerk-8fach-10k-5-smd/dp/2321752 https://de.farnell.com/multicomp/mcrnla09g0103b0e/widerstandsnetzwerk-10k-2-1-8w/dp/1973141
Thomas S. schrieb: > Es sind in einem Tasten-Array keine Widerstände nötig. Aber Dioden, also nix gespart...
:
Bearbeitet durch Moderator
Lothar M. schrieb: > Aber Dioden, also nix gespart... Nur wenn du "n-Key-Rollover" willst. Oder eben IC sparen. dann ist die Diode wieder sehr gut gespart! Bei 4x4 Matrix ohne "n-Key-Rollover" reicht der PCF8574x plus 16 Taster.
:
Bearbeitet durch User
Stefan ⛄ F. schrieb: > Der I²C Port Expander MCP23017 hat 16 I/O Pins. Ja wenn du alle Tasten auf ein PCB willst, gebe ich dir 100% Recht. Da kannst du nämlich eine Matrix mit nur passiven Bauteilen(Dioden & Co) von 256x8 Tasten machen ;-) oder wie in Midikeyboards 88Tasten mit Anschlagdynamic und Aftertouch, und brauchst nur 1 IC... plus für I²C to Midi in 8 oder 6 Pin µC ;-) Wen aber nicht mehr als 64 Tasten auf einem Print sind, reicht der PCF8574 plus ein paar Passive ;-) oder bis 16 Tasten ohne "n-Ker-Rollover" sogar nur der PCF8574x.
:
Bearbeitet durch User
Also eine Möglichkeit wäre es einen KeyWarrior100 zu nehmen, der bedient eine Tastenmatrix bis zu 24 x 16, die könnte man so aufsplitten, dass die Leitungen nicht zu lang werden und bis zu 500 WS2812 u.ä. kann er auch ansteuern. https://www.codemercs.com/de/tastatur/24x16-matrix
Guido K. schrieb: > KeyWarrior100 zu nehmen, Hmmm, wen schon darüber diskutiert wird ob jetzt billiger eine Diode oder ein Widerstand, oder Aufwand der Software für ein µC in frage gestellt wird? Dan denke ich ist der (KeyWarrior100 zweifelsohne sinnvolles Teil) ein bisschen, "...mit Kanonen auf Spatzen.." den der braucht doch einiges an R's und C's drum herum. und ich meinte sogar fas auch noch ein Quarz, kann mich aber auch irren. ist ne weile her wo ich mich mit dem Befasst habe, bevor ich dann eine andere Lösung gesucht hatte.
Wenn ich das richtig sehe, hat der TE dieses Projekt für sage und schriebe 32min verfolgt, danach kein weiterer Kommentar mehr.
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.