требуется решить задачу не знаю как. в порт записывается строка: Led_2_6666 (_ ) - пробел) как прочитать строку по символьно и записать значения в массивы если led_2 то mLed2[]={6,6,6,6} если led_3 то mLed3[]={6,6,6,6}
Вам сначала надо вычитать строку полностью, до терминатора (признак окончания строки), потом уже - разбирать её. Навскидку как-то так: Код (C++): String dataFromPort; void doParse() { if(!dataFromPort.length()) return; // тут разбираете строку, как вам надо int idx = dataFromPort.indexOf(' '); if(idx > -1) { String command = dataFromPort.substring(0,idx); dataFromPort = dataFromPort.substring(idx+1); if(command == "Led") { // тут парсим остаток строки idx = dataFromPort.indexOf(' '); if(idx > -1) { int ledIndex = dataFromPort.substring(0,idx).toInt(); dataFromPort = dataFromPort.substring(idx+1); switch(ledIndex) { case 1: break; case 2: break; // .... и т.д. } } } } } void loop() { while(Serial.available()) { char ch = Serial.read(); if(ch == '\n' || ch == '\r') { doParse(); dataFromPort = ""; } else dataFromPort += ch; } } Остальное - допишете, я не сомневаюсь Да и вообще - не стоит копировать мой код, лучше написать свой, а приведённое - использовать только для анализа, не более. З.Ы. Для вставки кода есть специальный значок в редакторе
Скажу честно: лучший комментарий к каждой строке - это учебник по С++. Приведённый мной код - крайне прозрачен, и если у вас с ним проблемы - наверное, лучше начать с самых основ.
Код (C++): byte array[4]; int cnt = 0; int rs; int dv = 1000; int prs = dataFromPort; while(cnt < 4) { rs = prs / dv; prs = prs - rs * dv; array[cnt] = (byte)(rs); dv /= 10; cnt++; } Приблизительно так... ну как пример