Question

Alors je fais un croquis qui prend un nombre à deux chiffres à partir du port USB, vérifie l'état de la broche qui correspond au numéro, puis basculer l'axe de marche / arrêt.

Jetez un coup d'oeil à la source

Pour une raison quelconque, j'envoie 13 à l'écran série Arduino, je reçois ce message de retour: Pin number is greater than 14, details: 490 51 541

Ce qui signifie que l'IDE envoie des numéros étranges, ou l'Arduino est en train de traiter les mauvais. Est-ce que vous voyez un problème pourquoi cela ne fonctionne pas correctement?

Était-ce utile?

La solution

Si vous entrez dans le ASCII caractères "1" puis "3" puis Serial.read() renverront 49 et 51. En effet, dans le ASCII table de caractères "1" et « 3 » sont représentées par les numéros 49 et 51, respectivement. Si vous voulez trouver le numéro que l'utilisateur tapé vous devez convertir à partir de ASCII .

Je ne suis pas très familier avec le langage Arduino, mais en supposant qu'il est semblable à C, vous pouvez trouver les modifications nécessaires .

Je récrit le programme d'une autre manière, qui peut être plus clair Lire .

Le « 0 » utilisé dans la source est simplement une autre façon de dire « le nombre utilisé pour représenter le caractère « 0 » », est donc 48. Dans les langues C comme '0' == 48, '1' == 49, etc, etc.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top