La carte et le terminal n'utilisent probablement pas le même débit en bauds. Vérifiez le coin inférieur droit du terminal série Arduino et assurez-vous qu'il est réglé sur 9600.
Données série
La communication série fonctionne en envoyant le flux de données entier un bit à la fois. Cela contraste avec le port parallèle standard qui envoie un octet à la fois. Les deux appareils doivent savoir à quelle vitesse les données sont envoyées. De plus, les deux appareils doivent fonctionner à la même vitesse. C'est ce qu'on appelle le débit en bauds.
Débit en bauds
Baud signifie vraiment juste des impulsions par seconde. Dans le contexte de la communication série, cela signifie combien de bits sont transmis par seconde. L'une des valeurs les plus courantes est 9600, mais il existe d'autres valeurs courantes qui sont des facteurs ou des multiples de 9600. Cela n'a cependant pas vraiment d'importance, tant que les deux appareils fonctionnent à la même vitesse.
Si je vous envoie des messages plus rapidement que vous ne les recevez, vous perdez des données. Si je vous envoie des messages plus lentement que vous ne les recevez, vous obtenez un non-sens mélangé avec ce que je vous ai envoyé.
Données, parité, bits d'arrêt
Si vous regardez la documentation de begin()
, vous verrez qu'elle peut prendre deux paramètres:
Serial.begin(speed)
Serial.begin(speed, config)
J'espère que vous comprenez la vitesse maintenant, ce sont les bits par seconde auxquels l'Arduino communiquera.
Le deuxième paramètre config
,, vous permet de configurer d'autres choses sur la transmission de données série. Ce sont les bits de données, de parité et d'arrêt. Vous verrez sur la page qu'il a des valeurs comme 5N1
, 6N1
etSERIAL_8N1 (the default)
Le premier nombre représente le nombre de bits de données. Le deuxième caractère vous indique le type de bit de parité. E
pour une parité paire, O
pour une parité impaire ou N
pour aucune parité. Le troisième chiffre vous indique le nombre de bits d'arrêt.
Donc, vraiment, avec 8N1, nous avons 10 bits envoyés pour chaque 8 bits de "vos" données. 1 bit de démarrage, 8 bits de données et 1 bit d'arrêt.
Quoi qu'il en soit, les deux parties doivent s'entendre sur ces informations ainsi que sur la vitesse. Le terminal série Arduino ne vous donne pas la possibilité de modifier ces paramètres, mais d'autres le font, vous devrez donc vous assurer que tous ces paramètres de configuration sont les mêmes.
Plus d'infos sur le wiki: Communication série asynchrone