Работа с функцией String

Ecros

✩✩✩✩✩✩✩
6 Мар 2021
2
0
Всем добрый день.
Начал разбираться с программированием ардуино, реальной платы еще нет, поэтому играюсь в эмуляторе Tinkercad Circuits.
Не могу понять, что за чертовщина при работе со строками через String().

Вот пример кода:
C++:
void setup()
{
    Serial.begin(9600);
}

void loop()
{
  String myStr1 = String("12345");
  String myStr2 = String(12345); 
  Serial.print(myStr1);
  Serial.print(" ");
  Serial.print(myStr2);
  Serial.print("\n");
 
 
  delay(5000); // Wait for 5000 millisecond(s)
}
А вот что пишется в порт:
Код:
12345 12222
Подскажите, в чем ошибка преобразования числа в строку?
 

Старик Похабыч

★★★★★★★
14 Авг 2019
4,266
1,303
Москва
1) Если код не надо повторять бесконечно, а только один раз поместите его в блок setup
C++:
void setup()
{
  Serial.begin(115200);
  String myStr1 = String("12345");
  String myStr2 = String(12345);
  Serial.print(myStr1);
  Serial.print(" ");
  Serial.println(myStr2);
}

void loop()
{
}
2) Ошибки у вас нет, работает все верно. Ну разве что ошибка в эмуляторе Tinkercad Circuits
14:34:42.264 -> 12345 12345
 
  • Лойс +1
Реакции: Ecros

Ecros

✩✩✩✩✩✩✩
6 Мар 2021
2
0
1) Если код не надо повторять бесконечно, а только один раз поместите его в блок setup
C++:
void setup()
{
  Serial.begin(115200);
  String myStr1 = String("12345");
  String myStr2 = String(12345);
  Serial.print(myStr1);
  Serial.print(" ");
  Serial.println(myStr2);
}

void loop()
{
}
2) Ошибки у вас нет, работает все верно. Ну разве что ошибка в эмуляторе Tinkercad Circuits
Огромное спасибо, действительно похоже на косяк эмулятора - некорректно обрабатываются все значения больше 100.