Oct
14

So lesen Sie Zeichenfolgen von Serial in Arduino

10/14/2023 04:30 PM von Admin in Iot


In diesem kurzen Tutorial untersuchen wir, wie wir Benutzereingabezeichenfolgen vom Arduino Serial Monitor oder anderen seriellen Terminals lesen können. Schnelle Schritte.

  • Definieren Sie „serial_buffer_len“, was der maximalen Benutzereingabe entspricht, die Sie erwarten.
  • Stellen Sie die gewünschte serielle Baudrate ein.
  • Überprüfen Sie mit „Serial.available()“, ob serielle Daten verfügbar sind.
  • Rufen Sie die benutzerdefinierte Funktion „read_serial_input()“ auf, um den „serial_buffer“ zu laden.
//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.


Ihre Gedanken

Suche
SPONSOR
Kryptouhr
FOLGE UNS
Neueste Tweets

Neues Tool hinzugefügt: SVG-Zoom-Dimensionsrechner.

SPONSOR