Здравствуйте.
2 дня бьюсь над одной загадкой:
Требуется собрать входящие байты в одно целое число.
Вводим, к примеру 123
Вариант № 1:
char incoming;
char str[4];
int i=0;
void setup() {
  Serial.begin(9600);
}
void loop() {
  i=0;
  while (Serial.available()) {
    incoming = Serial.read();  
    if (incoming < '0' || incoming > '9') break;
    str[i] = incoming; 
    i++;
//    Serial.println(i);
  }
  if (i != 0)
  {
    str[i] = 0;
    Serial.println(atoi(str));
  } 
}
Результат:
1
2
3
Вариант № 2:
char incoming;
char str[4];
int i=0;
void setup() {
  Serial.begin(9600);
}
void loop() {
  i=0;
  while (Serial.available()) {
    incoming = Serial.read();  
    if (incoming < '0' || incoming > '9') break;
    str[i] = incoming; 
    i++;
    Serial.println(i);
  }
  if (i != 0)
  {
    str[i] = 0;
    Serial.println(atoi(str));
  } 
}
Результат:
1
2
3
123
Внимание! во втором примере итоговый результат выводимый Serial.println(atoi(str)); правильный!
Каким образом Serial.println(i); влияет на результат?
Мужики помогите! Уже все мозги сломал.
Заранее благодарен!
			
		




 ))
))