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
Keyboard.press
07.08.2018, 17:42 (Dieser Beitrag wurde zuletzt bearbeitet: 07.08.2018 19:46 von K_Krammer.)
Beitrag #1
Keyboard.press
Hallo,
kurz zu mir, ich habe nur leichte Erfahrung in Visual Basic und mit dem Arduino habe ich noch nicht sehr viel gemacht! Hoffe trotzdem das Ihr als erfahrene Programmierer mir helfen könnt Smile.

Zum Programm:
Ich lasse mir vier Werte (Q;W;E;R) über Serial.readString(); einlesen, diese splitte ich dann wieder auf, so dass ich nur noch Q W E R im String habe!

Jetzt zum Problem:
Ich möchte diese vier Strings gerne über den Befehl Keyboard.press(); wieder ausgeben, leider funktioniert das[/code] leider nicht so wie ich möchte!

Vielen Dank für eure Hilfe!

Code:
#include <Keyboard.h> //wird nur von ATmega32U4 unterstützt

int TASTE_Q = 0;
int TASTE_W = 1;
int TASTE_E = 2;
int TASTE_R = 3;

void setup()
{
  Serial.begin(9600);

  //Emulation beginnen
  Keyboard.begin();
}
//------------------------------------------------------------------------------

void loop() {

int numberOfPieces = 5;

if(Serial.available()>0){
// Eingabe laden
String serialResponse = Serial.readString();
  
// In Array spliten
String serialResponseArray[numberOfPieces];

int lastIndex = 0;
int counter = 0;

for (int ii = 0; ii < serialResponse.length(); ii++) {
if (serialResponse.substring(ii, ii+1) == ";") {
serialResponseArray[counter] = serialResponse.substring(lastIndex, ii);
lastIndex = ii + 1;
counter++;
}
if (ii == serialResponse.length() - 1) {
serialResponseArray[counter] = serialResponse.substring(lastIndex, ii);
}
}
// Ausgabe einer bestimmten Stelle
Serial.println(serialResponseArray[TASTE_Q]);
Serial.println(serialResponseArray[TASTE_W]);
Serial.println(serialResponseArray[TASTE_E]);
Serial.println(serialResponseArray[TASTE_R]);
}

//-------------------------------------------------------------------------------

  Keyboard.press(TASTE_W);
  delay(100);
  Keyboard.releaseAll();

}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
07.08.2018, 19:36
Beitrag #2
RE: Keyboard.press
Da Du uns nicht sagst, welchen Arduino Du verwendest, können wir erst mal nichts weiter sagen. Die Keyboard-Lib geht nicht mit allen Arduinos.

Das mit den Codetags solltest Du Dir nochmal anschauen. Das kannst Du auch nachträglich noch korrigieren.
[*code] davor und [*/code] dahinter ohne *!

Von der Verwendung der Klasse String würde ich Dir abraten. Es ist besser char-Arrays zu verwenden, um Zeichenketten zu verarbeiten.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
07.08.2018, 19:51
Beitrag #3
RE: Keyboard.press
Hallo,
danke für die Antwort, dass mit den Codetags hat schon funtioniert Wink
Ich verwende einen Arduino Leonardo.

Kann ich also das was ich über Serial.readString(); empfange "Q;W;E;R" direkt in eine char-Array einpacken? Oder muss ich das erst spliten und dann in die char-Array einpacken?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
07.08.2018, 20:08
Beitrag #4
RE: Keyboard.press
Gut dann dürfte das mit dem Keyboard funktionieren.

Wenn Du Deine Eingabe mit einem Zeilenvorschun (NL oder '\n') abschließt und die Klammern weg läßt, kannst Du das besser auswerten. In dem Link den ich Dir gegegen habe sind Codebeispiele dazu drin.

Gruiß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.08.2018, 14:31 (Dieser Beitrag wurde zuletzt bearbeitet: 12.08.2018 14:31 von K_Krammer.)
Beitrag #5
RE: Keyboard.press
Hallo nochmals Smile,

ich habe jetzt den String für die Ausgabe grundsätzlich so wie ich den haben möchte

Serial.println(Command.substring(0, 1)); // ist z.B. ein A

Habe jetzt das Problem, dass ich dieses "A" nicht in eine Dezimalzahl umgewandelt bekomme.

Code:
int x = 'A';                                     // hier möchte ich gerne den String einfügen
String decimal = String(x, DEC);
Serial.println(decimal);                    // Dezimalzahl 65

funktioniert super, leider kann ich nicht an Stelle von 'A' meinen String "Command.substring(0, 1)" einsetzten. Mache da wahrscheinlich grundsätzlich etwas falsch oder etwas viel zu kompliziert :/.

Wäre super wenn mir jemand sagen könnte, wie ich diesen String in eine Dezimalzahl umwandeln kann!

Danke für die Hilfe!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Keyboard.print Hilfe Simon111 0 246 15.07.2018 15:47
Letzter Beitrag: Simon111
  Keyboard.h soll variable "schreiben" Fizzo61 4 520 16.02.2018 16:06
Letzter Beitrag: MicroBahner
  Arduino Leonardo Keyboard abschalten aggro600 5 636 25.12.2017 18:40
Letzter Beitrag: Tommy56
Question Arduino Pro Micro verlangt keyboard.h im sketch weinema 0 965 01.03.2016 19:04
Letzter Beitrag: weinema
  USBhost mit keyboard gefunden, funktioniert aber nicht wie's soll HaWe 0 1.084 05.08.2015 14:26
Letzter Beitrag: HaWe
  PS/2 Keyboard an Mega, Sondertasten mit deutschem Tastaturtreiber HaWe 0 882 21.09.2014 21:47
Letzter Beitrag: HaWe

Gehe zu:


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