In diesem kurzen Tutorial untersuchen wir, wie wir Benutzereingabezeichenfolgen vom Arduino Serial Monitor oder anderen seriellen Terminals lesen können. Schnelle Schritte.
//Serial buffer
#define serial_buffer_len 80
char serial_buffer[serial_buffer_len];
String user_input = "";
void setup() {
Serial.begin(9600);
}
void loop() {
if (Serial.available() > 0){
if (read_serial_input(Serial.read(), serial_buffer, serial_buffer_len) > 0) {
user_input = String(serial_buffer);
}
Serial.println("serial user input:" +user_input);
}
}
// funtion to read user serial input
int read_serial_input(int read_ch, char *buffer, int len) {
static int pos = 0;
int rpos;
if (read_ch > 0) {
switch (read_ch) {
case '\r': // Ignore CR
break;
case '\n': // Return on new-line
rpos = pos;
pos = 0; // Reset position index ready for next time
return rpos;
default:
if (pos < len-1) {
buffer[pos++] = read_ch;
buffer[pos] = 0;
}
}
}
return 0;
}
Nachdem Sie den Beispielcode hochgeladen haben, öffnen Sie den seriellen Monitor und geben Sie etwas wie „Hallo Welt“ ein. Anschließend wird es auf dem seriellen Monitor gedruckt. Dies ist ein sehr nützlicher Codeausschnitt für den Fall, dass Sie Zeichenfolgen vom Benutzer eingeben und Aktionen darauf ausführen möchten.