Várias vezes tive algumas saídas suspeitas no Serial Monitor após o upload do código para o Arduino: como saída eterna de espaços em branco ou corte repentino de strings ou strambled strings.
Como não houve erro ou aviso de compilação no Arduino IDE, pensei que o Arduino estava quebrado, mas depois de alguns testes descobri que nem todos os tipos de erros são detectados pelo compilador Arduino IDE - especialmente ao atribuir variáveis em um loop para estruturas de matriz. Isso parece travar o Arduino em um curto período de tempo.
Como posso descobrir erros não exibidos pelo IDE do Arduino?
//
. :-(Parece que você está falando de erros de tempo de execução (do tipo vazamento de memória / segfault) aqui.
Não há como descobrir esses erros (a menos que você examine cuidadosamente o código) no código que já está escrito. No entanto, é bastante fácil impedir que isso aconteça enquanto escreve o código. Apenas tenha muito cuidado ao escrever loops ou chamadas recursivas; pergunte a si mesmo "isso pode ficar fora de controle?". Se parecer que esse é o escopo para "sair do controle", escreva um código para se proteger.
Sobre segfaults - basta verificar os valores limites dos índices da matriz e você deve estar bem. Se você estiver usando ponteiros, tenha cuidado com a aritmética dos ponteiros.
fonte