Looks for the next valid integer in the incoming serial. The function terminates if it times out (see Serial.setTimeout()).
Serial.parseInt() inherits from the Stream utility class.
In particular:
Serial.setTimeout()) occurs, 0 is returned;Use one of the following function variants to search for an integer number on the serial buffer:
Serial.parseInt()Serial.parseInt(lookahead)Serial.parseInt(lookahead, ignore)The function admits the following objects and parameters:
Serial: serial port object. See the list of available serial ports for each board on the Serial main page.
lookahead: the mode used to look ahead in the stream for an integer. Allowed data types: LookaheadMode. Allowed lookahead values:
SKIP_ALL: all characters other than digits or a minus sign are ignored when scanning the stream for an integer. This is the default mode.SKIP_NONE: Nothing is skipped, and the stream is not touched unless the first waiting character is valid.SKIP_WHITESPACE: Only tabs, spaces, line feeds, and carriage returns are skipped.ignore: used to skip the indicated char in the search. Used for example to skip thousands divider. Allowed data types: char
The function returns the first integer number found. Data type: long.
The following code extracts the first valid integer number received on the serial:
void setup() {
Serial.begin(9600);
while (!Serial)
;
Serial.println("Enter a integer number:"); // try with a mixed phrase e.g. "The size of the box is 5 mm"
}
void loop() {
if (Serial.available()) {
int number = Serial.parseInt();
if (number != 0) {
Serial.print("You entered: ");
Serial.println(number);
}
}
}