Dalam tutorial singkat ini kita akan melihat bagaimana kita bisa membaca string input pengguna dari Arduino Serial Monitor atau terminal serial lainnya. Langkah cepat.
serial_buffer_len
yang akan menjadi input pengguna maksimal yang Anda harapkan.Serial.available()
.read_serial_input()
yang ditentukan pengguna untuk memuat serial_buffer
.//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;
}
Setelah mengunggah kode contoh, buka monitor serial dan masukkan sesuatu seperti hello world dan kemudian Anda akan melihatnya tercetak di monitor serial. Ini adalah cuplikan kode yang sangat berguna jika Anda ingin memasukkan string dari pengguna dan ingin melakukan tindakan terhadapnya.