So for my arduino project I need to split this line of servos data
180 0 0 0 90 90 0Which would be parsed as:
servo position1 servo positin2 servo positin3 ...servo position 6in to separate servo values, but i am new at arduino and c typе languges so a little bit help will be very good. So my question is how can I split these values up?
- You can use parseInt() function as well. It looks for next valid integer after one delimiter.arduino.cc/en/Tutorial/ReadASCIIStringMoithil Biswas– Moithil Biswas2018-09-05 10:34:56 +00:00CommentedSep 5, 2018 at 10:34
1 Answer1
Scanning string formatted data can be done withsscanf (docs). It takes format strings just likeprintf() does, but instead of printing formatted data, it parses formatted data into the given variables.
For example,
String input = "180 0 0 0 90 90 0";//parse input (6 integers)int servoPositions[6];int numScanned = sscanf (input.c_str(),"%d %d %d %d %d %d", &servoPositions[0], &servoPositions[1],&servoPositions[2], &servoPositions[3], &servoPositions[4],&servoPositions[5]);//print positions againSerial.println("Parsed servo positions:");for(int i=0; i < 6; i++) { Serial.print("position "); Serial.print(i); Serial.print(": "); Serial.println(servoPositions[i]);}Outputs
Parsed servo positions:position 0: 180position 1: 0position 2: 0position 3: 0position 4: 90position 5: 90Explore related questions
See similar questions with these tags.