Mensagem errada no Serial Monitor

Boa tarde, pessoal!

Problema no a partir do segundo parágrafo.

Eu programo com o Arduino faz uns anos já e sempre me deparo com o mesmo problema quando vou para fazer programas interativos com o usuário. Eu sei que isso não o foco do Arduino, porém gosto de fazer esse tipo de coisa com ele para me deparar com problemas reais de programação. Tipo eu não gosto de ir lá e pegar uma biblioteca pronta gosto de códigos enxutos de bibliotecas, apesar de saber que elas são essenciais mas para o meu dia-a-dia não é necessário.

O meu código é o seguinte:

O problema é que se eu tiro aquele delay de 112us o programa imprime errado a mensagem que eu estou mandando.

Eu sei que o buffer tem 64 bytes e percebi que o Arduino tenta processar as instruções tão rápido que ele sai atropelando as instruções seguintes. Vocês sabem se isto tem fundamento teórico? Eu já provei na prática!

PS.: eu provei da seguinte forma coloquei para imprimir frases de 20 caracteres, assim que completou 3 ele conseguiu imprimir só mais 3 três de forma correta o restante foi atropelado pelo Arduino.

Falai @chc_borges blz? Me diz um lance, Por que vc esta usando 2 milhoes de bits por segundo no Serial.Begin() e não 9600?

Achei essa explicação em um forum de como funciona o Serial.Begin

Segue Link
O que é o Serial.begin (9600)?.

É bem provável que a velocidade esteja tão acima do normal que o monitor serial não consiga acompanhar a velocidade de 2 milhões de bits por segundo.

Abraços
Max

A questão da velocidade é porque eu gosto de tentar usar o Arduino sem dando o seu melhor. E pelo que parece esses 2000000 bits por segundo é muito para ele.

Agradeço o seu contato.

Valeu por tudo.