Frage

Also habe ich eine Skizze mache, die eine zweistellige Zahl aus dem USB-Port nimmt, überprüft den Zustand des Stiftes, der die Anzahl übereinstimmt, dann den Stift schaltet ein / aus.

Werfen Sie einen Blick auf die Quelle

Aus irgendeinem Grund, wenn ich 13 über den Arduino serielle Monitor senden, erhalte ich diese Meldung zurück: Pin number is greater than 14, details: 490 51 541

Was bedeutet, dass die IDE seltsame Zahlen sendet, oder die Arduino verarbeitet sie falsch. Hat jemand von euch sehen ein Problem, warum dies nicht funktioniert oder?

War es hilfreich?

Lösung

Wenn Sie die ASCII eingeben Zeichen "1", dann "3", dann wird Serial.read() zurückkehren 49 und 51. Dies liegt daran, in der ASCII Zeichentabelle "1" und „3“ sind durch die Zahlen 49 bzw. 51. Wenn Sie möchten, um die Nummer zu finden, die der Benutzer getippt Sie konvertieren, um es von ASCII .

Ich bin nicht sehr vertraut mit der Arduino Sprache, aber vorausgesetzt, es ist ähnlich wie C Sie können die Änderungen finden benötigt Hier .

schrieb ich das Programm in einer anderen Art und Weise, die können klarer href="http://pastebin.com/m441a2fdb" zum Lesen .

Die in der Quelle verwendet '0' ist einfach eine andere Art zu sagen, "die Zahl verwendet, um die Zeichen darzustellen '0'", so ist 48. In C-ähnliche Sprachen '0' == 48, '1' == 49, etc, etc.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top