INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Einmal drücken = A, zweimal drücken = B,... T9-Tastatur
16.02.2015, 15:12 (Dieser Beitrag wurde zuletzt bearbeitet: 16.02.2015 15:13 von muli.)
Beitrag #1
Einmal drücken = A, zweimal drücken = B,... T9-Tastatur
Hallo lebendes Lexikon,

ich bin völlig neu in der Welt von Arduino und der Programmierung generell und bin froh, dass ich es überhaupt bis zu einem Micro Pro in meinem Postfach geschafft habe, dass ich LEDs zum leuchten bringen und einen Tastendruck erfassen und ausspucken kann.

Ich möchte mir nämlich eine kleine Einhandtastatur mit 5~9 Tasten bauen - das Ganze mit einer T9-ähnlichen Eingabe, wie man sie von Handys kennt... Einmal Taste 1 bzw. A drücken = A, zweimal drücken ergibt B und dreimal das C. Mit den anderen Tasten läuft das Selbe.

Anhand von einem Tutorial bin ich nun noch ganz in den Anfängen und frage mich, wie ich nun einer Taste mehrere Buchstaben zuweisen kann bzw. vermutlich via Delay den entsprechenden Tastendruck auslesen könnte.

Code:
int tasteA = 9; // Eingang 9
int tasteB = 8; // Eingang 8
// restlichen Tasten/Eingänge werden dann hier gelistet
void setup()
{
  pinMode(tasteA, INPUT);
  pinMode(tasteB, INPUT);
  digitalWrite(tasteA, HIGH);
  digitalWrite(tasteB, HIGH);
}
void loop()
{
  if (digitalRead(tasteA) == 0) // Wenn Taste gedrückt wird...
  {
    Keyboard.write('A'); // Schreibe A
    delay(200); // Warte kurz, damit nicht hunderte AAA ausgegeben werden
  }
  if (digitalRead(tasteB) == 0)
  {
    Keyboard.write('B');
    delay(200);
  }
}

Ich stelle mir das so vor, dass nach dem ersten Tastendruck einer Taste eine kurze Zeit abgewartet wird, ob da noch ein Tastendruck folgt, gezählt und dementsprechend wird der Buchstabe ausgespuckt.
Wird jedoch eine der anderen Tasten gedrückt, wird der Wartevorgang der vorherigen Taste sofort beendet und das Spiel beginnt von vorne... also Old-School-Handy-Style.

Geht das? Und falls ja, kann mich da jemand in die richtige Richtung stupsen oder mir ein Beispiel zeigen - allerdings in Hinblick darauf, dass die Programmierung generell für mich (noch) ein ganz schöner Hieroglyphen-Brocken ist... Smile
Freue mich über jede Hilfe & Danke!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
16.02.2015, 18:06
Beitrag #2
RE: Einmal drücken = A, zweimal drücken = B,... T9-Tastatur
Hi,
ja, das geht. Du musst nur vergessen, dass es delay() gibt. Im Prinzip musst Du die Zeit zwischen zwei Tastendrücken per millis() messen. Damit kannst Du dann auch eine Aktion ausführen, wenn eine bestimmte Zeit lang keine Taste gedrückt wurde. Einfach zyklich die Zeit abfragen (mit millis()).
Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Tastereingang gegen mehrmaliges drücken sperren Haustechno 9 823 13.09.2016 17:47
Letzter Beitrag: garagenloeter
  2 Tasten drücken damit licht angeht tjard 11 555 19.06.2016 12:24
Letzter Beitrag: hotsystems
  Hilfe! Arduino Leonardo programmieren - Tastatur Simulation noxx 3 908 13.11.2015 17:15
Letzter Beitrag: noxx
  Loop nur einmal durchlaufen wowa 7 1.845 02.06.2015 20:05
Letzter Beitrag: wowa
  Button kurz drücken Variable wenig erhöhen, lange drücken mehr erhöhen facebraker 18 3.556 28.02.2015 15:37
Letzter Beitrag: HaWe
  Suche Beispiel für je einmal ausgeführte Unterprogramme mit Aufruf durch Tasten Marlox 42 6.612 28.12.2014 22:49
Letzter Beitrag: Marlox
  Tastatur Belegung Deutsch-Englisch poca 11 2.395 16.07.2014 09:50
Letzter Beitrag: poca
  Arduino mit Tastatur steuern manator 1 5.809 22.05.2013 21:28
Letzter Beitrag: PLAY-ZONE
  Servo mit Tastatur ansteuern mako 0 1.247 22.05.2013 19:21
Letzter Beitrag: mako

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste