A placa e o terminal provavelmente não estão usando a mesma taxa de transmissão. Verifique o canto inferior direito do terminal serial do Arduino e verifique se está definido como 9600.
Dados Seriais
A comunicação serial funciona enviando todo o fluxo de dados um bit de cada vez. Isso contrasta com a porta paralela padrão que envia um byte por vez. Ambos os dispositivos precisam saber a que velocidade os dados estão sendo enviados. Além disso, ambos os dispositivos precisam estar operando na mesma velocidade. Isso é chamado de taxa de transmissão.
Taxa de transmissão
Baud realmente significa apenas pulsos por segundo. No contexto da comunicação serial, significa quantos bits são transmitidos por segundo. Um dos valores mais comuns é 9600, mas existem outros comuns que são fatores ou múltiplos de 9600. Porém, isso realmente não importa, desde que ambos os dispositivos operem na mesma velocidade.
Se estou enviando mensagens mais rapidamente do que as recebidas, você perde dados. Se estou lhe enviando mensagens mais lentamente do que você as recebe, você fica sem sentido misturado com o que eu lhe enviei.
Dados, paridade, bits de parada
Se você olhar para a documentação begin()
, verá que são necessários dois parâmetros:
Serial.begin(speed)
Serial.begin(speed, config)
Espero que você entenda a velocidade agora, são os bits por segundo em que o Arduino se comunicará.
O segundo parâmetro config
,, permite configurar outras coisas sobre a transmissão de dados seriais. Estes são os bits de dados, paridade e parada. Você verá na página que tem valores gosto 5N1
, 6N1
eSERIAL_8N1 (the default)
O primeiro número representa quantos bits de dados. O segundo caractere informa que tipo de bit de paridade existe. E
para paridade O
par, paridade ímpar ou N
sem paridade. O terceiro número indica quantos bits de parada.
Realmente, com o 8N1, temos 10 bits sendo enviados para cada 8 bits dos "seus" dados. 1 bit de início, 8 bits de dados e 1 bit de parada.
De qualquer forma, ambos os lados precisam concordar com essas informações e com a velocidade. O terminal serial do Arduino não oferece a opção de alterar essas configurações, mas outras, por isso, você precisará garantir que todas essas configurações sejam iguais.
Mais informações no wiki: Comunicação serial assíncrona