Beiträge von thorle

    So, hier die D-Pad Version.


    allerdings prellen die dinger extrem

    Man könnte vielleicht die debounceTime etwas erhöhen und schauen ob das hilft.


    der arduino schreibt sogar nach dem abstecken des sensors brav weiter seine buchstaben raus

    Die Pins für die Touchsensoren sind ja anders konfiguriert als die für die Taster. Wenn an den Pins für die Touchsensoren nichts angeschlossen ist, werden da zufällige Werte ausgelesen, es kann also mal sein, dass es glaubt eine Taste wäre gedrückt und dann mal wieder nicht.

    mit ner büroklammer verbunden

    Am erbaulichsten finde ich nicht das Bild sondern diese Aussage ^^. Also wenn einer oder mehrere Taster/Sensoren nicht funktioniert hätten, hätte ich da den Fehler vermutet.

    Und der Pro Micro ist nicht mehr im Sortiment.

    Ich hab vor ein paar Tagen mal etwas dazu recherchiert. So wie es aussieht gab es den Pro Micro gar nie von Arduino. Der ist wohl ursprünglich von Sparkfun entwickelt worden. Es gibt nur den Arudino Micro, der relativ ähnlich ist. Er ist aber 13mm länger und hat ein paar Pins mehr.

    wie geschrieben ... anderes kabel, andere ports andere computer

    Hatte ich wohl überlesen.


    verkabelung hab ich hier RE: [suche fast erledigt] gaming keypad eigenbau - simple elektronik und weiteres gesucht aufgezeichnet.

    das lustige: es ging ja mit der verkabelung schon.

    Es gibt aber einige Details, die da nicht erkennbar sind. bspw. haben die Schalter ja 3 Anschlüsse. Welchen der 3 hast du womit genau verbunden bzw. offen gelassen? Bei den Touchsensoren ist es ähnlich (wobei da die Bezeichnungen GND und VCC schon sehr eindeutig sind).

    Ich hab halt keine Ahnung wie viel Erfahrung/Ahnung du in dem Bereich hast.

    kann man da irgend ne onboard-led (hab nix lötbares da) bei erkanntem druck leuchten lassen?

    Du könntest in Zeile 114 (also unter lastpressed = millis();) das einfügen digitalWrite(ledPin, state);, dann sollte eine onboard LED immer leuchten, wenn ein Key gesendet wird.

    Wenn ich mir das jetzt richtig überlegt habe, sollte es dann in dem Moment angehen, wo eine Taste gedrückt wird und in dem Moment ausgehen, wenn eine Taste losgelassen wird. Wenn du also z.B. 2 Tasten drückst geht sie an, aber sobald du nur eine wieder loslässt, geht sie wieder aus, auch wenn die 2. noch gedrückt ist. Das ist jetzt die einfachste Codeänderung, die mir spontan einfällt.


    ich denke, das ding ist hinüber

    Hast dus mal mit nem anderen USB-Kabel versucht? Ansonsten könnte natürlich eine falsche Verkabelung auch Probleme machen, wie tiroler andeutet. Im schlimmsten Fall kann sowas natürlich das Board zerstören.

    Achso, welche sind den jetzt Touch und welche nicht? Im Code sind momentan alle Pins auf klassische Taster eingestellt. Alle Touch-Taster werden dann aber im Prinzip permanent gedrückt.


    In der Zeile 49 boolean touch[13] = {}; kannst du festlegen ob es Touch oder klassische sind. Am besten schreibst du erstmal in die geschweifte Klammer 13 mal ne Null mit Komma getrennt. Dann schaust du in der Zeile darüber an der wievielten Stelle die Touch-Tasten sind und ersetzt da die 0 durch eine 1. Wenn also z.B. nur "w" touch wäre, stünde in der Zeile boolean touch[13] = {0, 0, 1, 0, 0, ...}. Wenn am Ende nur noch Nuller kommen, kannst du die auch weglassen. durch die [13] wird das automatisch aufgefüllt.

    Also ich hab jetzt beim drüberschauen noch einen Fehler entdeckt. Der sollte aber nicht dafür sorgen, dass gar keine Eingaben ankommen. Kannst es aber trotzdem mal so nochmal testen.


    Ist Pin D9 frei? Den hab ich jetzt nämlich als "failsafe" eingebaut, also wenn der zu Ground verbunden wird, macht der Arduino nichts (sicherheitshalber, damit man in in Ruhe flashen kann).


    Und hast du den Arduino nach dem flashen mal aus- und wieder eingesteckt? Das sollte meines Wissens nicht nötig sein, aber wer weiß.


    Ist halt etwas schwierig, weil ich keine passende Hardware da habe und nicht selbst testen kann.

    Ok, ich hab den Code im vorherigen Post auf die Prioritätsschaltung geändert.


    Die Zahlen sollten glaube ich schon die oben auf der Tastatur sein. Falls es wegen dem "NUM" ist, wie z.B. in "NUM1_KEY": Ich hab die nur deshalb so bezeichnet, weil Variablennamen nicht mit einer Zahl anfangen dürfen (genau genommen ist das keine Variable, aber das gilt trotzdem). "1_KEY" analog zu den anderen geht also nicht. Ich hätte es aber z.B. auch "N1_KEY" oder "KEY_1" nennen können.

    kann man d1 ausschalten, wenn d0 schon aktiv ist, bzw. auch d0 ausschalten, wenn d1 aktiv ist, sodaß es immer nur 1 eindeutige situation mit meinen 5 fingertasten geben kann?

    Also ich habs jetzt mal bei den Zahlen so implementiert, dass wenn d0 und d1 gleichzeitig aktiv sind, gar nichts gesendet werden dürfte. Einen deaktivieren während der andere aktiv ist, würde nochmal einiges an Aufwand bedeuten.


    Ich würde sagen der Code ist jetzt bereit zum testen, er kompiliert zumindest:

    Ich hätte es jetzt so gemacht wie im bisherigen Code, also solange gedrückt ist wird auch gesendet. Wenn "w + v"/"s + v"/... tatsächlich heißen soll, "sende erst w und dann v", geht es in dem Fall aber natürlich nicht.


    the ratman

    Falls du die Fragen vorhin übersehen hast:

    1. Bedeutet "w + v"/"s + v"/..., dass die einzelnen Buchstaben nacheinander gesendet werden sollen, oder was anderes?

    2. Sollen die Neigungssensoren bei D0 und D1 alleine auch etwas senden oder nur in Kombination mit einer der Tasten?

    Das man die auch als digitale nutzen kann ist mir bewusst, deshalb hatte ich geschrieben, dass man sie auch für Taster verwenden kann. Allerdings vermute ich, dass man den Wandler nicht "umgehen" kann, sondern der ausgelesene Wert einfach in Software in 0 oder 1 übersetzt wird und er damit zwangsläufig eine kleine zusätzliche Latenz rein bringt (je nach dem welches Verfahren verwendet wird).

    Also du kannst grundsätzlich alle 14 digitalen Pins verwenden (D0-D10, D14-D16). Ob mit klassischen Tastern oder TTP223 bedeutet nur eine/zwei winzige Änderungen im Code. Du hast in deinem bisherigen Code übrigens D11-D13 in Gebrauch, die aber nicht als Pins existieren. Die 4 analogen Pins kann man für die Taster auch einwandfrei verwenden. Insgesamt sind also 18 Taster möglich.


    Alles braucht einen gemeinsamen Ground und das geht alles auch mit Tastenkombinationen.


    Ich glaube ich warte mal noch mit dem Code schreiben, bis du weißt wie es letztendlich werden soll :D.