Nimm doch einfach nen Portexpander.
Dann kannst du hunderte Digitalpins haben....
Nimm doch einfach nen Portexpander.
Dann kannst du hunderte Digitalpins haben....
Grüssle, Sly
..dem Inschenör ist nix zu schwör..
Bei Verwendung eines Portexpander kann ich immer nur eine Taste simultan verwenden. Drücke ich mehrere Tasten gleichzeitig, wird dies durch die Logik des Portexpander dennoch als eine (völlig andere) Taste interpretiert. Gehen die Tasten jedoch direkt einzeln in einen eigenen Digital-In, so wird jede Taste entsprechend interpretiert, auch bei gleichzeitigem drücken mehrerer Tasten.
Andi
Ich hab mir das mal mit den Teensy angeschaut. Klingt recht gut. Ausreichend DigitalPIN, geringe Baugröße (die kann man gut direkt auf einer anderen Platine mit auflöten). Und das Anpassen der Arduino-Sketches scheint nicht so kompliziert zu sein. Habe da noch nicht weiter gegoogelt, aber ich denke, auch für die Anpassung der Sketches werde ich fündig werden.
Andi
Geändert von Andi#87 (13.01.2019 um 12:02 Uhr)
Dann verschalt die Tasten als Matrix.
Guck mal, das geht mit nem Uno schon: https://www.youtube.com/watch?v=lXX8v-ZW6Tk
Hast du so viele Tasten?
Ich lese ein 61-Tasten-Keyboard _ohne_ Portexpander mit nem Mega 2560 ganz problemlos ein- und ja: auch mehrere Tasten simultan.
Grüssle, Sly
..dem Inschenör ist nix zu schwör..
Ich verstehe nicht, wie das funktionieren soll. Ein Portexpander-IC macht letztlich nichts weiter, als eine typische Binär-Matrix zu erstellen bzw. abzufragen. Also, z.B.: 0-0-0, 0-0-1, 0-1-0, 0-1-1, 1-0-0-, 1-0-1 usw. Wenn ich nun 2 Tasten gleichzeitig drücke, entsteht doch dort ein völlig anderes "Gebilde". Oder hab ich hier einen Denkfehler?
Andi
Aha. Ok, vielen Dank.
In welchem Zeitintervall werden dann diese DigitalPIN vom Prozessor abgefragt? Ist das im unteren Millisekundenbereich?
Andi
Nö- von alleine fragt der gar nix ab.
Entweder du benutzt Interrupts (dann merkt er automatisch, wenn du was drückst oder loslässt) oder aber du sagst ihm, wie oft er die Eingänge abfragen soll.
Da ich weder mit Leonardos noch mit Micros arbeite, weiss ich nicht, wie lange das Einlesen dauert, aber da es um digitale Eingänge geht, wirds nicht schlimm sein (analog dauert ein klein bisschen) auf jeden Fall weit schneller als man Tasten drücken könnte- denk dabei auch ans entprellen.
Bei manuell betätigten Tasten sind Frequenzen im einstelligen Millisekundenbereich völlig illusorisch (so schnell _kann_ man sie nicht drücken), wenn du die also alle 2/100s einliest (und das geht, wenn man nich im Hautprogramm rumtüdelt), wird das vollkommen reichen.
Wie gesagt: entprellt werden muss sowieso, egal wie man das anstellt: es wird länger dauern als das Einlesen selber.
Falls du es wirklich genau wissen musst: Dokus lesen. Irgendwo auf den Arduino-Seiten (den richtigen, nich abgeschriebener Kram) steht, wie man die Zeit, die die loop() für einen Durchlauf braucht, messen kann.
So kannst du leicht ermitteln, wie schnell alles läuft.
Grüssle, Sly
..dem Inschenör ist nix zu schwör..
Lesezeichen